Android-App性能优化
来源:互联网 发布:中国知网期刊数据库 编辑:程序博客网 时间:2024/05/01 14:15
代码的优化
数据结构的选择
SpareArray代替HashMap
- SpareBooleanArray
- SpareIntArrary
- SpareLongArrary
- SpareArray <.String.>
SpareArray线程不安全的
要进行二分查找,SpareArray会对插入的数据按照Key值大小顺序插入
对删除做了优化 不会立即删除而是通过设置标识位(DELETED)方式.
Handler和内部类的正确用法
待补充
Context的正确使用
//待补充
Java的四种引用方式
强 软 弱 虚
图片的优化
布局的优化
- 优化布局层级
降低View树的高度,建议不超过10层
RelativeLayout相对LineraLayout更能够减少树的高度. - 使用<.include>标签重用Layout
在很多共通的UI上,可以建立一个简单的布局,通过<.include>标签的layout属性添加布局,并通过android:layout_XXXX的属性来设置特征. - 使用<.ViewStub>实现View的延迟加载 ViewStub是XML中的标签,
ViewStub标签和View.GONE的区别 View.GONE在初始化布局树的时候就已经添加了,ViewStub只有在显示的时候才渲染整个布局mViewStub= (ViewStub) findViewById(R.id.veiwStub);
//第一种方式
mViewStub.setVisibility(View.VISIBLE);
//第二种方式
View inflateView=mViewStub.inflate();
//第二种方式的区别就是可以返回引用的布局
TextView textView= (TextView) inflateView.findViewById(R.id.tv);
textView.setText("Panda"); - 通过Hierarchy Viewer工具进行布局的优化
内存的优化
所谓的内存分析是在堆(Heap),分析内存状态
ActivityManager manager= (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);int heapSize=manager.getLargeMemoryClass();
获取内存的信息
1.process stats
通过’Setting-Developer options-Process Stats来开启该功能
命令:adb shell dumpsys procstats
2.Meminfo
可以通过setting-apps-running打开
命令:adb shell dumpsys meminfo
Bitmap的优化
Bitmap是造成内存占用过高和OOM的最大威胁
- 使用适当分辨率大小的图片
- 及时回收内存 bitmap.recycle();
- 使用图片缓存 内存缓存(LruCache)和硬盘缓存(DiskLruCache)
代码的优化
创建一个类的实例会消耗大概15字节的内存,优化总结如下:
- 对常量使用static修饰符
- 使用静态方法,静态方法比普通方法提高15%左右的访问速度
- 减少不必要的成员变量.(在Lint工具做了集成检测了)
- 减少不必要的对象,使用基础类型会比使用对象更加节省资源
- 尽量不要用枚举类 少用迭代器
- 对Cursor Receiver Sensor File等对象,一定要注意他们的创建,回收,注册,解注册
- 避免使用IOC框架,因为通常使用注解和反射来实现,会带来性能的下降
- 使用RenderScript OpenGL来进行复杂的绘图操作
- 使用SurfaceView替代View进行大量 频繁的绘图操作
- 尽量使用视图缓存,不是每次都执行inflate()方法解析视图
Lint工具
可以给布局 代码提供强大的帮助.
Memory Monitor工具
TraceView工具优化APP性能
Debug类方法开启TraceView监听
Debug.startMethodTracing();Debug.stopMethodTracing();
开始和结束包围要监听的代码块
MAT工具分析App内存状态
0 0
- Android App 性能优化
- Android App 性能优化
- Android App 性能优化
- Android APP 性能优化
- Android App 性能优化
- Android App 性能优化
- 优化Android App性能
- Android App 性能优化
- Android-App性能优化
- Android App性能优化
- Android APP性能优化
- Android app性能优化
- android app性能优化
- Android APP性能优化
- Android App 性能优化实践
- Android App 性能优化实践
- Android App 性能优化实践
- Android App 性能优化实践
- 需求说明书的质量评估方法
- httpd: Could not reliably determine the server's fully qualified domain name
- docker container DNS配置介绍和源码分析
- PHP学习进阶之路
- DVWA - Brute Force (low, medium, high)
- Android-App性能优化
- CSS基础之边框、框模型、背景属性
- Rc4 例子1
- 强迫自己养成记录的习惯
- 数组
- XSwitch全屏滚动特效--兼容IE8和Chrome浏览器
- RPG游戏黑暗之光
- 16、Power Query-批量生成工资条的妙用
- 0105