Android提供的多种位图格式中,最高的是RGB_8888,也是系统默认的位图格式,其他几种都减少位图通道,可以减少内存开销,如一些局部图片、小屏幕手机或者对图片质量要求不高的场景,均可以使用RGB_565,或者ARGB_4444等图像格式。 图片缩放: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 (责任编辑:admin) |