android ---- performance
文章平均质量分 92
性能相关信息
私房菜
独乐乐不如众乐乐!!!!
展开
-
Android 中 app freezer 原理详解(二):S 版本
在之前的两篇博文《Android 中app内存回收优化(一)》和《Android 中app内存回收优化(二)》中详细剖析了 Android 中 app 内存优化的流程。这个机制的管理通过 CachedAppOptimizer 类管理,为什么叫这个名字,而不叫 AppCompact 等?freezer,一个针对应用进程长期处于 Cached 状态的优化。在之前博文《app freezer 原理 R 版本》原创 2023-07-28 17:44:01 · 2065 阅读 · 1 评论 -
Android 中 cgroup抽象层详解
在之前的博文《Android中app freezer原理》一文中,我们看到冻结器的enable、freeze、unfreeze 都是通过 cgroup 的机制进行处理。本文将介绍下 Android 中 cgroup 的抽象层基本信息和使用方式。) 是 Linux 内核提供的一种可以限制单个进程或者多个进程所使用资源的机制,可以对 CPU、memory 等资源实现精细化的控制。目前越来越活的轻量级容器 Docker 就使用了 cgroups 提供的资源限制能力来完成 CPU、memory 等部门的资源控制。原创 2023-07-21 18:06:48 · 2437 阅读 · 0 评论 -
Android 中 app freezer 原理详解(一):R 版本
在之前的两篇博文《Android 中app内存回收优化(一)》和《Android 中app内存回收优化(二)》中详细剖析了 Android 中 app 内存优化的流程。这个机制的管理通过类管理,为什么叫这个名字,而不叫 AppCompact 等?freezer,一个针对应用进程长期处于 Cached 状态的优化。本文将继续分析 CachedAppOptimizer 类另一个功能 freezer。1. Freezer 简介。原创 2023-07-21 16:08:07 · 3187 阅读 · 0 评论 -
Android 中app内存回收优化(二):S 版本
Android Q 中新增了framework 端app 内存回收优化方案。当app 的 oom adj 发生特定变化时,framework 端会对应用的内存进行处理。随着版本的演变,这部分优化工作也一直在完善,笔者将针对Android R和Android S对该部分的优化流程分别进行详细地剖析。在上一文中,针对Android R版本进行了详细的剖析,本文继续剖析 Android S 版本。原创 2023-07-17 17:29:22 · 2576 阅读 · 7 评论 -
Android 中app内存回收优化(一):R版本
Android Q 中新增了framework 端app 内存压缩优化方案。当app 的 oom adj 发生特定变化时,framework 端会对应用的内存进行处理。随着版本的演变,这部分优化工作也一直在完善,笔者将针对Android R和Android S对该部分的优化流程分别进行详细地剖析。本文针对 Android R。原创 2023-07-14 17:40:14 · 3055 阅读 · 0 评论 -
Android oom_adj 详细解读
在博文《oom_adj 内存水位算法剖析》一文中详细的分析了lmkd 中针对 oom_adj 内存水位的计算、使用方法,在博文《oom_adj 更新原理(1)》《oom_adj 更新原理(2)》中对Android 系统中 oom_adj 的更新原理进行了详细的剖析。通过这几篇博文我们对 oom_adj 有了更深地了解。本文在之前博文的基础上,剖析代码细节,对每个 oom_adj 的值进行详细地解读。原创 2023-07-14 17:10:34 · 1494 阅读 · 0 评论 -
Android oom_adj 更新原理(二)
通过 mAdjSeq 确认此次计算是否有必要,是否已经计算过;判断是否为空进程;当maxAdj原创 2023-07-13 10:55:06 · 1229 阅读 · 0 评论 -
Android oom_adj 更新原理(一)
通过之前的两篇博文《lmkd 机制详解》和《lmkd中adj score的算法剖析》中,根据计算出来的 min_score_adj 选择大于该值的 oom_adj 的进程进行 kill 处理。oom_adj 随着应用状态的不同其值也是伴随着变化的。本文将通过源码剖析 oom_adj 更新的原理。原创 2023-07-07 20:29:39 · 1725 阅读 · 1 评论 -
Android oom_adj 内存水位算法剖析
从上文Android lmkd 机制详解中了解到lmkd 兼容了新的PSI 策略,以及旧是的kernel 驱动程序和oom adj 策略。Android 进程在不同的时候处于不同的进程状态,也会根据重要性动态调整进程的oom score。这样在lmkd 中可以根据当前的内存使用情况,找到合适的oom_score_adj,并将其kill 以满足内存的持续使用。本文主要剖析oom adj 算法,可以接Android lmkd 机制详解中第 8 节。原创 2021-12-09 14:38:06 · 3944 阅读 · 2 评论 -
ASan和HWAsan在Android中使用
ASanHWASan全称版本可以在32位和64位的x86、x86-64上。从API 27(Android O MR 1)开始,Android NDK 可支持ASAN。在Android 11 之后的AOSP master中,弃用了arm64 上的平台开发ASan,改为使用HWASan。只在Android 10 及以上版本有效,且只使用于AArch64硬件平台。检测bugs要求CPU 开销(~ 2倍)代码大小开销(50% ~ 2倍)内存开销(~ 2倍)CPU 开销(~ 2倍)原创 2023-06-21 10:19:30 · 3573 阅读 · 0 评论 -
Android crash 流程详解(二):NE
在上一篇博文剖析了java layer exception 的处理流程,本文将继续剖析 Android crash 的另一部分,即 native 端的 crash,又称 native layer exception (NE。原创 2023-06-05 14:45:11 · 2215 阅读 · 0 评论 -
Android crash 流程详解(一):JE
App crash(全称为 Application crash),又分 java crash 和 native crash,又称 java layer exception(JE) 和 native layer exception(NE对于 crash 在开发过程中或多或少都会遇到,本文将整理总结 crash 原理,剖析系统是如何捕捉、处理这些 crash。因为篇幅较长,所以会分JE 和 NE 两部分各自剖析。原创 2023-05-31 17:22:25 · 2172 阅读 · 0 评论 -
Android 中malloc_debug 使用详解
在上一篇博文《Android 中malloc_debug 原理详解》中详细剖析了 malloc_debug 的原理,本文将在此基础上详细描述 malloc_debug 的使用方法。原创 2023-02-27 14:13:32 · 2225 阅读 · 1 评论 -
Android 中malloc_debug 原理详解
最近上项目中遇到一个native 可能内存泄漏的问题,曾考虑使用HWASAN,但这个工具是针对整个系统,运行代价还是很高的。而笔者遇到的问题大致有所方向,能指定到某一个进程,针对单个进程是否有检测的功能呢?答案是肯定的,也就是本文需要分析的 malloc_debug。malloc_debug 是调试native 内存问题的一个工具,能够帮助我们检测内存损坏、内存泄漏、释放再使用等问题。原创 2023-02-24 14:36:19 · 2564 阅读 · 2 评论 -
android iorap 简介
请支持原创~~0. 前言在Android 11中,引入了IORap,这是一个新功能,可大大缩短应用程序的启动时间。IORap通过预测将需要哪些I / O并提前进行来减少应用程序启动时间。许多应用程序在启动时需要访问I/O.很多时间会因为阻塞I / O而导致应用程序启动慢。预取数据之后,应用程序几乎可以从pagecache中立即访问该数据,从而大大减少了应用程序启动延迟。1. 框架1.1 系统分了6个进程system_server主要负责应用状态的监听工作,...原创 2021-09-17 20:06:21 · 4800 阅读 · 9 评论 -
Android 性能优化大全
决定开始研究Android 中的性能优化,先收集一些好的文章,再慢慢总结自己的经验,也希望能有大神留言,给点建议。Android性能优化典范Android性能优化之渲染篇Android性能优化之运算篇Android性能优化之内存篇Android性能优化之电量篇Android性能优化典范https://blog.csdn.net/a396901990/article/details/37914465...原创 2018-04-24 16:57:42 · 443 阅读 · 0 评论 -
Android 性能优化 ---- 卡顿优化
Android 应用启动慢,使用时经常卡顿,是非常影响用户体验的,应该尽量避免出现。卡顿的场景有很多,按场景可以分为4类:UI 绘制、应用启动、页面跳转、事件响应,如图:这4种卡顿场景的根本原因可以分为两大类:界面绘制。主要原因是绘制的层级深、页面复杂、刷新不合理,由于这些原因导致卡顿的场景更多出现在 UI 和启动后的初始界面以及跳转到页面的绘制上。数据处理。导致这种卡顿场景的原因是数据处理量太大...原创 2018-04-25 10:20:14 · 2552 阅读 · 0 评论 -
Android 性能优化 ---- 内存优化
前言在 Android 系统中有个垃圾内存回收机制,在虚拟机层自动分配和释放内存,因此不需要在代码中分配和释放某一块内存,从应用层面上不容易出现内存泄漏和内存溢出等问题,但是需要内存管理。Android 系统在内存管理上有一个 Generational Heap Memory 模型,内存回收的大部分压力不需要应用层关心, Generational Heap Memory 有自己一套管理机制,当内存...原创 2018-04-25 10:26:05 · 763 阅读 · 0 评论 -
Android性能优化之一:ViewStub
ViewStub是Android布局优化中一个很不错的标签/控件,直接继承自View。虽然Android开发人员基本上都听说过,但是真正用的可能不多。ViewStub可以理解成一个非常轻量级的View,与其他的控件一样,有着自己的属性及特定的方法。当ViewStub使用在布局文件中时,当程序inflate布局文件时,ViewStub本身也会被解析,且占据内存控件,但是与其他控件相比,主要区别体转载 2015-10-16 16:21:24 · 631 阅读 · 0 评论 -
Handler 引起的内存泄漏
关联文章:Android OOM 分析Android异步消息处理线程之----Looper+MessageQueue+HandlerAndroid 中HandlerAndroid HandlerThreadHandler sendMessage 与 obtainMessage (sendToTarget)比较前言:对于Handler 在android 系统引起的内...原创 2018-04-26 15:15:20 · 688 阅读 · 0 评论 -
Android OOM 分析
前言Android 性能优化 ---- 内存优化中说到在内存使用过程中使用不当或者超过heap size limit的时候就会出现OOM,那一般OOM 是怎么产生的,会导致什么样的结果呢?OOM简介OOM全称为Out of memory,解释为内存溢出。为了整个Android系统的内存控制需要,Android系统为每一个应用程序都设置了一个硬性的Dalvik Heap Size最大限制阈值,这个...原创 2018-04-26 16:01:31 · 3089 阅读 · 0 评论 -
Android 系统中的 WatchDog 详解
Watchdog字面上是“看门狗”的意思,有做过嵌入式低层的朋友应该知道,为了防止嵌入式系统MCU里的程序因为干扰而跑飞,专门在MCU里设计了一个定时器电路,叫做看门狗。当MCU正常工作的,每隔一段时间会输出一个信号给看门狗,也就是所谓的喂狗。如果程序跑飞,MCU在规定的时间内没法喂狗,这时看门狗就会直接触发一个reset信号,让CPU重新启动。在Android系统的framework中,设计了一个系统服务Watchdog,它类似于一个软件看门狗,用来保护重要的系统服务。原创 2018-07-12 20:08:27 · 21190 阅读 · 1 评论 -
Android 系统中WatchDog 日志分析
Android 系统中的 WatchDog 详解一文中通过source code详细的分析了 WatchDog 的软件设计原理和监测过程,这一篇结合实例对WatchDog 做进一步的分析。原创 2018-07-13 14:23:51 · 6108 阅读 · 0 评论 -
Android APP 性能优化的一些思考
转自:https://www.cnblogs.com/cr330326/p/8011523.html说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才感觉运行速度稍微提高了点,就算手机在各种性能跑分软件面前分数遥遥领先,还是感觉无论有多大的...转载 2018-04-23 10:49:32 · 399 阅读 · 0 评论