-
做过哪些性能优化?是怎么评测和具体优化的?
-
为什么WebView加载会慢呢?
-
如何优化自定义View
-
FC(Force Close)什么时候会出现?
-
Java多线程引发的性能问题,怎么解决?
二、Android Framework相关
-
Android系统架构
-
View的事件分发机制?滑动冲突怎么解决?
-
View的绘制流程?
-
跨进程通信
-
Android系统启动流程是什么?
-
启动一个程序,可以主界面点击图标进入,也可以从一个程序中
-
跳转过去,二者有什么区别?
-
AMS家族重要术语解释
-
App启动流程(Activity的冷启动流程)
-
ActivityThread工作原理
-
说下四大组件的启动过程,四大组件的启动与销毁的方式
-
AMS是如何管理Activity的?
-
理解Window和WindowManager
-
WMS是如何管理Window的?
-
大体说清一个应用程序安装到手机上时发生了什么?
-
Android的打包流程?apk里有哪些东西?签名算法的原理?
-
说下安卓虚拟机和java虚拟机的原理和不同点?(JVM、
-
Davilk、ART三者的原理和区别)
-
安卓采用自动垃圾回收机制,请说下安卓内存管理的原理?
-
Android中App是如何沙箱化的,为何要这么做?
-
一个图片在app中调用R.id后是如何找到的?
-
JNI
-
请介绍一下NDK?
三、Android优秀三方库源码
-
你项目中用到哪些开源库?说说其实现原理?
-
Android中软引用与弱引用的应用场景
四、热修复、插件化、模块化、组件化、Gradle
-
Android中ClassLoader的种类&特点
-
热修补技术是怎样实现的,和插件化有什么区别?
-
热修复原理
-
为什么选用插件化?
-
插件化框架对比
-
插件化原理
-
模块化的好处
-
分析现有的组件化方案
-
组件化开发的好处
-
跨组件通信方案分析
-
如何管理过多的路由表?
-
多模块开发的时候不同的负责人可能会引入重复资源,相同的字符串,相同的icon等但是文件名并不一样,怎样去重?
五、设计模式与架构设计
-
设计模式谈谈你对Android设计模式的理解
-
项目中常用的设计模式
-
手写生产者/消费者模式
-
MVC MVP MVVM原理和区别?
-
- MVP架构存在的问题与解决办法
-
MVC的情况下怎么把Activity的C和V抽离?
-
MVP 架构中 Presenter 定义为接口有什么好处?
-
MVP如何管理Presenter的生命周期,何时取消网络请求?
-
aop思想
-
Fragment如果在Adapter中使用应该如何解耦?
-
从0设计一款App整体架构,如何去做?
-
实现一个库,完成日志的实时上报和延迟上报两种功能,该从哪些方面考虑?
-
说一款你认为当前比较火的应用并设计(比如:直播APP,P2P金融,小视频等)
六、其它高频面试题
- 如何保证一个后台服务不被杀死?(相同问题:如何保证service
在后台不被kill?)比较省电的方式是什么?
-
Android动画框架实现原理
-
Activity-Window-View三者的差别?
-
低版本SDK如何实现高版本api?
-
说说你对Context的理解?
-
Android的生命周期和启动模式
-
ListView和RecyclerView系列
-
如何实现一个推送,消息推送原理?推送到达率的问题?
-
动态权限系列
-
自定义View系列
-
对谷歌新推出的Room架构
-
没有给权限如何定位,特定机型定位失败,如何解决?
-
Debug跟Release的APK的区别?
-
android文件存储,各版本存储位置的权限控制的演进,外部存
储,内部存储
-
有什么提高编译速度的方法?
-
Scroller原理
-
Hybrid系列
-
如果在当前线程内使用Handler postdelayed 两个消息,一个
-
延迟5s,一个延迟10s,然后使当前线程sleep 5秒,以上消息的执行
时间会如何变化?
-
Android中进程内存的分配,能不能自己分配定额内存?
-
下拉状态栏是不是影响activity的生命周期,如果在onStop的
时候做了网络请求,onResume的时候怎么恢复
-
Android长连接,怎么处理心跳机制
-
CrashHandler实现原理?
-
SurfaceView和View的最本质的区别?
-
Android程序运行时权限与文件系统权限
-
曲面屏的适配
-
TextView调用setText方法的内部执行流程
-
怎么控制另外一个进程的View显示(RemoteView)?
-
如何实现右滑finish activity?
-
如何在整个系统层面实现界面的圆角效果。(即所有的APP打开
界面都会是圆角)
-
非UI线程可以更新UI吗?
-
如何解决git冲突?
-
单元测试有没有做过,说说熟悉的单元测试框架?
-
实现一个Json解析器(可以通过正则提高速度)
-
Jenkins持续集成
-
为什么 Google 会推出Fragment ,有什么好处和用途? 直接
用 View 代替不行么?
- 工作中有没有用过或者写过什么工具?脚本,插件等等;比如:
多人协同开发可能对一些相同资源都各自放了一份,有没有方法自动检测这种重复之类的
- 如何绕过9.0限制?
面试之外
学习分享
在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2021最新上万页的大厂面试真题
七大模块学习资料:如NDK模块开发、Android框架体系架构…
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
这份体系学习笔记,适应人群:
**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。
**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。
第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。如有需要获取完整的资料文档的朋友点击我的GitHub免费获取。
容比较多,篇幅不允许,部分未展示内容以截图方式展示 。如有需要获取完整的资料文档的朋友点击我的GitHub免费获取。