Android高工必备技能!

作者: Maat红飞 | 来源:发表于2016-10-12 14:51 被阅读18243次

    Step 1. 玩转RxJava

    使用RxJava处理异步极其方便,各种操作符可以对数据做流水线式操作,再加上与Retrofit的结合,使得Andorid开发变的极其简单。唯一美中不足的就是RxJava不符合我们以往的编程思想,学习Rxjava存在一定的难度,很多工程师对Rxjava都不能完全理解。不过,相信以下2个内容会让你对Rxjava的使用有一个更清晰的认识。

    1. 给 Android 开发者的 RxJava 详解
    2. 开源项目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. 进程间通信与进程保活

    1. 进程间通信
      进程间通信通常通过以下7种手段:
    • Bundle:主要是放在Intent中,在四大组件间传递。
    • 文件共享:一个进程写文件,一个进程读文件。
    • SharedPreferences: 不支持并发,底层基于xml。
    • Messenger:底层是通过IPC进行通信的,主要是进程间传递数据,不支持并发。
    • Socket:基于TCP协议。
    • AIDL: 支持并发,一个进程可以调用另一个进程的方法。
    • ContentProvider:不同的应用间数据共享。
      详解:《Android开发艺术探究》进程间通信读书笔记

    2.进程保活

    (我的学习过程是从入门到放弃:大家只做了解,初步理解原理即可)
    Android 进程保活招式大全

    论Android应用进程长存的可行性

    微信Android客户端后台保活经验分享

    开源项目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较大 较小 较小 较小
    成功率 较高 最高 一般 一般

    总的来说:

    1. Dexposed无法支持全平台,并不适合应用到商业产品中。
    2. AndFix作为native解决方案,首先面临的是稳定性与兼容性问题,更重要的是它无法实现类替换,它是需要大量额外的开发成本的。
    3. QZone方案主要问题是插桩带来Dalvik的性能问题,以及为了解决Art下内存地址问题而导致补丁包急速增大的。
      Tinker热补丁方案不仅支持类、So以及资源的替换,它还是2.X-7.X的全平台支持。它无需插桩,补丁大小也远远小于其他方案。Tinker已运行在微信的数亿Android设备上。

    Android 热补丁动态修复框架小结
    Android热补丁动态修复技术系列
    安卓App热补丁动态修复技术介绍

    下面这个项目是一个基于热修复框架TinkerDemo,并总结了一些常见的问题。

    tinker.gif

    项目地址https://github.com/xinghongfei/Hello-Tinker

    Step 5. 架构

    常见的架构有:MVC,MVP,MVVM。使用最多的就是MVC架构了,现在很多应用也使用MVP架构,MVVM用的还很少。

    architucture.png

    Android App的设计架构:MVC,MVP,MVVM与架构经验谈
    Google的android-architecture
    Android Data Binding

    下面这个项目是一个特别简单的MVP架构框架,模拟文件下载。

    mvp.gif

    项目地址https://github.com/xinghongfei/Hello-MVP

    Step 6. 整理中,敬请期待

    Step 7.敬请期待

    结语:为了收集整理这些东西,基本上整个国庆假期的时间和精力都花费在这个上面,希望会对大家有帮助,未来会不断的完善。如果你喜欢我的文章,可以关注我的Github掘金简书,😄😄,后续会分享更多精彩的内容。祝好。

    相关文章

      网友评论

      本文标题:Android高工必备技能!

      本文链接:https://www.haomeiwen.com/subject/xkcnettx.html