遵循一条规则:布局层次尽量少(RelativeLayout来代替LinearLayout、减小必要的节点、合理的使用<merge>标签) html
使用Lint分析布局java
HierarchyViewerandroid
使用ViewStub延迟加载视图(优化那些不是必需要当即在UI上显示的控件)算法
参考: 数据库
http://rayleeya.iteye.com/blog/1961005 设计模式
缓存(图片缓存、数据库缓存、对象数据缓存等)缓存
数据类型选取、对象设计(继承、组合)、设计模式等网络
算法(必要时候可用空间换时间)布局
逻辑优化
提早或延迟操做
网络优化
参考:
http://developer.android.com/training/articles/perf-tips.html (java)
http://rayleeya.iteye.com/blog/1961005 (java)
http://www.trinea.cn/android/java-android-performance/ (java)
http://blog.csdn.net/innost/article/details/9008691 (Traceview)
索引(当某字段数据更新频率较低,查询频率较高,常常有范围查询(>, <, =, >=, <=)或order by、group by发生时建议使用索引; 常常同时存取多列,且每列都含有重复值可考虑创建复合索引)
批量插入、更新使用原子操做
查询时返回更少的结果集及更少的字段。
少用cursor.getColumnIndex(能够在建表的时候用static变量记住某列的index,直接调用相应index而不是每次查询。)