【MDCC2015】 平台与技术-Android专场总结

看了一些大牛们的一些经验分享,感觉简单的总结记录下来是有必要的。

Android开发的主要问题包括五个方面:

1.性能;

2.产品质量;

3.产品迭代;

4.多进程架构;

5.其它典型问题。在性能方面,运行速度依赖于性能分析、优化UI布局,优化算法和数据结构和业务逻辑调整。

       防止内存泄露是一个需要特别注意的问题。当然,占用内存占用的因素还包括不够优化的数据结构、图片,所以能少用图片就尽量少用,而对于多进程架构,要注意Android是基于Linux的内存管理的,即使Java内存释放,内存占用可能仍然很高。

多进程设计的技术方案,包括四个方面:1.常驻进程;2.UI进程;3.特殊任务进程;4.IPC。

数据库操作方面,单进程引用计数方式打开/关闭数据库,多进程可以用ContentProvider。

Android系统有一些安全问题,例如,广播发送/接收、Intent extra参数提取,也会影响到应用的开发。

        技术跟踪时,要有专业人员对Android版本及SDK进行跟踪,发现其新特性和技术的价值挖掘,及时发现并解决产品的兼容性问题。对于Android Support库,当一些新的API的补充,大家也可以去关注。Android Studio和Android Plugin for Gradle,开发人员应关注新特性,适时引入项目,优化构建流程。在性能优化和质量工具方面,开发者一定要注意优化产品的各性能指标(运行速度、内存占用、流量消耗、电量消耗)并引入适当的质量工具如Android Lint等,提高代码质量。

Android内存优化的5R法则:

  1. Reduce:差异化处理缓存容量、图片资源(针对不同dpi切图不同的图,尤其是引导页);资源按需加载;减小bitmap对象的内存占用,这一点很重要,手段包括inSampleSize和decode format。

  2. Reuse:所有的Reuse背后的精髓都是pool模型的使用,选用一些比较经典的算法;Bitmap对象的复用,这与前文是不同层级的,具体是inBitmap(但不好的地方是增加GC操作),创建inBitmap对象池,让不同场景下复用;注意在ListView/GirdView中ConvertView的复用;避免频繁创建和回收对象,否则可能引发不断的GC行为。

  3. Recycle:注意Activity泄露,包括内部类、容器对象泄露,Static和Singleton;需要谨慎选择合适的Context;注意有生命周期对象的泄露,注意大胖子(Bitmap和WebView)的及时回收;onTrimMemory()与onLowMemory()的回调。

  4. Refactor:使用优化过后的数据结构,如针对HashMap的处理,其次建议使用static,反对使用枚举;减少内存的碎片化,可以先给大的对象申请,再把一些连续的对象放在一起申请;优化布局,减少内存消耗,比如一些不必要的背景。

  5. Revalue:谨慎使用LargeHeap,LargeHeap虽然可以申请更多内存空间,但也意味着GC的时间变长,效率变低,同时还面临系统判定为占内存应用的弊端;谨慎使用多进程,除非Main Process;谨慎使用第三方libraries。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值