android高级面试题及答案(安卓高级面试题)

前言

这是《拔剑金九银十》的第二篇文章,本文主要为面试三年多的安卓开发者高级开发工程师而整理。 3年以下的合作伙伴请走下一步:这是面向0-3年安卓开发者的面试宝典,收录于2020年一线互联网大厂的面试正题系统!

希望对你们有帮助。 少说废话,进入正题。

目录:

Java中高级

计算机网络

安卓高级面试-性能优化

安卓卓越的第三方库

安卓框架相关

其他安卓高频问题

一、Java中高级

1,谈谈对java多态性的理解吧?

2、你知道的设计模式是什么?

3、静态代理和动态代理的区别用于什么场合?

5、简单工厂、工厂方法、抽象工厂、生成器的模式不同?

6、装饰模式和代理模式的区别是什么? 与桥接模式相比?

7、集合框架、list、map、set有哪些具体的实现类,区别是什么?

8、HashMap和HashTable的主要区别是什么?两者的基础数据结构是什么?

9、HashMap、ConcurrentHashMap、hash ()相关原理的解析?

10、谈谈你对Java反射的理解吗?

11、介绍一下java的总称、总称消去以及相关的概念、分析和分配?

12、Java的char是2字节,怎么存储Utf-8的文字?

13、你对字符串存储器内的存储形式有很深的了解吗

14、java虚拟机命令的识别(高度) ) ) ) )

15、什么是线程池? 怎么使用? 为什么要使用线程池?

16、同步的原理?

17、多线程的使用场景?

18、对JVM内存模型的理解?

19、要说明GC的原理和回收战略吗?

20、类加载器、tdbd机制、安卓类加载器。

21、Java的虚拟机JVM的两个内存:堆栈内存和堆内存的区别是什么?

22、JVM、Art、Dalvik的区别、比较

23、JVM调谐常见的命令行工具是什么? JVM常见的调谐参数是什么?

.

二、计算机网络

1、HTTP和HTTPS的区别是什么?

2、将HTTP2.0与HTTP1.X进行比较的新特性

3、Https请求慢的解决方案

4、由Http的请求和响应的协议组成

5、谈谈http缓存。

6、Https加密的原理。

7、客户端如何验证CA证书?

8、HTTPS下的SSL握手过程

9、HTTPS如何防止中间人攻击?

10、为什么tcp经过3次握手,挥手4次?

11、TCP可靠传输原理的实现(滑动窗口)。

12、Tcp和Udp的区别?

13、插座断线重新连接是如何实现的,心跳机制是如何实现的?

14、Cookie和Session的作用和原理。

15、浏览器输入地址反馈结果发生了什么?

.

三、性能优化

1、在哪些APP的稳定性方面进行过优化?

2、业务稳定性如何保障?

3、如果发生异常情况,如何迅速赔钱?

4、如何进行启动优化?

5、怎么不同步? 异步有问题吗?

6、对于版本迭代导致启动延迟有没有好的解决方法?

7、做内存优化最大的感受是什么?

8、如何避免内存抖动? (代码注意事项)

9、如何解决内存泄漏10、在进行布局优化的过程中使用了什么工具?

11、布局为什么会导致卡顿? 怎么优化的?

12、如何自动获取纸箱信息?

13、TextView setText需要时间的原因、TextView绘图层对源代码的理解?

14、谈移动端获取网络数据优化的几点

15、提高APP安全性的方法是什么?

16、安卓的APP加固怎么办?

17、安卓的混淆原理是什么?

18、谈谈你对安卓签名的理解。

19、优化自定义视图的方法

20、分析跟踪视图的实现原理、数据的误差来源。

.

四、第三方库

1、网络基础框架: OkHttp的实现原理

2、OKhttp是如何针对网络层进行优化的

3、网络请求缓存处理,okhttp如何处理网络缓存的?

4、从网络加载一个10M的图片,说下注意事项?

5、网络封装框架:Retrofit实现原理6、响应式编程框架:RxJava实现原理

7、图片加载框架:Glide实现原理

8、Glide如何确定图片加载完毕?

9、Glide内存缓存如何控制大小?

10、加载bitmap过程(怎样保证不产生内存溢出)

11、Android中软引用与弱引用的应用场景。

12、LruCache原理

13、Fresco与Glide的对比

14、Bitmap如何处理大图,如一张30M的大图,如何预防OOM?

15、事件总线框架EventBus实现原理

16、内存泄漏检测框架:LeakCanary实现原理

17、leakCannary中如何判断一个对象是否被回收?如何触发手动gc?c层实现?

18、依赖注入框架:ButterKnife实现原理

19、依赖全局管理框架:Dagger2实现原理

20、数据库框架:GreenDao实现原理

五、Android Framework相关

1、简单说下Android系统架构

2、View的事件分发机制?滑动冲突怎么解决?

3、如何解决View的事件冲突?举个开发中遇到的例子?

4、View的绘制流程?

5、LinearLayout的onLayout方法实现解析(layoutVertical核心源码)

6、Requestlayout,onlayout,onDraw,DrawChild区别与联系?

7、Android中进程和线程的关系?区别?

8、如何开启多进程?应用是否可以开启N个进程?

9、Android中IPC方式、各种方式优缺点?为何需要IPC?多进程通信可能会出现的问题?

10、讲讲AIDL?如何优化多模块都使用AIDL的情况?

11、为什么选择Binder?Binder机制的作用和原理?

12、Binder框架中ServiceManager的作用?

13、Android系统启动流程是什么?

14、AMS家族

15、App启动流程(Activity的冷启动流程)

16、ActivityThread工作原理?

17、说下四大组件的启动过程,四大组件的启动与销毁的方式。

18、广播发送和接收的原理

19、AMS是如何管理Activity的?

20、大体说下一个应用程序安装到手机上时发生了什么?

21、Android的打包流程?

六、其他高频面试题

1、MVC MVP MVVM原理和区别?

2、可以说一下MVC->MVP->MVVM演进过程吗?

3、热修复原理?插件化原理?

4、ARouter路由原理?

5、Gradle生命周期

6、如何保证一个后台服务不被杀死?比较省电的方式是什么?

7、Android动画框架实现原理。

8、低版本SDK如何实现高版本api?

9、说说你对Context的理解?

10、Android的生命周期和启动模式

11、ListView和RecyclerView系列

12、如何实现一个推送,消息推送原理?推送到达率的问题?

13、对谷歌新推出的Room架构有了解吗?

14、Debug跟Release的APK的区别?

15、Android中进程内存的分配,能不能自己分配定额内存?

16、SurfaceView和View的最本质的区别?

17、曲面屏的适配。

18、TextView调用setText方法的内部执行流程。

19、怎么控制另外一个进程的View显示(RemoteView)?

20、对文件描述符怎么理解?

附答案解析的话文章篇幅实在太长了,所以将面试系列文章上传在GitHub了。需要的小伙伴自行获取就好了:https://github.com/Timdk857/Android-Architecture-knowledge-2-(文末扩展链接)也可以关注后私信我【面试】即可获取答案

文末

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

点个关注呗,后续更腾讯、阿里、百度、字节跳动等一线互联网大厂的面试真题集锦。

也不想说太多的鸡汤,就写到这里吧,希望可以收到三两个赞。住大家面试顺利

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注