一、合理的管理内存
1.节制的使用service:如果应用程序当中需要使用Service来执行后台任务的话,请一定要注意只有当任务正在执行的时候才应该让Service运行起来。另外,当任务执行完之后去停止Service的时候,要小心Service停止失败导致内存泄漏的情况。 为了能够控制Service的生命周期,Android官方推荐的最佳解决方案就是使用IntentService,这种Service的最大特点就是当后台任务执行结束后会自动停止,从而极大程度上避免了Service内存泄漏的可能性。
2.当界面不可见时释放内存
3.避免bitmap上浪费内存 :读取一个Bitmap图片的时候,有一点一定要注意,就是千万不要去加载不需要的分辨率。
4.使用优化过的数据集合:如SparseArray,SparseBooleanArray,以及LongSparseArray等,使用这些API可以让我们的程序更加高效。
5.谨慎使用面向对象编程:因为的抽象的编程方法更加面向对象,而且在代码的维护和可扩展性方面都会有所提高。但是,在Android上使用抽象会带来额外的内存开支,因为抽象的编程方法需要编写额外的代码,虽然这些代码根本执行不到,但是却也要映射到内存当中,不仅占用了更多的内存,在执行效率方面也会有所降低。
6.尽量避免使用依赖注入框架:框架为了要搜寻代码中的注解,通常都需要经历较长的初始化过程,并且还可能将一些你用不到的对象也一并加载到内存当中。
7.使用ProGuard简化代码
8.使用多个进程
二、高性能编码优化
1.避免创建不必要的对象:因为创建一个对象就意味着垃圾回收器需要回收一个对象,而这两步操作都是需要消耗时间的。
- 静态优于抽象:
- 对常量使用static final修饰符
- 使用增强型for循环语法
三、布局优化
- 重用布局文件:<include>
- <merge>:换用了<merge>标签,这就表示当有任何一个地方去include这个布局时,会将<merge>标签内包含的内容直接填充到include的位置,不会再添加任何额外的布局结构。
- 仅在需要时才加载布局
原文地址:https://www.cnblogs.com/ShengXi-1994/p/8907243.html