Android框架层源码掌握
- Android包管理机制 , 核心PackageManagerService
- Window管理 , 核心WindowManagerService
- Android Activity启动和管理 , 核心ActivityManagerService
- 根Activity工作流程
- Context关联类
- 自定义LayoutManager , RecyclerView中如何自定义LayoutManager
- VLayout实现原理 , 即如何自定义LayoutManager
- Glide加载原理 , 缓存方案 , LRU算法
- Retrofit的实现与原理
- OKHttp3的使用 , 网络请求中的Intercept
- EventBus实现原理
- ButterKnife实现原理
- RxJava实现原理
- Dagger依赖注入
- 热修复实现原理 , 解决方案
- 组件化原理和解决方案
经典解决方案:多进程通信解决方案:Andromeda
- Android动画机制
- Android绘图原理
- Android页面恢复
- onSaveInstanceState(Bundle outState)
- onRestoreInstanceState(Bundle savedInstanceState)
- 用户点击Home键
- 用户点击Home键 , 切换到其他应用程序
- 有电话来了等附加操作
- APP调用WebView加载url
- 掌握WebView的封装 , 了解所有的WebSettings配置 , 掌握WebViewClient WebChromeClient
- 掌握WebView和Native双向通信机制 , 会自己封装双向通信中间件
- 对WebView的封装可参考:GitHub: AgentWeb
- 对通信中间件原理理解:GitHub:webprogress
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进行对齐处理 。
Android架构
在Android源码中最重要的三个类:ActivityManagerService/PackageManagerService/View , 推荐大家周末的时候可以去阅读下这部分的源码 , 阅读源码能提高我们今后设计架构自己代码的能力 , 同时也能从底层了解整个android系统的运行原理 , 其他一些比如主线程的消息循环、主线程如何和AMS如何跨进程交互、SystemServer进程中的各种Service的工作方式、AsyncTask的工作原理等 。这些知识也是作为一个Android高级开发工程师必须掌握的 , 不能整天沉溺于ui和四大组件的交互 , 要站在更高的角度去考虑Android的有些问题 。
- MVC模式
- MVP模式
- MVVM模式
- CLEAN模式
- 组件化开发
- 跨平台开发:Flutter、ReactNative(RN未来要黄 , 了解一下就好)
- SpringBoot技术
- Restful API开发
- 网络协议理解:TCP/IP、HTTP/HTTPS、OSI七层协议
- 授权认证协议: OAuth2.0 等
- 基本的数据库技术
- 数据缓存技术v:Memcached、redis , Web缓存原理
- 消息队列技术
- 监控、日志分析技术
- 核心必备:html、css、JavaScript
- 入门提高:浏览器兼容性、自定义UI和动效
- 中级技能:框架层出不穷 , 当前以vue.js、react.js 为核心
- 协作开发技能:包管理、模块化 , 工具采用 npm、webpack等
- 高级技能:框架原理源码研究
推荐阅读
- 跳槽时合理的薪资涨幅是多少?听听资深HR给出的三点建议,很实用
- 肺癌|NBA资深男神第二春,娶白富美,34岁还在涨球!减重后变帅
- 资深茶客侃茶——六安瓜片
- Linux几种常见反弹shell,想成大牛的你必须了解
- 铁壶开壶方法,铁壶的保养方法
- 铁观音茶,铁观音茶的五种口味
- 粉色|每一场对决都有故事《钓鱼大对决》全新玩法冠军赛征服资深钓友
- 阿里巴巴|阿里快递业务做出调整:菜鸟裹裹宣布停售VIP服务
- 大牛总结的MySQL锁优化,写得太好了
- 月入2万的10个小生意 菜鸟驿站一天200件挣钱吗