Android 性能专家成长指南
文章平均质量分 94
多年从事安卓基础技术建设,对应用性能监控、底层优化、性能分析工具链等有着深入的研究和实践。目前工作内容是为某大厂全系 App 提供品质提升的技术方案和工具。
这个专栏会分享成为性能技术专家的学习方向和知识体系。
优惠券已抵扣
余额抵扣
还需支付
¥199.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
拭心
我的新书《Android 性能优化入门与实战》上架了,快速提升技术实力,强烈推荐!!!
展开
-
常见的 Android 性能指标获取方式:CPU、FPS、Memory、GPU 、I/O、Network
文章目录CPUFPSMemoryGPUIONetworkCPUcpu 核数:/sys/devices/system/cpu/possible最大频率:/sys/devices/system/cpu/cpu’ + p + '/cpufreq/cpuinfo_max_freq当前频率:/sys/devices/system/cpu/cpu’ + p + '/cpufreq/scaling_cur_freq整体 cpu 使用率:/proc/stat应用 cpu 使用率:/proc/${pid}/st原创 2022-04-30 00:11:53 · 4791 阅读 · 0 评论 -
Android 虚拟机:你需要掌握的基本知识
在进入查找流程之前,先简要介绍一些前置的细节点,主要包括 dex file, oat file, mirror::Class, ArtField, ArtMethod, DexCache, ClassTable 等。这些会在后面的流程里反复出现,所以先讲一下。前置细节dex2oat 触发场景https://cs.android.com/android/platform/superproject/+/master:art/dex2oat/dex2oat.ccdex2oat 的作用:对 dex 文件进行原创 2021-12-31 09:55:39 · 4720 阅读 · 0 评论 -
Linux 编程之信号篇:异常监控必知必会
为什么要了解信号信号是 UNIX 中进程管理非常重要的一个环节。主要有 4 个场景需要通过信号进行:进程接收内核的通知(比如通知进程用户输入了信息)系统终止一个进程管理父子进程(比如通知父进程子进程退出了)进程间通信在 Android 系统中也是如此。通过了解信号,我们可以实现对系统运行状态的监听,最实际的用途,就是监听应用发生崩溃。什么是信号信号是一种软中断, 是一种通知方式。当收到内核或者其他进程发送的信号后,接收信号会从当前执行的代码转移到之前注册的信号处理函数(如果注册了的话)原创 2022-02-19 22:03:26 · 3456 阅读 · 0 评论 -
Linux 编程之时间篇:wall time, cpu time 和 timer
文章目录Linux 时间的相关知识获取当前时间time_t (秒)tmtimeval (微秒)timespec (纳秒)获取进程的 CPU 时间睡眠和阻塞睡眠的几种方式阻塞定时器alarminterval timer高级定时器 timer_t总结Thanks在 Java/JS 中获取时间非常简单(System.currentTimeMillis() System.nanoTime(); new Date().getTime() 等等),在 C/C++ 中,就略微复杂一点,因为有好多种 API,今天我们就来原创 2022-02-19 22:02:43 · 4302 阅读 · 0 评论 -
Linux 编程之进程篇:task_struct、进程创建和退出
读完本文你将了解:文章目录什么是进程获取进程相关数据的 API进程 ID什么是进程在大学上操作系统课时,对进程的概念不太清楚,只能硬记:“进程是执行的代码”。后来写的多了,认识到:“进程 = 执行的代码 + 数据 ”。再过几年,意识到可执行的代码叫 ELF,进程本身需要资源,CPU 执行进程也需要资源,又有了新的认识:“进程 = 映射的二进制文件 + 虚拟地址空间 + 内核资源 + 执行上下文”。或许现在理解的还不够深刻,但为了方便日后对比,还是先写下罢!进程的数据结构在 Linux 系统中原创 2022-03-13 17:55:38 · 6914 阅读 · 0 评论 -
Linux 编程之非局部跳转:longjmp siglongjmp
在同一个函数中,我们可以使用 goto 修改程序的执行逻辑。如果在多个函数中,想要修改函数的执行顺序(从一个函数,返回到之前函数的某个预定义逻辑),怎么办呢?答案是使用 longjmp 或 siglongjmp。本文主要内容:longjmp 的作用及使用siglongjmp 的作用及使用两者的区别longjmp 的作用及使用https://man7.org/linux/man-pages/man3/setjmp.3.htmllongjmp 需要和 setjmp 成对使用。#includ原创 2022-02-24 00:11:58 · 3200 阅读 · 2 评论 -
Linux 编程之进程篇:调度、优先级、亲和性和资源限制
处理器在调度不同进程时,有什么策略。我们开发者可以如何影响处理器的调度。文章目录进程的调度进程资源的限制Thanks进程的调度调度策略影响调度的因素优先级CPU 亲和性延伸:实时系统内核调度的对象是线程,而不是进程?优先级setpriority(PRIO_PROCESS, tid, ANDROID_PRIORITY_DISPLAY);[-19, 20)/*** Keep in sync with android.os.Process.java **This map原创 2022-03-13 17:59:41 · 6792 阅读 · 0 评论