您的位置:首页 > 移动开发 > Android开发

Android学习笔记-Android初级 (三)android内存管理技巧

2016-02-02 15:13 211 查看
1.使用service的风险:

注意:

1.当任务正在执行的时候才运行service

2.在停止service的时候 要小心停止失败造成的内存泄露

3.不要让service在后台一直运行,用完了一定要停止

解决方法:

官方推荐使用Intenservice 特点:任务执行完后自动停止

2.当界面不可以见时释放内存:



3当内存紧张时释放内存:



4避免在Bitmap上浪费内存

5使用优化过的数据集合

//性能较低的集合
HashMap<Integer, String> hm = new HashMap<Integer, String>();
hm.put(1, "11");
//性能更高的集合
SparseArray<String> array = new SparseArray<String>();
array.put(1, "1");
hashMap(矩阵方式存储),SpaseArray更好


6


(2)内部类可以使用static静态内部类

(3)减少new (可以拿出来,提升成成员(也叫:全局)变量)

(4)使用SparseArray

7


为什么在服务器编程推崇抽象编程,因为服务器端牺牲内存来提高可扩展性是值得的。

android中一切以性能丶高效为宗旨,不要滥用抽象编程,比如用List list = new ArrayList();

可以直接使用ArrayList list = new ArrayList(); 不要再转一下,不好扩展就不好扩展吧。

8避免使用依赖注入(运行时注解)框架

因为运行时注解都是使用反射实现的,并且反射的一些对象在内存中存在,很久才会释放,还是老老实实findviewbyid吧



9代码混淆



使用方法:

1.在F:\Android\sdk1\tools\proguard\中把proguard-android.txt拷贝出来

2.F:\GitHubList\Android_Vitamio\app放在项目的这个文件夹中



3.打开app文件夹中build.gradle文件找到buildTypes改为true(就代表下面引入的两个文件生效了)



4.修改proguard-android.txt文件配置相关的混淆内容,生成的app就是一个混淆过的app(反编译之后就会显示a,aa,bbb,c,a,c,b混淆过的类了,并且占的内存也比较小)

10.



好处:不占用当前进程的内存,多个进程就多份内存
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: