Android Tech And Perf

「置顶」Android 性能优化必知必会

字数统计: 5.9k阅读时长: 22 min
2018/05/07

做了这么久性能相关的工作,也接触了不少模块,说实话要做好性能这一块,真心不容易。为什么这么说? 是因为需要接触的知识实在是太多了,Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以做好

在学习的过程中,除了看源码,我还接触到了很多互联网上已有的知识,各位前辈们将他们的知识和经验倾囊相授,让我少走了很多弯路。我在自己的笔记里面存了很多很优秀的技术文章和技术文档,现在我决定将这些放到网上,让每一个想进入 Android 系统开发和优化这个领域的人,能通过阅读这篇文章,快速入门。同时也算是我对知识的一个梳理,查漏补缺,终身学习

这篇文章记录了 Android 性能优化所必须掌握的知识,涵盖性能优化相关的方方面面(当然如果读者同学你也有很棒的私藏文章,也可以加入到这篇文章里面)。部分文章可能需要特殊的技巧才能看到,希望你已经掌握了这一部分技巧。另外附送 Android 开发者学习路线(2020 版本)

这篇文章会持续更新,最新更新时间:2022-06-27

优化心得和经验

  1. 抖音 Android 性能优化系列:启动优化实践
  2. 系列视频 Android Performance Patterns
  3. 给 App 提速:Android 性能优化总结
  4. 移动端性能监控方案 Hertz
  5. Android 性能优化后续
  6. Android性能优化之虚拟机调优
  7. Android UI 性能优化
  8. Performance Tips
  9. 美团外卖Android Lint代码检查实践
  10. Android battery and memory optimizations - Google I/O 2016
  11. Google 免费的公开课 : Android Performance
  12. Android APP 性能优化的一些思考
  13. 使用Android Studio和MAT进行内存泄漏分析
  14. 历时1年,上百万行代码!首次揭秘手淘全链路性能优化(上)
  15. 别催更啦!手淘全链路性能优化下篇
  16. Android开发高手课
  17. 手 Q Android缓存监控与优化实践
  18. 微信读书(Android)阅读引擎卡顿监控测试
  19. Data science for mobile OS system optimization
  20. Matrix TraceCanary – 初恋·卡顿
  21. Matrix IOCanary – I/O 质量监控
  22. 见微知著,Google Photos Web UI 完善之旅
  23. 微信 Android 终端内存优化实践
  24. 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
  25. 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%
  26. 抖音包大小优化-资源优化
  27. 性能问题终结者”Olympic
  28. 美团 Java 线程池实现原理及其在美团业务中的实践
  29. Probe:Android线上OOM问题定位组件
  30. 优化实践: 高刷下列表滑动出现卡顿掉帧的现象
  31. iOS 高刷屏监控 + 优化:从理论到实践全面解析
  32. 通过 ASM 实现大图监控
  33. Android S 原生系统内存泄露问题案例
  34. Can you trust time measurements in Profiler?
  35. 移动域全链路可观测架构和关键技术

响应速度

  1. Android应用启动全流程分析(源码深度剖析)
  2. Android App 启动优化全记录
  3. Optimizing Boot Times
  4. Android 中如何计算 App 的启动时间
  5. Google 官方文档 - Launch-time performance
  6. 都 9102 年了,Android 冷启动优化除了老三样还有哪些新招?
  7. 支付宝 App 构建优化解析:通过安装包重排布优化 Android 端启动性能
  8. Redex 初探与 Interdex:Andorid 冷启动优化
  9. Android 性能优化笔记(一)——启动优化
  10. 抖音研发实践:基于二进制文件重排的解决方案 App 启动速度提升超15%
  11. 爱奇艺 Android 客户端启动优化与分析
  12. 深入探索 Android 启动速度优化
  13. 抖音 Android 性能优化系列:启动优化之理论和工具篇
  14. APM 页面加载耗时校准
  15. Improving App Performance with Baseline Profiles

