转载: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. webpack里的module选项配置

    webpack里的module 有loaders选项和noParse选项,noParse选项配置不需要解析的目录和文件 module:{ loaders:[], noParse: [ path.joi ...

  2. asp.net webapi支持跨域

    1.Install-Package Microsoft.AspNet.WebApi.Cors 2. using System.Web.Http; namespace WebService {     ...

  3. 58种jQuery模拟CSS3过渡页面切换特效

    演示网址 http://www.htmleaf.com/Demo/201503251573.html 点击下载

  4. IntelliJ IDEA运行tomcat项目编码错误, 及如何指定tomcat编码

    刚开始用IDEA, 在跑dubbo开发时, 发现一个很奇怪的问题, 远程调用服务端的方法时, 传入的中文参数会变成GBK编码. 经过好长时间的跟踪终于把问题定位到了IDEA里配置的Tomcat. 凡是 ...

  5. 80端口未占用,apache无法启动解决办法

    网上很多关于apache无法启动的原因,新手遇到最多的是80端口被占用. 今天为了解决apache和tomcat端口共存问题,修改了httpd.conf的配置,由于增加位置没有做明显标识,重启apac ...

  6. Python2.4-原理之函数

    此节来自于<Python学习手册第四版>第四部分 一.函数基础 函数的作用在每个编程语言中都是大同小异的,,这个表是函数的相关语句和表达式. 1.编写函数,a.def是可执行代码,pyth ...

  7. 十分钟掌握Activity的生命周期与启动模式

    1. Activity的生命周期 正常情况下的Activity生命周期如下图所示(来自Android Developer): 当资源相关的系统配置变更时(比如设备屏幕方向改变,键盘可见性变化),会导致 ...

  8. 一步一步学习ABP项目系列文章目录

    1.概述 基于DDD的.NET开发框架 - ABP初探 基于DDD的.NET开发框架 - ABP分层设计 基于DDD的.NET开发框架 - ABP模块设计 基于DDD的.NET开发框架 - ABP启动 ...

  9. unity3d 三分钟实现简单的赛车漂移

    提到赛车游戏,大家最关心的应该就是漂移吧?! 从学unity开始,我就一直在断断续续的研究赛车 因为自己技术太烂.悟性太差等原因,我走了不少弯路 也许你会说,网上那么多资料,你不会查啊 是啊!网上一搜 ...

  10. 基于Html5缓存的页面P2P技术可行性探讨

    P2P技术,在分享大文件(你懂的)是现在必不可缺的技术,现在的人,已经很难想象在没有这玩意的互联网早期,人们是怎样的艰难求生.想当年,不要说电影,下一个稍大点的文件,都是很吃力的事情. 后来牛人科恩, ...