函数执行时间较长
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和普通的一样 故此支持截屏旋转等动作 需要硬件加速