流畅度

  1. Android 中的卡顿丢帧原因概述 - 方法论
  2. Android 中的卡顿丢帧原因概述 - 系统篇
  3. Android 中的卡顿丢帧原因概述 - 应用篇
  4. Android 卡顿掉帧问题分析之原理篇
  5. Android 卡顿掉帧问题分析之工具篇
  6. Android 卡顿掉帧问题分析之实战篇
  7. Android 平台应用宝和讯飞输入法无障碍服务导致的全局卡顿分析
  8. Evaluating Performance
  9. Understanding Systrace
  10. Using ftrace
  11. Identifying Capacity-Related Jank
  12. Identifying Jitter-Related Jank
  13. 那些年我们用过的显示性能指标
  14. Slow rendering
  15. Android 流畅度检测原理简析
  16. Android JankTracker 原理解析
  17. Android 界面性能调优手册
  18. App 流畅度优化:利用字节码插桩实现一个快速排查高耗时方法的工具
  19. 或许是迄今为止第一篇讲解 fps 计算原理的文章吧
  20. Jank 卡顿及 stutter 卡顿率说明
  21. 一文读懂直播卡顿优化那些事儿

内存

  1. 抖音 Android 性能优化系列:Java OOM 优化之 NativeBitmap 方案
  2. 拯救OOM!字节自研 Android 虚拟机内存管理优化黑科技 mSponge
  3. 抖音 Android 性能优化系列:Java 内存优化篇
  4. Android Camera内存问题剖析
  5. 一次大量 JVM Native 内存泄露的排查分析(64M 问题)
  6. Andriod Native | 采样型内存调试工具GWP-ASan
  7. Android Native | 内存问题的终极武器——MTE
  8. Android 中低内存对性能的影响
  9. Low RAM Configuration
  10. Linux Swap 与 Zram 详解
  11. Android 加载不同 DPI 资源与内存消耗间的关系
  12. ZRAM SWAP 内存管理讲解
  13. Android OOM 案例分析
  14. Android 代码内存优化建议-Android 资源篇
  15. Android 代码内存优化建议-Android 官方篇
  16. Android 代码内存优化建议-Java 官方篇
  17. Android 内存优化之一:MAT 使用入门
  18. Android 内存优化之二:MAT 使用进阶
  19. Android 内存优化之三:打开 MAT 中的 Bitmap 原图
  20. Android 代码内存优化建议-OnTrimMemory 优化
  21. Android LowMemoryKiller原理分析
  22. Android 匿名共享内存(Ashmem)原理
  23. 郝健: Linux内存管理学习笔记-第1节课
  24. 郝健: Linux内存管理学习笔记-第2节课
  25. 郝健: Linux内存管理学习笔记-第3节课
  26. 郝健: Linux内存管理学习笔记-第4节课
  27. 郝健: Linux内存管理学习笔记-第5节课
  28. 郝健: Linux内存管理学习笔记-第6节课
  29. Manage your app’s memory
  30. Overview of memory management
  31. Linux 查看进程消耗内存情况总结
  32. 一次过程 Android 平台 native heap 内存泄露的追查过程
  33. 浅谈 Cache Memory
  34. Bitmap 优化详谈
  35. 探索 Android 内存优化方法
  36. 看完这篇文章,解决 APP 中 90 % 的内存异常问题
  37. 实践App内存优化:如何有序地做内存分析与优化
  38. 谈谈内存压缩那些事
  39. dumpsys meminfo 的原理和应用
  40. Binder | 内存拷贝的本质和变迁
  41. 内存优化: 纹理压缩技术
  42. 使用 perfetto 分析 Android native 物理内存泄漏
  43. 使用 Android profiler 分析 Android native 物理内存泄漏
  44. Android JVMTI 实现应用内存动态检测
  45. ThreadLocal 源码分析以及可能引发的内存泄漏问题
  46. App处于前台,Activity就不会被回收了?

