Android应用性能优化笔记

Java代码优化

 缓存结果: 

如果计算代价过高,最好把过去的结果缓存起来。

伪代码如下:

result=cache.get(n);        //输入参数n作为键

if(result==null)

{

//如果在缓存中没有result值,就计算出来填进去

result=computeResult(n);

cache.put(n,result);   //n作为键,

}

return result;

你可能打算一个HashMap充当缓存,它可以胜任这项工作.不过,Android定义了SparseArray类,当键是整数时,它比HashMap效率更高。

因为HashMap 使用的是java.lang.Integer对象,而SparseArray使用的是基本类型int.因此使用HashMap会创建很多Integer对象,而使用

SparseArray则可以避免.

API

  if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB)

{

sparseArray.removeAt(1);  //API等级11及以上

}

else

{

int key=sparseArray.keyAt(1);  //默认实现慢一些

sparseArray.remove(key);

}

这类代码很常用,它既可以使用最适当的API来获取最好性能,也可以在旧的平台上(可能使用了较慢的API)正常运行.

数据结构:

如果你使用基于散列的数据结构(例如HashMap),而且键是自定义的对象,确保你正确覆盖了类定义中的equal和hashCode

方法。hashCode的低劣实现可以轻易将散列的收益化为乌有.

每当Android新版本的发布,都要特别注意android.util包和java.util包.(因为几乎所有的组件依赖这两个工具箱).

响应能力:

应用可以延迟创建对象,直到需要时才创建,称为推迟初始化的技术.

为Activity优化启动序列:

onCreate->onStart->onResume (这个序列发生在创建Activity时),当配置发生变化时,当前Activity被销毁,并创建一个新实例,会调用

以下序列:onPause->onStop->onDestory->onCreate->onStart->onResume

应用可以在mainfest文件里指定每个Activity元素的Android:configChanges属性,让它只接受自己想处理的配置变化。这会导致

调用Activity的onConfigurationChanged(),而不是销毁.

通常情况下,在应用启动时,既当onCreate()被调用时,启用StrictMode。

SQLite

使用+运算符来连接字符串不是最有效的方法,而使用StringBuilder对象,或调用String.format可以提高性能.

时间: 2024-11-04 09:03:21

Android应用性能优化笔记的相关文章

Android App性能优化笔记之一:性能优化是什么及为什么?

By Long Luo 周星驰的电影<功夫>里面借火云邪神之口说出了一句至理名言:“天下武功,唯快不破”. 在移动互联网时代,同样如此,留给一个公司的窗口往往只有很短的时间,如何把握住这个时机,迅速开发出产品,成为至关重要的一环.相对传统互联网时代的PC产品,用户对移动端产品的容忍度更低.而一款移动应用在推出的时候可能只是接近完成的状态,这就需要通过快速的迭代开发来更新产品,不断完善产品来留住用户.同时,通过更新产品也能唤醒一些沉默用户,让一些原本下载了应用但使用次数非常少的用户给该应用多一次

[Android ]UI 性能优化笔记

在 Android 开发过程中不免面临一个把应用做出来,再到把它做成牛逼的应用的过程,其中非常直观的一点就是应用 UI 的流畅度. 这里对一些性能相关的知识进行了小结~ 一.UI卡顿的原因 首先,我们评价UI的时候经常会遇到这几个说法: 1."这动画30帧都不到,卡成狗" 2."这帧率明显都到50多了怎么还是卡卡的感觉" 3."拖动的时候感觉在抖" 这里其实有两个问题: A1. 平均帧率不足 A2. 平均帧率上去了,但是掉帧 帧率不足很好理解,掉

【读书笔记】《Android应用性能优化最佳实践》

<第一行代码>读书笔记 一.引言 二.读书内容 书名:<Android应用性能优化最佳实践> 作者:罗彧成 (腾讯音乐Android开发总监) 出版社:机械工业出版社 封面: 三.书籍评价 四.个人心得 五.参考文档

