关于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)———探究持久化技术 引入持久化技术 什么是持久化技术 持久化技术就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失 ...
随机推荐
- Spirng MVC启动流程
以Tomcat为例,想在Web容器中使用Spirng MVC,必须进行四项的配置: 修改web.xml,添加servlet定义.编写servletname-servlet.xml( servletna ...
- 调整Intellij IDEA内存
最近IDEA真是卡的要死,下面
- svn 备份脚本
[root@hm-vpnserver-196 ~]# cat /root/svnback.sh #!/bin/bashtt=$(ls /home/svndata/) for i in $ttdo mk ...
- Sublime Text3工具的安装、破解、VIM功能vintage插件教程
1.安装Sublime Text 3 下载安装:http://www.sublimetext.com/3 Package Control安装:https://sublime.wbond.net/in ...
- 微信小程序——button, swiper等默认样式更改
微信开发工具里面,无法展示编译后的一些样式,如::before,::after这些伪类.有时候我们需要修改一些组件的默认样式会略感到麻烦,因为不知道是通过哪里控制的. 我就平常遇到的一些修改默认样式, ...
- 微信小程序——收起和查看更多功能
项目中做一些列表的时候,可能会需要做到 查看更多 及 收起功能,如下图所示: 大概的需求就是默认只显示2条,点击[查看更多]显示全部,点击[收起]还原. 实现的方法千万种.我来讲一下我的实现思路: 1 ...
- 分治算法--寻找第k大数
问题描述:给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k大的元素,(这里给定的线性集是无序的). 其实这个问题很简单,直接对线性序列集qsort,再找出第k个即可.但是这样的 ...
- PHP递归算法的简单实例
递归函数为自调用函数,在函数体内直接或直接自个调用自个,但需求设置自调用的条件,若满意条件,则调用函数自身,若不满意则停止本函数的自调用,然后把目前流程的主控权交回给上一层函数来履行,也许这么给我们解 ...
- 2014年第五届蓝桥杯C/C++B组省赛题目解析
一.啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元.小明买了若干啤酒和饮料,一共花了82.3元. 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒. 注意:答案是一个整数.请通过浏览器提交答 ...
- 3ds Max 中的导航控件SteeringWheels入门介绍
介绍 软件环境:3d Max2015 SteeringWheels 3D导航控件也可以说是“追踪菜单”,通过它们可以使用户从单一的工具访问不同的2D和3D导航工具.SteeringWheels可分成多 ...