图形栈

  1. Android 12(S) 图形显示系统 - 开篇
  2. Android 12(S) 图形显示系统 - 基本概念(一)
  3. Android 12(S) 图形显示系统 - 示例应用(二)
  4. Android 12(S) 图形显示系统 - 应用建立和 SurfaceFlinger 的沟通桥梁(三)
  5. Android 12(S) 图形显示系统 - SurfaceFlinger 的启动和消息队列处理机制(四)
  6. Android 12(S) 图形显示系统 - createSurface 的流程(五)
  7. Android 12(S) 图形显示系统 - BufferQueue/BLASTBufferQueue 之初识(六)
  8. Android 12(S) 图形显示系统 - 几个常用类的介绍(七)
  9. Android display pipeline 本身以及进程调度
  10. Android 中的 Hardware Layer 详解
  11. Android 硬件加速原理与实现简介
  12. Android 图形系统概述
  13. Choreographer 原理
  14. SurfaceFlinger 启动篇
  15. SurfaceFlinger 绘图篇
  16. Android 应用程序 UI 硬件加速渲染技术简要介绍和学习计划
  17. Android 应用程序 UI 硬件加速渲染环境初始化过程分析
  18. Android 应用程序 UI 硬件加速渲染的预加载资源地图集服务(Asset Atlas Service)分析
  19. Android 应用程序 UI 硬件加速渲染的 Display List 构建过程分析
  20. Android 应用程序 UI 硬件加速渲染的 Display List 渲染过程分析
  21. Android 应用程序 UI 硬件加速渲染的动画执行过程分析
  22. Android硬件加速(一)- 理解Android硬件加速原理的小白文
  23. Android硬件加速(二)- RenderThread与OpenGL GPU渲染
  24. Android中的GraphicBuffer同步机制-Fence
  25. Android P 图形显示系统(一)硬件合成HWC2
  26. Android P 图像显示系统(二)GraphicBuffer和Gralloc分析
  27. Android P 图像显示系统(三)Android HWUI 绘制流程
  28. Android P 图形显示系统(四) Android VirtualDisplay解析
  29. Android P 图形显示系统(五) 上层Client和SurfaceFlinger的交互
  30. Android P 图形显示系统(六) SurfaceFlinger合成流程(一)
  31. Android P 图形显示系统(七) SurfaceFlinger合成流程(二)
  32. Android P 图形显示系统(八) SurfaceFlinger合成流程(三)
  33. Android P 图形显示系统(九) Android图形显示子系统概述
  34. Android P 图形显示系统(十) BufferQueue(一)
  35. Android P 图形显示系统(十一) BufferQueue(二)
  36. Android P 图形显示系统(十二) BufferQueue(三)
  37. 渲染流水线中的光栅化1
  38. 渲染流水线中的光栅化2

虚拟机

  1. ART虚拟机 | GC的触发时机和条件
  2. ART虚拟机 | Large Object Space
  3. ART虚拟机 | JNI调用的中间环节
  4. ART虚拟机 | Finalize的替代者Cleaner
  5. ART虚拟机 | 如何让GC同步回收native内存
  6. ART虚拟机 | Java对象和类的内存结构
  7. ART虚拟机 | JNI静态注册和动态注册
  8. ART虚拟机 | 锁
  9. ART虚拟机 | Android应用中SIGSEGV信号的处理流程
  10. 第三视角: 一个 ART GC 的优化故事
  11. GC 超时导致的后台应用崩溃问题分析
  12. 带你了解 Android 10 中的 art
  13. 带你了解 Android 10 中的 art
  14. 带你了解 Android 10 中的 art
  15. 带你了解 Android 10 中的 art
  16. 带你了解 Android 10 中的 art
  17. ART and Dalvik
  18. Android 8.0 ART Improvements
  19. Dalvik bytecode
  20. Dalvik Executable format
  21. Dalvik Executable instruction formats
  22. Constraints
  23. Configuring ART
  24. Debugging ART Garbage Collection
  25. Implementing ART Just-In-Time (JIT) Compiler
  26. 深入学习Android:虚拟机&运行时
  27. Android性能优化之虚拟机调优
  28. Android上的Dalvik虚拟机
  29. Android上的ART虚拟机
  30. Android ART 并行拷贝垃圾回收
  31. Android ART dex2oat 浅析

