android技能树
1.插件化
①插件化技术是Android技术领域的集大成者。基于插件化技术,企业可以随时发布新功能、修复线上bug,而不需要重新发版。
②本解决方案将提供动态替换、静态代理两种成熟的插件化实现方式,企业可以根据自身实际情况,决定在项目中采取哪一种。
③在提供插件化框架的同时,还将提供增量更新、服务器插件安全下发等一揽子解决方案。
![](https://images2015.cnblogs.com/blog/1044471/201706/1044471-20170613013551009-1404177897.png)
2.热修复
目前有AndFix、Robust、Tinker等多种热修复解决方案
3.组件化和模块化
组件化:当团队规模快速增长时,就该面临多人协作开发的问题。本方案将对原先功能强大的Android App程序按照独立的业务线进行拆分,并通过Maven进行依赖管理,大幅提高代码调试时的编译速度。不同业务线的Android开发人员,在不同的Git仓库上编写代码,开发效率大幅提升。
在Github上采取主干开发、分支修bug并上线的持续集成策略
基于Gradle+Jenkins的快速继承模型,以确保Android项目每日自动构建,质量得到充分保障
引入Freeline,将Android每次打包的时间降低到秒级
![](https://images2015.cnblogs.com/blog/1044471/201706/1044471-20170613013227275-2147045092.png)
7.android优化(性能优化 +瘦身)
①性能优化(leakCanary+过度宣览)
leakCanary缺点 一次只能一个
A.内存泄露问题
B.ANR问题
C.OOM问题
D.Android网络访问优化
E.Android布局的性能问题
F.Android耗电问题
G.Android流畅度问题
H.ListView性能优化
App越做越大,是每个App都面临的问题。
图片优化,是App瘦身的一个主要方向。如果巧妙的对图片进行压缩,是本方案的一个重要课题。
代码瘦身,是Android App瘦身的另一个方向,包括检查冗余代码、检查相似代码,原生代码转Hybrid等多种解决方案。
8.图片显示的最佳实践
App中最难做的页面是列表页,列表页中最难做的是图片,尤其是上拉分页时下载大量图片到内存中,是导致OOM的罪魁祸首。
目前业内毕竟成熟的解决方案是Fresco和ImageLoader。
Fresco能有效处理Android2.3系统的内存回收问题。而且能高效给图片添加圆角。
9.注解编程
10.跨平台混合编程
跨平台混合编程能实现一次编程,多处运行。
本解决方案包括Hybrid和React Native两种业内成熟的实现方式。企业可以根据自身实际情况,来选择合适的解决方案。
Hybrid是早期的跨平台编程解决方案,覆盖增量更新、离线包等若干技术,但缺点是JS代码在Webview上运行,执行效率差。ReactNative则在Hybrid的基础之上,可以在运行时把JS代码翻译成系统原生语言,执行效率大幅提升。