⑴ 针对android的性能优化集中哪些方面
一、概要:
本文主要以Android的渲染机制、UI优化、多线程的处理、缓存处理、电量优化以及代码规范等几方面来简述Android的性能优化
二、渲染机制的优化:
大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。
Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染, 如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成。
*关于JobScheler的更多知识可以参考http://hukai.me/android-training-course-in-chinese/background-jobs/scheling/index.html
七、代码规范
1)for loop中不要声明临时变量,不到万不得已不要在里面写try catch。
2)明白垃圾回收机制,避免频繁GC,内存泄漏,OOM(有机会专门说)
3)合理使用数据类型,StringBuilder代替String,少用枚举enum,少用父类声明(List,Map)
4)如果你有频繁的new线程,那最好通过线程池去execute它们,减少线程创建开销。
5)你要知道单例的好处,并正确的使用它。
6)多用常量,少用显式的"action_key",并维护一个常量类,别重复声明这些常量。
7)如果可以,至少要弄懂设计模式中的策略模式,组合模式,装饰模式,工厂模式,观察者模式,这些能帮助你合理的解耦,即使需求频繁变更,你也不用害怕牵一发而动全身。需求变更不可怕,可怕的是没有在写代码之前做合理的设计。
8)View中设置缓存属性.setDrawingCache为true.
9)cursor的使用。不过要注意管理好cursor,不要每次打开关闭cursor.因为打开关闭Cursor非常耗时。Cursor.require用于刷cursor.
10)采用SurfaceView在子线程刷新UI,避免手势的处理和绘制在同一UI线程(普通View都这样做)
11)采用JNI,将耗时间的处理放到c/c++层来处理
12)有些能用文件操作的,尽量采用文件操作,文件操作的速度比数据库的操作要快10倍左右
13)懒加载和缓存机制。访问网络的耗时操作启动一个新线程来做,而不要再UI线程来做
14)如果方法用不到成员变量,可以把方法申明为static,性能会提高到15%到20%
15)避免使用getter/setter存取field,可以把field申明为public,直接访问
16)私有内部类要访问外部类的field或方法时,其成员变量不要用private,因为在编译时会生成setter/getter,影响性能。可以把外部类的field或方法声明为包访问权限
17)合理利用浮点数,浮点数比整型慢两倍
18)针对ListView的性能优化,ListView的背景色与cacheColorHint设置相同颜色,可以提高滑动时的渲染性能。ListView中getView是性能是关键,这里要尽可能的优化。
getView方法中要重用view;getView方法中不能做复杂的逻辑计算,特别是数据库操作,否则会严重影响滑动时的性能
19)不用new关键词创建类的实例,用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。
clone()方法不会调用任何类构造函数。在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单。例如,下面是Factory模式的一个典型实现:
20)public static Credit getNewCredit() {
return new Credit();
}
改进后的代码使用clone()方法,如下所示:
private static Credit BaseCredit = new Credit();
public static Credit getNewCredit() {
return (Credit) BaseCredit.clone();
}
上面的思路对于数组处理同样很有用。
21)乘法和除法
考虑下面的代码:
for (val = 0; val < 100000; val +=5) { alterX = val * 8; myResult = val * 2; }
用移位操作替代乘法操作可以极大地提高性能。下面是修改后的代码:
for (val = 0; val < 100000; val += 5) { alterX = val << 3; myResult = val << 1; }
22)ViewPager同时缓存page数最好为最小值3,如果过多,那么第一次显示时,ViewPager所初始化的pager就会很多,这样pager累积渲染耗时就会增多,看起来就卡。
23)每个pager应该只在显示时才加载网络或数据库(UserVisibleHint=true),最好不要预加载数据,以免造成浪费
24)提高下载速度:要控制好同时下载的最大任务数,同时给InputStream再包一层缓冲流会更快(如BufferedInputStream)
25)提供加载速度:让服务端提供不同分辨率的图片才是最好的解决方案。还有合理使用内存缓存,使用开源的框架
引用:Android性能优化的浅谈
⑵ 安卓手机反应慢怎么办最简单的方法
如果您使用的是华为手机,手机升级系统后短时间内出现卡顿,属于正常现象,如果并非刚升级完出现,请按照以下方案排查:
温馨提醒:升级系统后卡顿原因:由于系统升级后刚开始使用时,系统会对手机中的应用程序进行优化,此时手机负载较高,使用时可能会出现卡顿情况。建议升级完成后将手机灭屏充电2小时以上,然后重启手机以保证手机内已安装的应用优化完成。
1. 检查手机是否正在下载、复制、传输等操作
如果手机正在执行上传下载(文件、图片、视频、应用等)、复制(文件管理拷贝数据等)、传输(手机克隆、Huawei Share等)等操作时感觉到卡顿,建议您等待任务结束或停止此操作。
提示:您可以下拉状态栏查看上传、下载、传输文件的进度。
2. 重启手机
请您重启手机后尝试。建议您2~3天重启一次手机,重启能有效的清理缓存,缓解卡顿现象。
3. 检查手机是否发热或者充电时使用
手机特有的过热保护功能会适当降低系统性能。建议您尽量避免充电时使用手机,适当降低屏幕亮度,关闭不使用或异常耗电应用与功能,如“蓝牙”,NFC等。
4. 检查存储卡
(1)可能是存储卡存储的文件过多(建议预留10%以上空间),导致读写速度慢,建议您清理存储卡空间,或备份重要数据(QQ、微信等第三方应用需单独备份)后格式化存储卡。
(2)可能是存储卡硬件异常,是否曾提示“存储卡异常”,若是,建议您尽快更换存储卡。
(3)若手机的默认存储位置为存储卡,建议您将默认存储位置更改为“内部存储”后尝试。
5. 关闭省电模式、保持电量充足
如果您开启了省电模式,建议您关闭(设置 > 电池 > 省电模式和 超级省电),并保持电量充足(20%以上)。省电模式和低电量情况下,手机会降低性能以节省电量。
6. 清理存储空间
手机运行内存和存储空间不足时会导致应用卡顿,建议您进入手机管家进行清理:
(1)进入手机管家点击一键优化/立即优化,优化完毕后,手机管家会显示优化结果以及设置建议。根据提示,完成相应的设置。
(2)进入手机管家点击清理加速,待扫描完毕后,点击清理项后的立即清理,根据提示删除多余的文件,并卸载不常用的应用,保持存储空间充足(建议预留20%以上)。
7. 升级系统版本
(1)如果手机已经 Root,请恢复成官方稳定版本使用,详情请致电华为客服咨询。
(2)建议您及时进行手机系统更新,并将应用升级到最新版本。新版本会对系统性能进行优化提升。更新方法:进入手机设置,搜索进入软件更新,点击检查更新。
提示:恢复版本和升级系统版本会造成数据丢失,请您提前备份好数据(QQ、微信等第三方应用需单独备份)。
8.卸载第三方手机管家类软件
如果您的手机装有第三方手机管理类型的软件,请卸载此类应用后尝试。通常此类软件与手机自带的手机管家存在冲突,会导致运行卡顿。
9. 恢复出厂设置
请您备份重要数据(QQ、微信等第三方应用需单独备份),将手机恢复出厂设置后重试。
如果问题仍然存在,请您备份好数据后(QQ、微信等第三方应用需单独备份)携带购机凭证前往华为客户服务中心进行检测处理。
温馨提醒:您可以选择夜间充电(或灭屏充电40min以上),可以一定程度上整理手机内存碎片,缓解卡顿现象。
相关链接如下:寄修服务华为客户服务中心预约服务维修备件价格查询
⑶ 安卓手机性能差怎么办 优化方法都有哪些
安卓手机优化可以借助一些优化软件来对手机进行优化,可以通过腾讯手机管家上面的手机优化功能来对手机进行优化,进入主页面,点击一键优化,就可以关闭后台运行程序,清理手机内存,和检测开机自启软件等,优化手机的额性能。
⑷ 安卓手机怎样优化最好
建议您:
1.删除不必要的数据及应用程序:智能管理器(内存管理器)-储存空间/内存。
2.关闭不需要的应用程序:点击屏幕左下角近期任务键-点击要关闭的应用程序右上角的“X”/下方的关闭全部。
3.若手机支持存储卡,将多媒体文件移动到扩展卡或将拍摄存储路径设置为扩展卡。若未有存储卡,建议定期将多媒体文件移动到电脑中。
4.卸载不经常使用的软件或文件。
若上述方式操作后,手机内存依然不足,建议备份手机中的数据(联系人、信息、照片等),恢复出厂设置尝试。
⑸ 安卓手机卡顿反应慢怎么解决
如果您使用的是华为手机,升级系统后短时间内出现卡顿,属于正常现象,如果并非刚升级完出现,请按照以下方案排查:
1. 检查手机是否正在下载、复制、传输等操作
如果手机正在执行上传下载(文件、图片、视频、应用等)、复制(文件管理拷贝数据等)、传输(“手机克隆”、Huawei Share等)等操作时感觉到卡顿,建议您等待任务结束或停止此操作。
提示:您可以下拉状态栏查看上传、下载、传输文件的进度。
2. 重启手机
请您重启手机后尝试。建议您2~3天重启一次手机,重启能有效的清理缓存,缓解卡顿现象。
3. 检查手机是否发热或者充电时使用
手机发热严重时性能下降出现卡顿。建议您尽量避免充电时使用手机,适当降低屏幕亮度,关闭不使用或异常耗电应用与功能,如“蓝牙”,NFC等。
4. 检查存储卡
(1)可能是存储卡存储的文件过多(建议预留10%以上空间),导致读写速度慢,建议您清理存储卡空间,或备份重要数据后(微信/QQ等应用需单独备份)格式化存储卡。
(2)可能是存储卡硬件异常,是否曾提示“存储卡异常”,若是,建议您尽快更换存储卡。
(3)若手机的默认存储位置为存储卡,建议您将默认存储位置更改为“内部存储”后尝试。
5. 关闭省电模式、保持电量充足
如果您开启了省电模式,建议您关闭(设置 > 电池 > 省电模式和 超级省电),并保持电量充足(20%以上)。省电模式和低电量情况下,手机会降低性能以节省电量。
6. 清理存储空间
手机运行内存和存储空间不足时会导致应用卡顿,建议您进入手机管家进行清理:
(1)进入手机管家点击一键优化/立即优化,优化完毕后,手机管家会显示优化结果以及设置建议。根据提示,完成相应的设置。
(2)进入手机管家点击清理加速,待扫描完毕后,点击清理项后的立即清理,根据提示删除多余的文件,并卸载不常用的应用,保持存储空间充足(建议预留20%以上)。
7. 卸载第三方手机管家类软件
如果您的手机装有第三方手机管理类型的软件,请卸载此类应用后尝试。通常此类软件与手机自带的手机管家存在冲突,会导致运行卡顿。
8. 升级系统版本
(1)如果手机已经 Root,请恢复成官方稳定版本使用,详情请致电华为客服咨询。
(2)建议您及时进行手机系统更新,并将应用升级到最新版本。新版本会对系统性能进行优化提升。
提示:恢复版本和升级系统版本会造成数据丢失,请您提前备份好数据(微信/QQ等应用需单独备份)。
9. 恢复出厂设置
请您备份重要数据(微信/QQ等应用需单独备份),将手机恢复出厂设置后重试。
温馨提醒:您可以选择夜间充电(或灭屏充电40min以上),可以一定程度上整理手机内存碎片,缓解卡顿现象。
如果问题仍然存在,请您备份好数据后(微信/QQ等应用需单独备份)携带购机凭证前往华为客户服务中心进行检测处理。
⑹ 如何优化自己的安卓手机,提高流畅度
你可以试试腾讯手机管家,它有专门的一键优化功能,按一下就给你的手机清理垃圾。不过你放心它只会清理你系统中不必要的数据释放空间,不会删除你的重要信息。还有记得平时用过手机都用腾讯手机管家关闭一下后台程序,这样也可以很有效的给你的手机加速。