
Android性能优化
BinCds
没有永恒技能,只有更新的技术版本。
展开
-
android MultiDex配置突破64K方法数限制
1.Android开发过程中,随着应用不断增加新功能,引入新库,apk会越来越大,到达一定规模后就可能遇到方法数65536超限问题,这方法数包括Android framework方法、library的方法、自己写的方法。Android平台的Java虚拟机Dalvik执行Dex程序时,使用的是short类型来索引DEX文件中的方法。这就意味着单个Dex文件可被引用的方法总数被限制为64x1024,原创 2017-11-07 15:28:21 · 344 阅读 · 0 评论 -
Android性能优化分类简析
Android软件性能优化主要有由上而下和由下而上两种优化方法。资源类的性能优化,其实是一种由下而上的性能优化方法,只要资源使用合理,资源类性能肯定会有优化效果,这种方法适合于做性能优化,提出来的bug通常比较简单易改;同时,对于响应时延总有较大的波动,会掩盖问题。而换一个角度看,资源消耗更稳定波动小,问题更易于复现。而从交互类性能出发,则可以理解为是由上而下的性能优化方法,主要用于修复那...原创 2018-12-01 17:26:58 · 207 阅读 · 0 评论 -
常用的Android几种性能分析工具
针对Android性能优化,解决界面卡顿,常用的几种性能分析工具主要有一下几种PerfBox。能够发现FPS、Activity的打开速度。Systrace。能够发现和初步定位分析绘制时流程导致的卡顿,能大约定位是GC、I/O、贴图太大,还是没用ViewHolder的问题。TraceView。能力范围是能够发现和定位。...原创 2018-12-03 15:56:00 · 909 阅读 · 0 评论 -
Android响应时延分析
Intel的研究表明,时延小于500ms是用户可以接受的最低标准,黑屏的用户体验是最差的。所以解决响应时延是很有必要的。黑屏产生的场景一般有一下几种:当应用启动时间超过5s,几乎可以必现产生黑屏或者白屏。启动新进程,未做优化,有可能会发生黑屏(如当应用前台切换后台,主进程被杀,这时再从后台切前台,会出现黑屏)。我们有这样一个疑问,在什么场景下,主进程会被杀?除了我们手动杀进程外...原创 2018-12-03 16:57:15 · 1559 阅读 · 0 评论 -
Android性能分析主要方向
Android性能分析主要方向Android性能分析优化主要从资源类性能、交互性能两个方面。一、资源类。从内存、CPU、磁盘、网络、电量、GPU方面分析。二、交互类。从流畅度和响应时延方面分析。性能优化主要有由上而下和由下而上两种优化方法。资源类性能,其实是一种由下而上的性能优化方法,只要资源使用合理,资源类性能肯定会有优化效果,这种方法适合做性能优化,提出来的Bug通常比较简单易改。...原创 2018-12-13 19:34:10 · 249 阅读 · 0 评论 -
最容易被忽略的性能洼地-磁盘
最容易被忽略的性能洼地-磁盘数据库随机读/写是相对顺序读/写而言的,在读取或者写入的时候会随机产生offset。随机读写例子,如果向设置了autoincrement的数据库表中插入多条数据,那么每插入一条数据,都需要操作两张数据库表,这就意味着存在随机写。随机写相对于顺序写除了会产生大量的时效页面外,更重要的是增加了触发“写入放大”效应的概率。简单的例子,比如现在写入一个4kb的数据...原创 2018-12-13 19:36:06 · 204 阅读 · 0 评论 -
Android sdk插桩集成到第三方app
在实际应用中,如需要把自己的APM或者sdk等代码集成加入第三方应用,来测试对比竞品调研。对于大批量地修改Smali语法,原创 2018-12-15 17:34:57 · 1180 阅读 · 0 评论 -
性能优化的终极目标-内存简析
性能优化的终极目标-内存简析通常来说为了避免磁盘I/O问题,都会用内存缓存起来,结果什么都用内存缓存起来,App的常驻内存就会很大,若内存处理不当机会变成内存问题,甚至最后成为OOM的导火索。Out of Memory,OOM是常见的内存溢出问题。通常会在decode图片的时候触发,但不一定是decode图片的问题,因为也许它只是压垮骆驼的稍微大一点的稻草。在虚拟机的Heap内存使用超过堆...原创 2018-12-22 18:26:52 · 904 阅读 · 0 评论 -
Android内存检测工具系列工具集
Android内存检测工具系列工具集Android关于内存的工具不少,灵活地选择工具就显得特别重要。在此特别推荐分享涵盖一定初步和定位能力的工具,可以让我们一步到位地分析问题,提升效率。在此列举几项:工具问题能力top/procrank内存占用过大,内存泄露发现STRICTMODEactivity泄露发现meminfoNative内存泄露、是否...原创 2018-12-24 21:02:49 · 2587 阅读 · 0 评论 -
电池耗电的专项准则-实际开发注意事项
根据电池耗电软件app应该减少耗电的操作,应遵循以下几个原则:一、尽量让CPU休眠锁屏、灭屏、程序放置后台时,释放或停止android涉及耗电服务。如包括GPS、WifiManager、Sensor等锁屏、灭屏释放WakeLock。必须释放WakeLock,无论是间接还是直接的,否则会让CPU无法休眠,导致严重的耗电问题。使用缓存和批量预处理来提升算法效率。例如一下场景:1、当需要...原创 2018-12-01 17:02:35 · 323 阅读 · 0 评论 -
CPU对于耗电的简析
Android手机包含AP和BP两个CPU。AP即Application Processor,所有的用户界面以及App都是运行在AP上的。BP级Baseband Processor,手机射频都是运行在这个CPU上的。而一般我们说的耗电,PowerProfile里面的CPU其实是AP。CPU耗电无非两种情况,一种是长期频繁唤醒,原本可以仅仅在BP上运行,消耗5mA左右,但是因为唤醒,CPU(A...原创 2018-12-01 15:43:03 · 3876 阅读 · 0 评论 -
android jar转dex
1.android 编译生成的.jar文件是已经编译的.class字节码文件,.dex是android平台可执行文件类型,一般java文件打包成jar包后里面的jar资源是.class,如果需要运行于android,那必须jar里面资源为.dex。2..class字节码的jar文件转.dex文件,在Android sdk 中有自带的dx.bat文件可以直接编译转换,dx.bat所在目录在各自的编译版原创 2017-11-09 15:30:34 · 4785 阅读 · 0 评论 -
android获取当前设备运行app的进程
1.当前设备进程分类进程优先级从高到低可分为四种:前台进程、可视进程、服务进程、缓存进程。前台进程(foreground process):用户当前正在进行可操作的,一般满足以下条件:(1).屏幕顶层运行Activity(处于onResume()状态),用户正与之交互。(2).有BroadcastReceiver正在执行代码。(3).有Service在其回调方法(onC原创 2017-11-13 23:49:35 · 4390 阅读 · 0 评论 -
Android性能分析_网络
#Android性能优化中不可控因素资源性能中,磁盘、内存、CPU都市本地资源,除此之外还有一个外部资源-网络。对于互联网来说,它有更加丰富的内容,也有更多令人困扰的事情。而优化网络性能主要从三个方面入手:业务成功率、业务网络延迟、业务网络宽带成本。#1. 业务成功率弱信号网络和拥塞网络,处理不当都会直接影响业务的成功率,比如在发消息时刚好进入电梯或者在演唱会里分享照片等都有可能发送失败...原创 2018-11-27 19:12:32 · 338 阅读 · 0 评论 -
数据缓存使用中的坑
#数据缓存使用中的坑-WebView当我们用浏览器上网时,浏览器会把网页的信息保存起来,以便在下次再浏览该网页时可以得到迅速的相应,并且节省网络资源。咋移动端节省网络资源使用缓存显得尤为重要,可以快速响应和节省流量。很多应用中使用WebView页面,Android也为WebView提供了完善的缓存策略,缓存的资源在/data/data/应用package下生成database与cache两...原创 2018-11-27 19:14:47 · 612 阅读 · 0 评论 -
CPU速度与负载的博弈
CPU:速度与负载的博弈在性能的问题中,,一般会提到两种问题:一种是I/O密集型问题,另一种是CPU密集型问题的问题。这里分析CPU性能问题。CPU问题无非分为三类:CPU资源冗余使用关于这个问题,可以是算法问题,有时明明可以遍历一次的却遍历两次,主要出现在查找、排序、删除等环节;也可以是没有cache,明明解码过一次的图片还重复解码。还有明明使用int就足够,偏偏要用long,导致C...原创 2018-11-27 19:16:21 · 216 阅读 · 0 评论 -
CPU专项标准-实际开发中的应用
#CPU专项标准-实际开发中的应用###一、核心场景CPU算法最优eg:1.建议能用int 的不要用float。比较两个float数值大小的执行时间是int的4倍左右。这个因为CPU的运算架构所致。2.选择合适的容器。一般的容器:Vector、HashMap、LinkedHashMap等;Android提供在内存稀缺的性能场景使用容器:ArrayList、SparseArray...原创 2018-11-27 19:16:59 · 157 阅读 · 0 评论 -
监测和评定为分析CPU性能工具
#监测和评定为分析CPU性能工具1.TOP软件TOP软件大家应该是熟悉的,依靠adb shell top 就可以简单的列出进程的各种信息。缺点就是TOP本身的性能消耗就不小。eg:1.排除0%的进程信息:adb shell top | grep -v ‘0% S’。2.只打印1次按CPU排序的TOP 10 进程信息:adb shell top -m 10 -s cpu -n 1。...原创 2018-11-27 19:18:08 · 302 阅读 · 0 评论 -
应用电池耗电简析
应用电池耗电简析程序耗电问题的讨论,其实讨论的是它的结果而不是原因,因为应用程序不会直接消耗电池中的电能,而是通过使用的硬件模块消耗相应的电能,也就是资源类性能(加上屏幕、GPU等)的总和。每台手机都有一个power_profile.xml文件。PowerProfile在手机厂家出ROM的时候,Android官方建议通过PowerMonitor之类的工具来测试每个硬件模块的耗电情况,并配置...原创 2018-11-30 18:45:40 · 641 阅读 · 0 评论 -
性能优化内存,在实际开发中专项原则
性能优化内存,在实际开发中专项原则性能优化内存专项,在实际应用中需要遵循的原则:遵循原则标准规则起源避免内存泄露避免activity泄露大部分严重的内存泄露都是activity泄露,因为这意味着被引用的View、图片等全部泄露减少常驻内存尽量使用RGB565手机QQ使用RGB565将节省部分...原创 2018-12-25 23:45:15 · 219 阅读 · 0 评论