android开发的一些建议
2015-07-07 14:14
525 查看
1.在移动开发中,get/set方法很多时候是完全没有必要的,而且是有性能消耗的,直接使用public的字段;当然如果需要对字段设置一定的控制,get/set方法也是可以酌情使用
2.出于性能考虑,android开发中不推荐使用枚举
3.显示图片时用setImageDrawable是最省内存高效的
4.预防图片OOM请使用底层的方法来替代使用java层的方法,即尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存,因此,改用先通BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的
source,decodeStream最大的秘密在于其直接调用JNI->nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap,从而节省了java层的空间,但是decodeStream直接拿的图片来读取字节码,不会根据机器的各种分辨率来自动适应,因此需要在hdpi和mdpi,ldpi中配置相应的图片资源,否则在不同分辨率机器上都是同样大小(像素点数量),显示出来的大小就不对了;在读取时加上图片的Config参数inSampleSize,可以跟有效减少加载的内存,
5.使用单例模式很好,但是要慎用,因为极有可能造成内存泄漏,遇到一些莫名其妙的对象为成功使用问题,先找找是不是单例的原因导致还是老对象没被替换的问题,如果是,解决方案也很简单,关键地方将老对象设置为null
2.出于性能考虑,android开发中不推荐使用枚举
3.显示图片时用setImageDrawable是最省内存高效的
4.预防图片OOM请使用底层的方法来替代使用java层的方法,即尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存,因此,改用先通BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的
source,decodeStream最大的秘密在于其直接调用JNI->nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap,从而节省了java层的空间,但是decodeStream直接拿的图片来读取字节码,不会根据机器的各种分辨率来自动适应,因此需要在hdpi和mdpi,ldpi中配置相应的图片资源,否则在不同分辨率机器上都是同样大小(像素点数量),显示出来的大小就不对了;在读取时加上图片的Config参数inSampleSize,可以跟有效减少加载的内存,
5.使用单例模式很好,但是要慎用,因为极有可能造成内存泄漏,遇到一些莫名其妙的对象为成功使用问题,先找找是不是单例的原因导致还是老对象没被替换的问题,如果是,解决方案也很简单,关键地方将老对象设置为null
相关文章推荐
- Android 修改keystore文件密码、alias名称
- android 实现全屏代码
- android studio开发apk
- Android错误之Location of the Android SDK has not been setup in the preferences
- Android实现开机自动运行程序
- Android Monkey Log
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Android 自定义View步骤
- android解析JSON数据样例
- 【转】Android编程判断手机or平板
- Android Studio设置代码风格
- Android SpannaleString详解
- android:windowSoftInputMode属性详解(解决软键盘弹出布局调整问题)
- Android Paint、Path详解
- Android 如何按返回键暂停异步任务
- Android ScrollView水平自动滚动
- android 编写content_provider对外共享数据
- android 使用BroadcastReceiver编写短信
- Android中弹出菜单PopupWindow的使用
- Android隐藏软件盘