Android——优化

  李
    <>

    内存优化:

(1) NDK JNI

(2)对于图片处理使用openGL纹理的;

2。位图优化:

在生成位图时根据位图的大小判断是否进行缩放,缩放代码:

BitmapFactory.Options  opts =, new  BitmapFactory.Options ();   时间=opts.inJustDecodeBounds 真实;   BitmapFactory.decodeFile(路径,选择)//获取宽高   int  width =, opts.outWidth;   int  height =, opts.outHeight;//重新获取位图对象前要将:   opts.inJustDecodeBounds =, false;

3。代码的优化:
(1)静态变量太多会引起内存泄露;

(2)使用应用程序上下文:如果想保持一个长期生命的对象时需要一个上下文对象,则调用getApplicationContext()使用应用程序上下文;

(3)及时关闭资源,例如:光标;

(4)使用位图后及时调用再循环()方法回收位图对象,

(5)对适配器优化,使用夹;

(6)代码的微优化:

,,,,尽量减少创建新对象,

,,,,将类,方法,变量的可见性设为最低;

,,,,针对字符串的拼接使用StringBuffer代替字符串;

,,,,不要在循环中申明临时变量,不要在循环中捕获异常;

,,,,如果对于线程安全没有要求,尽量使用线程不安全的集合对象,

,,,,使用集合对象如果事先知道其大小,则可以在构造方法中设置初始大小;

,,,,文件读取操作,需要使用缓存类及时关闭文件;

,,,,慎用异常,使用异常会导致性能降低;

,,,,如果程序频繁创建线程,则可以考虑使用线程池;

4。Android UI优化:

(1)尽量使用系统资源;

(2)使用系统的风格要在使用的资源面前在“?安卓”,而不是@android////

(3)查看系统资源:进入Android sdk平台\ \ android-8 \ data \ res;

(4)抽取相同的布局;

(5)精简UI层次:

,,,,合并标签的使用,所有活动的根节点都是FrameLayout,如果所创建布局是FrameLayout则使用合并标签作为根节点,其他布局则不可用;

,,,,使用合并标签的两个限制:

,,,,合并只能作为xml布局的根标签;

,,,,当增压泵以合并为开头的布局文件时,必须指定一个父ViewGroup并且必须设置attachToRoot为真;

(6)界面延迟加载技术:

,,,, ViewStub是一个隐藏的不占用内存文件的视图对象,可以运行时延时健在布局资源文件。当ViewSub被设置为可见或者调用膨胀()方法时才会真的区加载这个布局资源文件;

(7)事故的处理:应用超时无响应;

Thread.setDefaultUnCaughtExceptionHandler (Thread.unCaughtExceptionHandler)


Android——优化