内存优化:
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的临江网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!(1) NDK 和 JNI
(2)对于图片处理使用openGL的texture;
2.bitmap优化:
在生成bitmap时根据bitmap的大小判断是否进行缩放,缩放代码:
BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inJustDecodeBounds = true; BitmapFactory.decodeFile(path,opts) //获取宽高 int width = opts.outWidth; int height = opts.outHeight; //重新获取bitmap对象前要将: opts.inJustDecodeBounds = false;
3.代码的优化:
(1)静态变量太多会引起内存泄露;
(2)使用Application context:如果想保持一个长期生命的对象时需要一个context对象,则调用getApplicationContext()使用Application context;
(3)及时关闭资源,eg:cursor;
(4)使用Bitmap后及时调用recyle()方法回收bitmap对象;
(5)对Adapter优化,使用Holder;
(6)代码的微优化:
尽量减少创建新对象;
将类、方法、变量的可见性设为最低;
针对字符串的拼接使用StringBuffer代替String;
不要在循环中申明临时变量,不要在循环中捕获异常;
如果对于线程安全没有要求,尽量使用线程不安全的集合对象;
使用集合对象如果事先知道其大小,则可以在构造方法中设置初始大小;
文件读取操作,需要使用缓存类及时关闭文件;
慎用异常,使用异常会导致性能降低;
如果程序频繁创建线程,则可以考虑使用线程池;
4.Android UI优化:
(1)尽量使用系统资源;
(2)使用系统的Style要在使用的资源面前在“?android”,而不是@android////
(3)查看系统资源:进入android-sdk\platforms\android-8\data\res;
(4)抽取相同的布局;
(5)精简UI层次:
merge标签的使用,所有Activity的根节点都是FrameLayout,如果所创建Layout是FrameLayout则使用merge标签作为根节点,其他布局则不可用;
使用merge标签的两个限制:
merge只能作为xml布局的根标签;
当inflater以merge为开头的布局文件时,必须指定一个父ViewGroup并且必须设置attachToRoot为true;
(6)界面延迟加载技术:
ViewStub是一个隐藏的不占用内存文件的视图对象,可以运行时延时健在布局资源文件。当ViewSub被设置为可见或者调用inflate()方法时才会真的区加载这个布局资源文件;
(7)crash的处理:应用超时无响应;
Thread.setDefaultUnCaughtExceptionHandler(Thread.unCaughtExceptionHandler)
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。