系统框架

  1. Android画面显示流程分析(1)
  2. Android画面显示流程分析(2)
  3. Android画面显示流程分析(3)
  4. Android画面显示流程分析(4)
  5. Android画面显示流程分析(5)
  6. Task Snapshots
  7. Android Input 子系统:Input 进程的创建,监听线程的启动
  8. Android Input 子系统:Input 事件的产生、读取和分发,InputReader、InputDispatcher
  9. EventHub 与设备、Input 事件的交互
  10. Android 消息机制,从Java 层到 Native 层剖析
  11. 理解 Android Binder 机制(1/3):驱动篇
  12. 理解 Android Binder 机制(2/3):C++ 层
  13. 理解 Android Binder 机制(3/3):Java 层
  14. Android Binder 设计与实现 - 设计篇
  15. 四大组件之综述
  16. 四大组件之 ActivityRecord
  17. 四大组件之 ContentProviderRecord
  18. 四大组件之 BroadcastRecord
  19. 四大组件之 ServiceRecord
  20. 简述 Activity 与 Window 关系
  21. 理解 Android Context
  22. 理解 Application 创建过程
  23. 以 Window 视角来看 startActivity
  24. WMS—启动窗口(StartingWindow)
  25. WMS—启动过程
  26. 写给 Android 应用工程师的 Binder 原理剖析
  27. Binder 系列—开篇
  28. Binder 系列1—Binder Driver初探
  29. Binder 系列2—Binder Driver再探
  30. Binder 系列3—启动ServiceManager
  31. Binder 系列4—获取ServiceManager
  32. Binder 系列5—注册服务(addService)
  33. Binder 系列6—获取服务(getService)
  34. Binder 系列7—framework层分析
  35. Binder 系列8—如何使用Binder
  36. Binder 系列9—如何使用AIDL
  37. Binder 系列10—总结
  38. 彻底理解 Android Binder 通信架构
  39. Binder 学习指南
  40. 你知道 android 的 MessageQueue.IdleHandler 吗?
  41. 聊一聊 Android 的消息机制
  42. 聊聊 APK (一) ——直接运行 Dex 文件的黑魔法
  43. 聊聊 APK(二)——Dex 热修复与 Classpath
  44. 聊聊 APK(三)—— Android 资源编译的秘密
  45. 卢半山 - 反思|Android 事件拦截机制的设计与实现
  46. 卢半山 - Binder 内存拷贝的本质和变迁
  47. 卢半山 - AIDL 中 inout 的本质
  48. 卢半山 - Binder 的异常机制
  49. 卢半山 - Binder 世界中的代理机制(上)
  50. 卢半山 - Binder 概述
  51. 卢半山 -Binder | 对象的生命周期
  52. 卢半山 -Binder | 代理对象的泄露及其检测
  53. Android 系统架构 —— Choreographer 的工作机制
  54. Looper的wake机制升级
  55. Android10.0 Binder 通信原理(一)Binder、HwBinder、VndBinder概要
  56. Android10.0 Binder 通信原理(二)-Binder入门篇
  57. Android10.0 Binder 通信原理(三)-ServiceManager篇
  58. Android10.0 Binder 通信原理(四)-Native-C\C++实例分析
  59. Android10.0 Binder 通信原理(五)-Binder驱动分析
  60. Android10.0 Binder 通信原理(六)-Binder数据如何完成定向打击
  61. Android10.0 Binder 通信原理(七)-Framework binder示例
  62. Android10.0 Binder 通信原理(八)-Framework层分析
  63. Android10.0 Binder 通信原理(九)-AIDL Binder示例
  64. Android10.0 Binder 通信原理(十)-AIDL原理分析-Proxy-Stub设计模式
  65. Android Framework | 一种新型的应用启动机制:USAP
  66. Android 跨进程通信:图文详解 Binder 机制 原理
  67. Android Native – Message/Handler/Looper 机制(原理篇)
  68. Android Native – Message/Handler/Looper 机制(应用篇)
  69. Android P/Q/R/S 9/10/11/12 多任务手势动画 OtherActivityInputConsumer 情况
  70. Android 启动画面

