1、View优化
(1)、减少使用view,或者嵌套view:比较尽可以的使用相对布局,而不是用线性比较嵌套;
(2)通过Layoutopt优化布局
通过Android sdk中tools目录下的layoutopt 命令查看你的布局是否需要优化。

2、多线程解决赋值操作:
占用CPU较多的数据操作尽可能放在一个单独的线程中进行,通过handler等方式把执行的结果交于UI线程显示。
特别是针对的网络访问,数据库查询,和复杂的算法。
===》目前Android提供了AsyncTask,Hanlder、Message和Thread的组合。

分析:
对于多线程的处理,如果并发的线程很多,同时有频繁的创建和释放,可以通过concurrent类的线程池解决线程创建的效率瓶颈。

另外值得注意的是,应用开发中自定义View的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新。

3、布局用Java完成比XML快

4、 对大型图片进行缩放
问题:
用BitmapFactory解码一张图片时,有时也会遇到该错误。这往往是由于图片过大造成的。

解决:
这时我们需要分配更少的内存空间来存储。BitmapFactory.Options.inSampleSize设置恰当的inSampleSize可以使BitmapFactory分配更少的空间以消除该错误。

设置:

BitmapFactory.Options opts = new BitmapFactory.Options();
 opts.inSampleSize = 4 ;// 4就代表容量变为以前容量的1/4
 Bitmap bitmap = BitmapFactory.decodeFile(imageFile, opts);

关闭回收资源:
bitmap.recycle();
bitmap = null;

5、合理使用ViewStub
ViewStub 是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局资源文件。
当ViewStub可见,或者调用 inflate()函数时,才会加载这个布局资源文件。
该ViewStub在加载视图时在父容器中替换它本身

6、针对ListView的性能优化
异步加载图片、快速滑动不显示图片、item中尽可能减少使用的控件、

7、适配器中的getview的优化:
getView方法中要重用view;
特别是数据库和网络访问操作,
否则会严重影响滑动时的性能。

代码:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
       Log.d("Adapter", "Position:" + position + " : " + String.valueOf(System.currentTimeMillis()));
       ViewHolder holder;
       if (convertView == null) {
              final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              convertView = inflater.inflate(R.layout.list_item_icon_text, null);
              holder = new ViewHolder();
             holder.icon = (ImageView) convertView.findViewById(R.id.icon);
             holder.text = (TextView) convertView.findViewById(R.id.text);
             convertView.setTag(holder);
       } else {
             holder = (ViewHolder) convertView.getTag();
       }
              holder.icon.setImageResource(R.drawable.icon);
              holder.text.setText(mData[position]);
              return convertView;
       }

       static class ViewHolder {
               ImageView icon;
               TextView text;
       }
}

8、资源:
分辨率适配、使用dp、多用wrap_content、fill_parent、抛弃absolute布局、使用png格式、采用 优化布局层数;采用来共享布局/将Acitivity中的Window的背景图设置为空。getWindow().setBackgroundDrawable(null);android的默认背景是不是为空/View中设置缓存属性.setDrawingCache为true