20条性能优化的建议 App性能优化的建议有哪些( 二 )


  • 图片缩放:inSampleSize、inScaled、inDensity和inTargetDensity
  • 位图内存重用:inBitmap的使用, 可以结合LruCache实现 。
  • 推荐开源库:picasso、Glide
15. Android 网络通信框架Volley 。
16. 对象池、线程池的合理使用 。
17. 使用IntentService替代Service 。
IntentService优势:新开线程;顺序处理Intent;执行完自动退出 。
18. 尽量不要因一两个特性而使用大体积类库 。
19. 对象不用时最好显式置为Null可以减少GC开销 。
20. 多了解并使用类库 。
一些例子1. 当处理字串的时候, 尽量使用String.indexOf, String.lastIndexOf等特殊实现的方法 。 这些方法都是使用C/C++实现的, 比起Java循环快10到100倍 。
2. System.arraycopy方法在有JIT的Nexus One上, 自行编码的循环快9倍 。
3. android.text.format包下的Formatter类, 提供了IP地址转换、文件大小转换等方法;DateFormat类, 提供了各种时间转换, 都是非常高效的方法 。
4. TextUtils类, 对于字符串处理Android为我们提供了一个简单实用的TextUtils类, 如果处理比较简单的内容不用去思考正则表达式不妨试试这个在android.text.TextUtils的类
5. 高性能MemoryFile类, 对于I/O需要频繁操作的, 主要是和外部存储相关的I/O操作, MemoryFile通过将 NAND或SD卡上的文件, 分段映射到内存中进行修改处理, 这样就用高速的RAM代替了ROM或SD卡, 性能自然提高不少, 对于Android手机而言同时还减少了电量消耗 。 该类实现的功能不是很多, 直接从Object上继承, 通过JNI的方式直接在C底层执行 。
内存优化工具推荐内存分析工具:Memory Monitor 适用于Android Studio
推荐内存泄露分析工作:MAT 适用于eclipse、Android Studio
内存泄露监控工具:LeakCanary

推荐阅读