转载:http://www.jianshu.com/p/d791bbede02c

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

Android高工必备技能的更多相关文章

  1. Android java程序员必备技能,集合与数组中遍历元素,增强for循环的使用详解及代码

    Android java程序员必备技能,集合与数组中遍历元素, 增强for循环的使用详解及代码 作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 For ...

  2. Android开发者必备的42个链接

    http://mobile.51cto.com/ahot-426035.htm Android开发者必备的42个链接 下面收集了42个帮助大家学习Android的内容链接,部分内容是面向初学者的,帮助 ...

  3. Android 开发必备

    Android 开发必备 http://www.androiddevtools.cn/ 收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android ...

  4. 八款Android 开发者必备的小工具

    Photo from https://www.airpair.com 在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大 ...

  5. 详解linux运维工程师入门级必备技能

    详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...

  6. 自动化部署必备技能—部署yum仓库、定制rpm包

    部署yum仓库.定制rpm包 目录 第1章 扩展 - yum缓存 1.1 yum缓存使用步骤... 1 1.1.1 导言... 1 1.1.2 修改配置文件... 1 1.1.3 使用缓存... 1 ...

  7. 【转帖】系统软件工程师必备技能-进程内存的working set size(WSS)测量

    系统软件工程师必备技能-进程内存的working set size(WSS)测量 2018年12月28日 18:43:01 Linuxer_ 阅读数:145 https://blog.csdn.net ...

  8. SQL Server管理员必备技能之性能优化

    SQL Server管理员必备技能之性能优化 高文龙关注1人评论1171人阅读2017-09-22 08:27:41 SQL Server 作为企业必不可少的服务之一,所以对于管理员的日常运维是一个极 ...

  9. 高级Linux运维工程师必备技能(扫盲篇)

    高级Linux运维工程师必备技能(扫盲篇) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在了解文件系统之前,我们要学习一下磁盘存储数据的方式,大家都知道文件从内存若要持久化存储的 ...

随机推荐

  1. Openvpn 公网访问内网

    对于需要从公网访问内网的情况, 需要做如下配置 从公网到内网 除了设置net.ipv4.ip_forward = 1 以外, 还需要设置iptables, 增加两行forward # Generate ...

  2. jquery 时间运算、格式化的方法扩张

    /* 函数:日期 加n天 参数:n是天数 返回:n天后的日期 */ Date.prototype.addDays = Date.prototype.addDays || function (n) { ...

  3. PHP中$_SERVER的详细参数与说明

    $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv'] #传递给该脚本的参数. $_SERVER['argc'] ...

  4. android:ToolBar详解(手把手教程)(转)

    来源 http://blog.mosil.biz/2014/10/android-toolbar/ 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅 ...

  5. Putty颜色设置

    默认的Putty颜色和字体太不好看了,得自己设置: 字体:毫无疑问Consolas, 10-point:看起来非常清新自然 颜色: * Default Foreground: 255/255/255  ...

  6. 牛X的CSS3

    See the Pen Dot Wave by Rich Howell (@roborich) on CodePen

  7. 图片加载框架Picasso解析

    picasso是Square公司开源的一个Android图形缓存库 主要有以下一些特性: 在adapter中回收和取消当前的下载: 使用最少的内存完成复杂的图形转换操作: 自动的内存和硬盘缓存: 图形 ...

  8. RSA签名验签学习笔记

    RSA私钥签名时要基于某个HASH算法,比如MD5或者SHA1等.之前我一直认为签名的过程是:先对明文做HASH计算,然后用私钥直接对HASH值加密.最近才发现不是那么简单,需要对HASH后的数据进行 ...

  9. U-boot与linux的关系

    基本上没有啥关系,U-boot的话你也知道,说白了就像是Dos工具箱,本身算是个精简的Linux系统了,主要是负责硬件的初始化和引导,本身带有一些工具,作为引导程序,常作为嵌入式设备的引导.当真正的系 ...

  10. Oracle 常见错误排查

    1. java.sql.SQLException: ORA-01000: 超出打开游标的最大数 step 1: 查看数据库当前的游标数配置slqplus:show parameter open_cur ...