冷启动优化-ARouter
路由表注册提前到编译时 ARouter 启动初始化运行时扫描 dex 注册路由表,可通过 transform+ASM 字节码插桩,在编译器就将路由表注册好,避免主线程扫描 dex 浪费启动时间 扩展: 其他需要注册的都可以采用这种字节码插桩技术,可优化 1 秒左右的启动时间 RouteMeta 完善锁粒度减小 背景 ARouter 框架提供了路由注册跳转及 SPI 能力。为...
路由表注册提前到编译时 ARouter 启动初始化运行时扫描 dex 注册路由表,可通过 transform+ASM 字节码插桩,在编译器就将路由表注册好,避免主线程扫描 dex 浪费启动时间 扩展: 其他需要注册的都可以采用这种字节码插桩技术,可优化 1 秒左右的启动时间 RouteMeta 完善锁粒度减小 背景 ARouter 框架提供了路由注册跳转及 SPI 能力。为...
class 的加载 一个类的完整加载流程至少包括 加载、链接、初始化,而类的加载在一个进程中只会触发一次,因此对于冷启动场景,我们可以异步加载原本在启动阶段会在主线程触发类加载过程的类,这样当原流程在主线程访问到该类时就不会触发类加载流程。 ClassLoader 基础:[[ClassLoader基础]] 获取启动阶段需要预加载的 class Hook ClassLoader 在 ...
Perfetto Trace Processor Trace Processor 实战 自动化 trace 分析主要分析主线程耗时劣化,分析方法是基于一个基准版本(如线上版本 release 分支包)做为参照,与测试版本的每个主线程调用进行对比分析。自动分析支持分析以下几类问题: 主线程锁 主要分析 synchronize 关键字导致的锁问题,虚拟机会通过 atrace 添加 Tra...
Perfetto 入门 Perfetto 概述 Perfetto 是 Google 从 Android10 开始引入的一个全新的平台级跟踪分析工具。适用于 Android、Linux 和 Chrome 的更加通用和复杂的用于性能检测和跟踪分析的生产级开源项目。在 Android 系统中对性能分析是尤为重要的一部分,仅从 Logcat 中进行时间分解太繁琐,Android 系统中可以通过 ...
App Quality Insights App Quality Insights 概述 Android Vitals Android Studio 授权 Google 账户登录后 App 集成 Firebase SDK 来在 Direct Boot 模式下运行,并在需要时访问设备加密存储。此外,Android 还提供...