Android基础知识点
Android开发高级
Android技术难点
- AIDL、Binder、多进程、View的绘制流程、事件分发、消息队列等。
- view的绘制;事件分发
- handler机制
Android框架层源码掌握
Android包管理机制,核心PackageManagerService
Window管理,核心WindowManagerService
Android Activity启动和管理,核心ActivityManagerService
根Activity工作流程
Context关联类
各种原理,经典第三方库源码系列
自定义LayoutManager,RecyclerView中如何自定义LayoutManager
VLayout实现原理,即如何自定义LayoutManager
Glide加载原理,缓存方案,LRU算法
Retrofit的实现与原理
OKHttp3的使用,网络请求中的Intercept
ButterKnife实现原理
Dagger依赖注入
热修复实现原理,解决方案
组件化原理和解决方案
Android进程通信以及多进程开发
Android 多进程和Application关系
经典解决方案:多进程通信解决方案:Andromeda
Android动画机制
Android绘图原理
Android页面恢复
混合开发及Android WebView应用
APP调用WebView加载url
掌握WebView的封装,了解所有的WebSettings配置,掌握WebViewClient、WebChromeClient
掌握WebView和Native双向通信机制,会自己封装双向通信中间件
对WebView的封装可参考:GitHub: AgentWeb
对通信中间件原理理解:GitHub:webprogress
Gradle,自动化构建,持续集成相关
Android系统
Android Studio编译过程
其中使用到的编译工具:
aapt、aidl、Java Compiler、dex、 zipalign
主要步骤描述:
通过aapt打包res资源文件,生成R.java、resources.arsc和res文件(二进制 & 非二进制如res/raw和pic保持原样)
处理.aidl文件,生成对应的Java接口文件
通过Java Compiler编译R.java、Java接口文件、Java源文件,生成.class文件
通过dex命令,将.class文件和第三方库中的.class文件处理生成classes.dex
通过apkbuilder工具,将aapt生成的resources.arsc和res文件、assets文件和classes.dex一起打包生成apk
通过Jarsigner工具,对上面的apk进行debug或release签名
通过zipalign工具,将签名后的apk进行对齐处理。
App启动加载过程
Android虚拟机 Android App运行的沙箱原则