android优化

1. 绘制优化

卡顿原因:16ms需要绘制一帧,如果主线程操作过多,会导致vsync到来时数据没有准备号,导致丢帧,应用卡顿。

overdraw : 不设置不必要的背景, cliprect绘制可见部分

减少层级,使用merge/include/stub

不要主线程做耗时操作

内存使用不当,频繁gc,影响主线程执行

工具: HirearchyView、Systrace、TraceView、GPU profile

2. 内存优化

android gc:gc类型,gc算法、堆分配。

使用合理的数据结构,例如SparseArrary系列(key为整型),arraymap代替hashmap

少使用枚举

频繁分配的可以创建线程池,要避免内存泄漏

不要在ondraw做分配对象

对bitmap的使用,注意使用insamplesize,inbitmap,rgb格式。

注意图片资源放置的位置。

使用完的ui资源图片设置为null。

3. 内存泄漏

原因:资源未释放(cursor, file, 广播),listenter未解注册,静态变量,内部类,handler,长时间运行的后台线程。

解决:heap dumper,mat. 关注大对象,activity,fragment。使用select语句,使用两次内存对比图等。

你可能感兴趣的:(android优化)