首页 > 代码库 > Android高工必备技能
Android高工必备技能
转载:http://www.jianshu.com/p/d791bbede02c
Step 1. 玩转RxJava
使用RxJava处理异步极其方便,各种操作符可以对数据做流水线式操作,再加上与Retrofit的结合,使得Andorid开发变的极其简单。唯一美中不足的就是RxJava不符合我们以往的编程思想,学习Rxjava存在一定的难度,很多工程师对Rxjava都不能完全理解。不过,相信以下2个内容会让你对Rxjava的使用有一个更清晰的认识。
- 给 Android 开发者的 RxJava 详解
- 开源项目Hello—RxJava让你彻底明白RxJava的异步编程。
项目地址:https://github.com/xinghongfei/Hello-RxJava
Step 2. 自定义view
自定义View主要掌握以下四部分内容:
- 绘制机制:掌握onMeasure,onLayout,onDraw及相关类的使用。
- 事件传递机制:掌握dispathTouchEvent(),onInterceptEvent(),onTouchEvent()三者的相关逻辑.
- 属性动画:因为属性动画核心是对数值的变化。自定义View中使用属性动画很方便对数值进行变换。
- 相关手势类。
你需要的东西都在这里https://github.com/xinghongfei/awesome-view
Step 3. 进程间通信与进程保活
-
进程间通信
进程间通信通常通过以下7种手段:
- Bundle:主要是放在Intent中,在四大组件间传递。
- 文件共享:一个进程写文件,一个进程读文件。
- SharedPreferences: 不支持并发,底层基于xml。
- Messenger:底层是通过IPC进行通信的,主要是进程间传递数据,不支持并发。
- Socket:基于TCP协议。
- AIDL: 支持并发,一个进程可以调用另一个进程的方法。
- ContentProvider:不同的应用间数据共享。
详解:《Android开发艺术探究》进程间通信读书笔记
2.进程保活
Android 进程保活招式大全
论Android应用进程长存的可行性
微信Android客户端后台保活经验分享
开源项目Hello-Daemon
项目地址https://github.com/xinghongfei/Hello-Daemon
Step 4. 热修复
线上程序出现bug,必须要有妙手回春的本事,想成为一名Andorid高工,这是必备技能。
现在市面上热修复框架很多,以下是常见的四种。
Tinker | QZone | AndFix | Dexposed | |
---|---|---|---|---|
类替换 | yes | yes | no | no |
So替换 | yes | no | no | no |
资源替换 | yes | yes | no | no |
全平台支持 | yes | yes | yes | no |
即时生效 | no | no | yes | yes |
性能损耗 | 较小 | 较大 | 较小 | 较小 |
补丁包大小 | 较小 | 较大 | 一般 | 一般 |
开发透明 | yes | yes | no | no |
复杂度 | 较低 | 较低 | 复杂 | 复杂 |
gradle支持 | yes | no | no | no |
接口文档 | 丰富 | 较少 | 一般 | 较少 |
Rom体积 | Dalvik较大 | 较小 | 较小 | 较小 |
成功率 | 较高 | 最高 | 一般 | 一般 |
总的来说:
- Dexposed无法支持全平台,并不适合应用到商业产品中。
- AndFix作为native解决方案,首先面临的是稳定性与兼容性问题,更重要的是它无法实现类替换,它是需要大量额外的开发成本的。
-
QZone方案主要问题是插桩带来Dalvik的性能问题,以及为了解决Art下内存地址问题而导致补丁包急速增大的。
Tinker热补丁方案不仅支持类、So以及资源的替换,它还是2.X-7.X的全平台支持。它无需插桩,补丁大小也远远小于其他方案。Tinker已运行在微信的数亿Android设备上。Android 热补丁动态修复框架小结
Android热补丁动态修复技术系列
安卓App热补丁动态修复技术介绍
下面这个项目是一个基于热修复框架Tinker的Demo,并总结了一些常见的问题。
项目地址https://github.com/xinghongfei/Hello-Tinker
Step 5. 架构
常见的架构有:MVC,MVP,MVVM。使用最多的就是MVC架构了,现在很多应用也使用MVP架构,MVVM用的还很少。
Android App的设计架构:MVC,MVP,MVVM与架构经验谈
Google的android-architecture
Android Data Binding
下面这个项目是一个特别简单的MVP架构框架,模拟文件下载。
项目地址https://github.com/xinghongfei/Hello-MVP
Android高工必备技能