稳定性

  1. Android ANR|原理解析及常见案例
  2. 彻底理解安卓应用无响应机制
  3. 应用与系统稳定性第一篇—ANR 问题分析的一般套路
  4. 应用与系统稳定性第二篇—ANR 的监测与信息采集
  5. 应用与系统稳定性第三篇—FD 泄露问题漫谈
  6. 应用与系统稳定性第四篇—单线程导致的空指针问题分析
  7. 应用与系统稳定性第五篇—Watchdog 原理和问题分析
  8. 应用与系统稳定性第六篇—JVM 垃圾回收之 finalize 执行时引起 timed out 闪退分析
  9. 应用与系统稳定性第七篇— 用 Asan 提前解决NDK疑难crash
  10. Android中的进程名和线程名
  11. Android Runtime | Trace文件的生成机制
  12. 讨论 | 基于FP的栈回溯对于主线程的特殊处理
  13. Android 资源溢出崩溃轻松解
  14. 字节Android Native Crash治理之Memory Corruption工具原理与实践
  15. 西瓜视频稳定性治理体系建设一:Tailor 原理及实践
  16. 西瓜视频稳定性治理体系建设二:Raphael 原理及实践
  17. 西瓜视频稳定性治理体系建设三:Sliver 原理及实践
  18. 西瓜卡顿 & ANR 优化治理及监控体系建设
  19. 今日头条 ANR 优化实践系列 - 设计原理及影响因素
  20. 今日头条 ANR 优化实践系列 - 监控工具与分析思路
  21. 今日头条 ANR 优化实践系列分享 - 实例剖析集锦
  22. 今日头条 ANR 优化实践系列 - Barrier 导致主线程假死
  23. 今日头条 ANR 优化实践系列 - 告别 SharedPreference 等待
  24. 自动拦截 50% crash,字节自研 Fastbot 如何助力今日头条稳定性测试
  25. 线上故障 - 通过系统日志分析和定位

功耗

  1. 能感知功耗的 Linux 调度器(EAS)
  2. Android 功耗改进
  3. 视频 - iPhone 13 Pro/Max 为什么省电?- ProMotion 技术分析

进程管理

  1. cpuset
  2. cgroup
  3. Android 进程调度之 adj 算法
  4. Linux 进程管理(一)
  5. Linux 进程管理(二)–fork
  6. Linux 进程 pid 分配法
  7. 收费培训视频 打通 Linux 脉络系列:进程、线程和调度
  8. Android 系统中的进程管理:进程的创建
  9. Android 系统中的进程管理:进程的优先级
  10. Android 系统中的进程管理:内存的回收
  11. Android系统上的进程管理:进程的调度
  12. Android 系统启动:init 进程与 init 语言
  13. Android 进程保活招式大全
  14. 进程和线程
  15. 通过线程提升性能
  16. 解读 Android 进程优先级 ADJ 算法
  17. 杂谈 Android 线程优先级

IO

  1. Android 性能优化 —— IO 的监控与优化
  2. 从内核文件系统看文件读写过程
  3. 认真分析 mmap:是什么 为什么 怎么用
  4. Android IO 监控 | 性能监控系列

调试工具

  1. 另一个 Android 性能剖析工具——simpleperf
  2. Simpleperf
  3. 如何调试 Android Framework
  4. 如何调试 Android Native Framework
  5. Catapult 项目
  6. 手把手教你使用 Systrace(一)
  7. 手把手教你使用 Systrace(二)——锁优化
  8. 使用 Android Studio 和 MAT 进行内存泄漏分析
  9. Systrace 简介
  10. Systrace 基础知识 - Systrace 预备知识
  11. Systrace 基础知识 - Why 60 fps ?
  12. Systrace 基础知识 - SystemServer 解读
  13. Systrace 基础知识 - Input 解读
  14. Systrace 基础知识 - Vsync 产生与工作机制解读
  15. Systrace 基础知识 - Vsync-App :基于 Choreographer 的渲染机制详解
  16. Systrace 基础知识 - MainThread 和 RenderThread 解读
  17. Systrace 基础知识 - Binder 和锁竞争解读
  18. Systrace 基础知识 - Triple Buffer 解读
  19. Systrace 基础知识 - CPU Info 解读
  20. Systrace 流畅性实战 1 :了解卡顿原理
  21. Systrace 流畅性实战 2 :案例分析: MIUI 桌面滑动卡顿分析
  22. Systrace 流畅性实战 3 :卡顿分析过程中的一些疑问
  23. Systrace 响应速度实战 1 :了解响应速度原理
  24. Systrace 响应速度实战 2 :响应速度实战分析-以启动速度为例
  25. Systrace 响应速度实战 3 :响应速度延伸知识
  26. Systrace 线程 CPU 运行状态分析技巧 - Runnable 篇
  27. Systrace 线程 CPU 运行状态分析技巧 - Running 篇
  28. Systrace 线程 CPU 运行状态分析技巧 - Sleep 和 Uninterruptible Sleep 篇
  29. Tracing Window Transitions
  30. Android 性能问题分析之 bugreport
  31. 腾讯 Apm 框架 Matrix 源码阅读 - gradle插件
  32. 腾讯 Apm 框架 Matrix 源码阅读 - TracePlugin 架构解析
  33. 腾讯 Apm 框架 Matrix 源码阅读 - TracePlugin 之 AnrTracer
  34. 腾讯 Apm 框架 Matrix 源码阅读 - TracePlugin 之 StartupTracer
  35. 腾讯 Apm 框架 Matrix 源码阅读 - TracePlugin 之 FrameTracer
  36. 腾讯 Apm 框架 Matrix 源码阅读 - 架构解析
  37. PerfettoViewer
  38. Android 性能分析工具介绍 | 开发者说·DTalk

