Android 应用进行性能优化

函数执行时间较长
ui布局嵌套过多,可以通过自定义view来加快,使用相对布局代替线性布局

导致内存泄漏的几点问题:
1.静态集合引用的对象无法被回收
2.监听未关闭
3.数据库、io、socket不关
4.单例
5.java内部类、匿名内部类子线程未执行完
故此请使用静态内部类和弱引用

oom:OutOfMemoryException
1.使用arraymap、SparseArray代替hashmap
2.不在代码中使用枚举
3.减少bitmap的使用,使用时可以进行三级缓存、大图片可以进局部分段加载、缩放

4.列表布局的复用
5.不在ondraw里new对象
6.stringbuild代替+
7.bitmap更换解码方式

安卓在application或者第一个activty里加载继承了thread.uncaughexceptionhander可以捕获全局异常

ANR->Application Not Responding
activity5秒broadcastreceiver秒service1020秒intentservice120秒

安卓线程中有几种通信方式:
内存共享变量,管道,handle机制runOnUiThread(Runnable) view.post(Runnable)

linux进程 dalvik进程
framework app
activitymanage.getmomeryclass获取内存大小

framework提供了wms windowmanagerservice ams activitymanageservice bind机制
app在attach时framework给其提供一个window的子类phonewindow
oncreate中的setcontentview会创建decorview
decorview的addview方法将layou中布局显示出来

进程间用广播、linux共享内存、bind机制(ipc》aidl)
aidl用bing机制模式来工作,Android interfach definition ;language

视图动画 animation 、属性动画、 帧动画
overridePendingTransition可以修改安卓转场动画

surfaceview会有一个单独的线程做ui的更新 支持opengl
textureview和普通的一样 故此支持截屏旋转等动作 需要硬件加速

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章