面试题汇总
1-3年Android开发工程师面试经验分享
面向 Android 高级工程师的一份面试宝典 (持续更新)
源码及原理分析
Binder
- 为什么Android要采用Binder作为IPC机制? - Gityuan的回答
- Android匿名共享内存(Ashmem)原理
-
图文详解 Android Binder跨进程通信的原理
(https://www.jianshu.com/p/47731149c93c)
App(Activity)的启动流程
- 死磕Android_App 启动过程(含 Activity 启动过程)
- 写给Android App开发人员看的Android底层知识(2)
- 写给Android App开发人员看的Android底层知识(3)
- 写给Android App开发人员看的Android底层知识(4)
Android中的Context
Service启动流程
- 写给Android App开发人员看的Android底层知识(5)
- 死磕Android_Service启动流程分析
- 死磕Android_Service绑定流程分析(二)
- 23 个安卓重难点突破,带你吃透 Service 知识点「长达 1W+ 字」
BroadcastReceiver
- 写给Android App开发人员看的Android底层知识(6)
- 死磕Android_BroadcastReceiver 工作过程
- Android四大组件:BroadcastReceiver史上最全面解析
- Android源码解析四大组件系列(五)---广播的注册过程
ContentProvider
PMS
Handler
Context
ViewPager
ThreadLocal
View工作原理
性能优化
- 面试官: 说一下你做过哪些性能优化?
- Android性能优化的几点建议
- Android中Bitmap内存优化
- Android性能优化(五)之细说Bitmap
- Android性能优化(二)之布局优化面面观
- 调试GPU过度绘制,将Overdraw降低到合理范围内;
- 减少嵌套层次及控件个数,保持view的树形结构尽量扁平(使用Hierarchy Viewer可以方便的查看),同时移除所有不需要渲染的view;
- 使用GPU配置渲染工具,定位出问题发生在具体哪个步骤,使用TraceView精准定位代码;
- 使用标签,merge减少嵌套层次、viewStub延迟初始化、include布局重用 (与merge配合使用)