关于android 内存的笔记
原文
https://developer.android.com/training/articles/memory.html
1.慎重使用Service,
最好的办法是使用IntentService,一旦事情做完,就把他停掉。
2.当UI切换到后台的时候,释放一些内存
在Activity里面实现哦nTrimMemory()
如果收到TRIM_MEMORY_UI_HIDDEN,把不需要的释放掉吧
3.当系统内存吃紧时,主动释放一点出来
onTrimMemory()
TRIM_MEMORY_RUNNING_MODERATE
系统正在杀进程
TRIM_MEMORY_RUNNING_MODERATE
系统内存不足了
TRIM_MEMORY_BACKGROUND
系统内存不足了,正在杀进程,快轮到了,赶紧清理一部分内存吧
TRIM_MEMORY_MODERATE
该杀当前进程了
TRIM_MEMORY_COMPLETE
内存没了,下一个就是当前进程了
4. 检查一下APP可以使用多少内存
getMemoryClass()
如果要使用大量内存,尝试 largeHeap 属性,写在 <application> 里面
5.避免位图浪费内存
需要显示的区域有多大,加载多大的图片
6.使用推荐的数据容器,例如 SparseArray, SparseBooleanArray, and LongSparseArray.
7.注意内存超标
避免使用枚举
每个类 500 bytes of code
每个类的实例 12-16 bytes
8.使用抽象代码时要小心
9.避免使用依赖注入的框架
10.引用外部的lib时要小心
11.优化整体性能
12.用ProGuard 去移除不必要的代码
13.最终的APK用zipAlign
14.分析内存使用情况
15 使用多进程
Optimizing Your UI
https://developer.android.com/tools/debugging/debugging-ui.html
ProGuard
https://developer.android.com/tools/help/proguard.html
Investigating Your RAM Usage
https://developer.android.com/tools/debugging/debugging-memory.html
关于android 内存的笔记的更多相关文章
- Android 数字签名学习笔记
Android 数字签名学习笔记 在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的pro ...
- Android高级编程笔记(四)深入探讨Activity(转)
在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕.这个主界面一般由多个Fragment组成,并由一组次要Activity支持.要在屏幕之间切换,就必须要启动一个新的Activity.一 ...
- Android内存泄漏检测利器:LeakCanary
Android内存泄漏检测利器:LeakCanary MAR 28TH, 2016 是什么? 一言以蔽之:LeakCanary是一个傻瓜化并且可视化的内存泄露分析工具 为什么需要LeakCanary? ...
- Android群英传笔记——第十章:Android性能优化
Android群英传笔记--第十章:Android性能优化 随着Android应用增多,功能越来越复杂,布局也越来越丰富了,而这些也成为了阻碍一个应用流畅运行,因此,对复杂的功能进行性能优化是创造高质 ...
- Android群英传笔记——第九章:Android系统信息和安全机制
Android群英传笔记--第九章:Android系统信息和安全机制 本书也正式的进入尾声了,在android的世界了,不同的软件,硬件信息就像一个国家的经济水平,军事水平,不同的配置参数,代表着一个 ...
- Android群英传笔记——第八章:Activity与Activity调用栈分析
Android群英传笔记--第八章:Activity与Activity调用栈分析 开篇,我们陈述一下Activity,Activity是整个应用用户交互的核心组件,了解Activity的工作模式,生命 ...
- Android群英传笔记——摘要,概述,新的出发点,温故而知新,可以为师矣!
Android群英传笔记--摘要,概述,新的出发点,温故而知新,可以为师矣! 当工作的越久,就越感到力不从心了,基础和理解才是最重要的,所以买了两本书,医生的<Android群英传>和主席 ...
- Android APP性能测试笔记(一)
Android APP性能测试笔记(一) (1)工具使用 Android Studio GT, root的真机 (2)记录apk大小(对比竞品) 使用Android Studio导入需要测试 ...
- Android:日常学习笔记(9)———探究持久化技术
Android:日常学习笔记(9)———探究持久化技术 引入持久化技术 什么是持久化技术 持久化技术就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失 ...
随机推荐
- Java中ArrayList实现原理
简述: ArrayList可以理解为动态数组,与Java中的数组相比,它的容量能动态增长.超出限制时会增加50%容量,用System.arraycopy()复制到新的数组中,因此最好能给出数组大小的预 ...
- Android——Fragment实例精讲——底部导航栏+ViewPager滑动切换页面
说明: 实现效果: 1- 用ViewPager实现Fragmen之间的切换 2- 底部用RadioGroup实现,更方便的实现图片和字体颜色的改变,更方便的通过RadioButton的点击事件来控制页 ...
- PPP或PPPOE身份验证PAP和CHAP
PPP或PPPOE都支持身份验证,有两种验证方式:PAP和CHAP. PAP,Passwd Authentication Protocol,密码验证协议,以客户端明文方式传递用户名和密码,服务器和本省 ...
- python将dict中的unicode打印成中文
import json a = {u'content': {u'address_detail': {u'province': u'\u5409\u6797\u7701', u'city': u'\u9 ...
- 解析Google集群资源管理系统Omega
1. 背景 Google的第一代/第二代集群(资源)管理系统被称为Borg,Borg设计细节因零零星星出现在各种文章中而知名,但一直未公开(比如发一篇paper).然而,我们可从腾讯公布的Torca( ...
- ansible wc -l 对结果值取大小的操作
[root@localhost ansible]# cat zss.yml - hosts: zss tasks: - name: step1 ping: - name: step2 install ...
- 修改Windows和linux系统时间
1.修改本机Windows的系统时间,Java代码实现: import java.io.IOException; import java.text.SimpleDateFormat; import j ...
- android批量插入数据效率对比
对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间): 1. 一个一个插入 /** * 向表中插入数据 * * @param openHelper * @param app ...
- Group Normalization
Group Normalization 2018年03月26日 18:40:43 阅读数:1351 FAIR 团队,吴育昕和恺明大大的新作Group Normalization. 主要的优势在于,BN ...
- c递归程序
递归 long recursin(int); void main() { int n; long result; printf("input a integer number: \n&quo ...