硬件相关

  1. Flash Wear Management in Android Automotive
  2. Cortex-A75 和 Cortex-A55
  3. CPU Utilization is Wrong

编程语言

  1. 探索 Java 隐藏的开销
  2. Kotlin 中文文档
  3. Java 多态在 android 中的实现
  4. Cancellation and Exceptions in Coroutines
    1. Coroutines: First things first
    2. Cancellation in coroutines
    3. Exceptions in Coroutines
    4. Coroutines & Patterns for work that shouldn’t be cancelled
  5. 彻底理解引用在 Android 和 Java 中的工作原理
  6. Kotlin 中的协程、上下文和作用域
  7. 抽丝剥茧聊协程之深入理解 Continuation 原理
  8. Android Architecture Pattern
  9. High performance with idiomatic Kotlin

Linux

  1. 内核探索:Regmap 框架:简化慢速 I/O 接口优化性能
  2. 嵌入式 Linux 启动时间优化
  3. Linux 文件系统预读的情景分析
  4. 使用 blktrace 统计磁盘块 I/O 访问频率
  5. Linux 系统调用(syscall)原理
  6. 浅墨: 聊聊 Linux IO(上)
  7. 浅墨: 聊聊 Linux IO(中)——Linux 内核中的 IO 栈
  8. 浅墨: 聊聊 Linux IO(下)
  9. 郭健: deadline 调度器之(一):原理
  10. 郭健: Deadline 调度器之(二):细节和使用方法
  11. 郭健: Linux 内存模型——平坦、非连续与稀疏
  12. linux内核分析——CFS(完全公平调度算法)
  13. 从几个问题开始理解 CFS 调度器
  14. CFS 调度器(1)-基本原理
  15. CFS 调度器(2)-源码解析
  16. CFS 调度器(3)-组调度
  17. CFS 调度器(4)-PELT(per entity load tracking)
  18. CFS 调度器(5)-带宽控制
  19. CFS 调度器(6)-总结
  20. 关于线程和 I/O 模型的极简知识
  21. TRIM:提升磁盘性能,缓解 Android 卡顿
  22. LWN 456904: 避免磁盘回写(writeback),抑制(throttling)缓存(page cache)写入
  23. LWN 384093: 有关 “回写”(writeback)的问题讨论
  24. LWN 211505: 避免和解决内存碎片化
  25. SMP Primer for Android
  26. 内存分配1 - 空闲链表和内存池
  27. 内存分配2 - Buddy 系统的原理
  28. 内存分配3 - Linux 中 Buddy 系统的实现
  29. Linux 中的内存压缩
  30. 研究 Linux 内核的乐趣
  31. linux IO Block layer 解析
  32. CFS 任务的负载均衡(框架篇)
  33. 一张图读懂内存反碎片化
  34. 浅谈新型非易失存储
  35. Linux devfreq framework 剖析
  36. 内存泄漏(增长)火焰图
  37. Linux 系统性能评测基准系统配置及其原理
  38. Cgroups 与 Systemd
  39. Devfreq Bus Dcvs
  40. 基于 eBPF 的 CPU 利用率精准计算小工具开发
  41. 关于 eBPF 的一些粗浅理解
  42. 使用 ftrace 分析函数性能
  43. eBPF是什么?为什么对可观测性很重要

Flutter

  1. 深入 Flutter 的高性能图形渲染
  2. 跨平台技术演进及 Flutter 未来
  3. 跨平台技术趋势及字节跳动 Flutter 架构实践
  4. Flutter 的性能测试和理论
  5. 深入理解 Flutter 多线程
  6. 深入理解 Flutter 引擎启动
  7. Flutter 渲染机制— UI 线程
  8. Flutter 渲染机制— GPU 线程
  9. 深入探索 Flutter 性能优化

