Step 1. 玩转 RxJava
使用 RxJava 处理异步极其方便, 各种操作符可以对数据做流水线式操作, 再加上与 Retrofit 的结合, 使得 Andorid 开发变的极其简单. 唯一美中不足的就是 RxJava 不符合我们以往的编程思想, 学习 Rxjava 存在一定的难度, 很多工程师对 Rxjava 都不能完全理解. 不过, 相信以下 2 个内容会让你对 Rxjava 的使用有一个更清晰的认识.
给 Android 开发者的 RxJava 详解 http://gank.io/post/560e15be2dca930e00da1083
开源项目 Hello-RxJava https://github.com/xinghongfei/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 开发艺术探究进程间通信读书笔记 http://bigmercu.top/2016/06/08 / 三枪干掉 IPC 机制之一 /
2. 进程保活
(我的学习过程是从入门到放弃: 大家只做了解, 初步理解原理即可) Android 进程保活招式大全 http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==
论 Android 应用进程长存的可行性 http://blog.csdn.net/aigestudio/article/details/51348408
微信 Android 客户端后台保活经验分享 https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==
开源项目 Hello-Daemon
daemon.gif
项目地址 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 热补丁动态修复框架小结 http://blog.csdn.net/lmj623565791/article/details/49883661 Android 热补丁动态修复技术系列 http://blog.csdn.net/u010386612/article/details/50885320 安卓 App 热补丁动态修复技术介绍 https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==
下面这个项目是一个基于热修复框架 Tinker https://github.com/Tencent/tinker 的 Demo https://github.com/xinghongfei/Hello-Tinker , 并总结了一些常见的问题.
tinker.gif
项目地址 https://github.com/xinghongfei/Hello-Tinker
Step 5. 架构
常见的架构有: MVC,MVP,MVVM. 使用最多的就是 MVC 架构了, 现在很多应用也使用 MVP 架构, MVVM 用的还很少.
architucture.png
Android App 的设计架构: MVC,MVP,MVVM 与架构经验谈 https://www.tianmaying.com/tutorial/AndroidMVC Google 的 android-architecture https://github.com/googlesamples/android-architecture Android Data Binding http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0811/3290.html
下面这个项目是一个特别简单的 MVP 架构框架, 模拟文件下载.
mvp.gif
项目地址 https://github.com/xinghongfei/Hello-MVP
Step 6. 整理中, 敬请期待
Step 7. 敬请期待
结语: 为了收集整理这些东西, 基本上整个国庆假期的时间和精力都花费在这个上面, 希望会对大家有帮助, 未来会不断的完善. 如果你喜欢我的文章, 可以关注我的 Github https://github.com/xinghongfei , 掘金 http://gold.xitu.io/user/57a21ebdd342d3005739391e , 简书,, 后续会分享更多精彩的内容. 祝好.
来源: http://www.jianshu.com/p/d791bbede02c