【腾讯Bugly移动开发者沙龙回顾】腾讯专家精彩分享:Android应用性能优化实践

5月31日,由腾讯的无线研发部主办的腾讯Bugly移动开发者沙龙第一期在北京市中关村创业街的车库咖啡拉开序幕. 腾讯移动开发者沙龙是腾讯为广大移动开发者搭建的分享平台,邀请行业内的开发大咖与大家进行面对面的交流,以实例和模型全面系统地介绍先进开发技术的运用,优质资源与工具的使用等热点话题. 主持人进行开场与活动介绍 本期沙龙的主题为"移动应用性能优化笔记",邀请了腾讯移动性能评测专家叶方正与腾讯移动应用开发技术负责人张旭与为大家带来了精彩的分享. 点击这里查看完整沙龙视频 首先叶方正同

Android App性能优化(一)之布局优化

当创建复杂布局的时候,我们会在xml 文件中添加大量的ViewGroup和View.伴随着每次迭代,View树的层次越来越深,界面加载速度越来越慢,消耗的内存也越来越多.当您的程序出现加载时短暂黑屏或横竖切换时短暂黑屏,抑或如内存溢出(OOM)之类的问题时,没准您的程序需要优化了. 那么如何让程序运行速度更快?响应更敏捷?优化布局是一个最基本的方法,本文将介绍最基本的优化布局方法. 1.使用ViewStub实现View的延迟加载. 很多情况下,xml布局文件中的部分View初始状态是设置为不显示

Android内存性能优化(内部资料总结)

刚入门的童鞋肯能都会有一个疑问,Java不是有虚拟机了么,内存会自动化管理,我们就不必要手动的释放资源了,反正系统会给我们完成.其实Java中没有指针的概念,但是指针的使用方式依然存在,一味的依赖系统的gc,很容易就造成了内存的浪费.   Java基于垃圾回收的内存机制 Java的内存管理机制会自动回收无用对象所占用的内存,减轻手工管理内存的负担 1.C/C++: 从申请.使用.释放都需要手工管理 2.Java:无用的对象的内存会被自动回收 什么样的对象是无用的对象 1.Java通过引用来操作一

Android开发性能优化总结(一)

安卓开发应用首先要讲究良好的用户体验,如果一款软件卡顿现象严重,不流畅,经常崩溃,那么将给用户带来极不良好的体验,从而损失用户. 在实际开发和学习中,我总结了一下关于安卓性能的优化,供大家参考交流. 应用程序的性能问题体现在很多方面, 比如第一次启动速度慢,或者进入某一界面速度慢:动画执行过程不流畅,或者动画执行卡顿时间长:ListView列表滑动过程中卡顿,不流畅:应用程序自定义的某特定界面执行速度慢:响应某一用户事件时长时间无响应(ANR):操作数据库时,执行大量数据的增删改查操作,执行速度

Android客户端性能优化(魅族资深工程师毫无保留奉献)

本文由魅族科技有限公司资深Android开发工程师degao(嵌入式企鹅圈原创团队成员)撰写,是degao在嵌入式企鹅圈发表的第一篇原创文章,毫无保留地总结分享其在领导魅族多个项目开发中的Android客户端性能优化经验,极具实践价值! 即日起,嵌入式企鹅圈将在之前五个专栏(Linux内核驱动情景分析.资源紧缺型SOC嵌入式架构设计.嵌入式交叉工具链及其应用.嵌入式设计和编程.微信硬件平台和物联网解决方案)新增Android开发专栏!更多Android.Linux.嵌入式和物联网原创技术分享敬请

android App性能优化技巧浅谈

Android App性能优化,安卓App性能优化技巧,无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的.那么,如何能开发出更高性能的Android App?相信是软件开发公司以及广大程序员们头疼的一大难题.今天,就给大家提供几个提高Android App性能的技巧. 高效地利用线程1.在后台取消一些线程中的动作 我们知道App运行过程中所有的操作都默认在主线程(UI线程)中进行的,这样App的响应速度就会受