关于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)———探究持久化技术 引入持久化技术 什么是持久化技术 持久化技术就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失 ...
随机推荐
- 使用Android Studio进行NDK开发
Step1:创建native方法 很easy,仅仅须要给定义好的方法加上native关键词就可以 注意:由于该方法的详细实现是在c++中详细实现的.所以相似于接口方法不须要加{}. Step2:生成c ...
- php去除字符串中的HTML标签
php自带的函数可以去除/删除字符串中的HTML标签/代码. strip_tags(string,allow):函数剥去 HTML.XML 以及 PHP 的标签. 参数:string,必填,规定要检查 ...
- Java实现图片添加水印
参考别人的感觉挺好玩,还没仔细研究,先上代码. package WaterMark; import javax.imageio.ImageIO; import java.awt.*; import j ...
- InstallShield安装jdk并设置环境变量
1. 检查是否安装jdk function OnBegin() begin Disable (BACKBUTTON); if(!MAINTENANCE)then SdLicense2 ("L ...
- FutureTask 源码分析
FutureTask 源码分析,这个类的原理与我分析android当中的FutureTask类差不多[http://www.cnblogs.com/daxin/p/3802392.html] publ ...
- linux命令实现http的get和post请求
1. wget wget -O - "http://$IP/host" --header="Content-Type: application/json" - ...
- 解决Linux里面未启用网卡的问题
在Linux中可以使用ifconfig命令查询ip,如下图所示: 这时你会发现会提示command not found,说明安装的CentOS是简易版本的,其中一些命名没有,需要我们手动进行安装.安装 ...
- etl的表输入时精度问题
SELECT RecipeID, IngredientID as ingre_id, ROUND(Quantity, 5) Quantity, Preparation, RecipeIngredien ...
- QIODevice (Qt中所有 I/O devices 的基类,QFile,QBuffer,QTcpSocket等)
QIODevice是所有Qt I/O设备的基类,它提供了对支持块读写设备(例如QFile,QBuffer,QTcpSocket)的通用实现和抽象接口.QIODevice是一种抽象,不能被实例化,但是, ...
- fsck 工具 ——检查 与修复 Linux系统上的文件系统
可能由于昨天关电脑断电源的问题, 后来开机,直接出现如下界面: 心里想,不会吧,电脑怎么又出问题了吧(上周的时候,手贱,把装系统的硬盘分区设为了非活动分区,电脑就启动不来了,后来手动引导起来的:): ...