Fuchsia

  1. 许中兴博士演讲:Fuchsia OS 简介

技术之外的思考

  1. 如何在一个全新的领域展开学习
  2. 我到底有多么努力
  3. 工作以来的一些感悟
  4. 如何自学 Android?
  5. 技术人最重要的能力是什么?
  6. 浅谈软件工程师的代码素养
  7. 陆奇:除了好代码,工程师怎样才算优秀?
  8. 别让自己“墙”了自己
  9. 100% 成功率的 offer 收割机是怎样练成的?
  10. 使用简单的逻辑方法进行独立思考
  11. 这一年炼就的底层内功修养
  12. 084 创造自己的领域,乔布斯的人生规则,发声与退出,失眠的好处
  13. 我掌握到了如何无障碍观看英文技术视频
  14. 视频 - 泰勒·本-沙哈尔《正向领导力》
  15. Why did I choose to be an Android developer, not an IOS developer ?
  16. 技术负责人要停止写代码吗?
  17. 我是如何从哑巴英语到无障碍英文工作沟通的
  18. 英语:漏屋-英语学习的真实方法及误区分析
  19. 拆掉知识的墙
  20. 5000字详解性能需求

面试题

  1. Android 2018 最新面试题
  2. 如何衡量一个 Android 应用开发人员的能力
  3. 2018 Android 面试总结
  4. Android 2017-2018 最新面试题(3-5年经验个人面试经历)
  5. Android 开发工程师面试指南
  6. 阿里电话面试面试题总结,附答案!
  7. 阿里巴巴面试题
  8. 美团面试题
  9. 豌豆荚三面试题
  10. 蜻蜓FM面试题
  11. 新浪微博面试题
  12. 网易杭研面试题
  13. 为什么想来我们公司工作?- 面试常见问题解析
  14. 今日头条大佬十年面试了 2000 人,总结了这 5 点
  15. 2019 年美团点评高级 Android 开发寒冬跳槽涨薪经验掏心分享
  16. 如何回答性能优化的问题,才能打动阿里面试官?
  17. 2019.07 Android 面试真题集锦
  18. 技术面试中面试官怎么考察候选人?
  19. 给扔物线 HenCoder Plus 学员的一次分享文字版
  20. 快手,字节跳动,百度,美团Offer之旅
  21. 美帝面试二三事
  22. 面试随想

开源库

  1. 抖音 Android 性能优化系列:新一代全能型性能分析工具 Rhea
  2. Raphael 开源地址
  3. Tailor 开源地址
  4. xHook
  5. xDL 链接
  6. Android-Inline-Hook 链接
  7. And64InlineHook 链接
  8. malloc debug 链接
  9. LeakTracer 链接
  10. Nanoscope
  11. Profilo
  12. Lottie Android 5.0

技术 Weekly

  1. Kotlin Weekly
  2. Android Weekly
  3. Android Weekly - CN
  4. onCreate Digest
  5. 软件测试周刊
  6. CodeDump 的网络日志
  7. 体验碎周报

本文其他地址

由于博客留言交流不方便,点赞或者交流,可以移步本文的知乎或者掘金页面
知乎 - Android 性能优化必知必会
掘金 - Android 性能优化必知必会

关于我 && 博客

  1. 关于我 <– 非常希望和大家一起交流 , 共同进步
  2. 博客内容导航
  3. 优秀博客文章记录 - Android 性能优化必知必会

一个人可以走的更快 , 一群人可以走的更远

微信扫一扫

CATALOG
  1. 1. 优化心得和经验
  2. 2. 响应速度
  3. 3. 流畅度
  4. 4. 内存
  5. 5. 图形栈
  6. 6. 虚拟机
  7. 7. 系统框架
  8. 8. 稳定性
  9. 9. 功耗
  10. 10. 进程管理
  11. 11. IO
  12. 12. 调试工具
  13. 13. 硬件相关
  14. 14. 编程语言
  15. 15. Linux
  16. 16. Flutter
  17. 17. Fuchsia
  18. 18. 技术之外的思考
  19. 19. 面试题
  20. 20. 开源库
  21. 21. 技术 Weekly
  22. 22. 本文其他地址
  23. 23. 关于我 && 博客