Android-性能-Android Studio 2025 Profiler-教程

📅 2026/7/29 18:56:35
Android-性能-Android Studio 2025 Profiler-教程
一、工具介绍Capture System ActivitiesSystem Trace系统轨迹抓取等价于Perfetto用来分析UI卡顿、主线程阻塞、Binder调用、页面启动耗时、ANR、窗口绘制流程。适用车机Launcher页面切换卡顿、桌面Widget加载掉帧、主线程耗时任务排查功耗监测。Analyze Memory UsageHeap Dump【你当前最需要】堆转储快照就是你上一张截图的内存泄漏检测功能。✅ 用途抓取Java堆内存自动检测Leak内存泄漏、重复对象、残留Fragment/Activity查看引用链定位强引用持有问题直接解决AicyWidgetFragment泄漏。✅ 操作反复开关泄漏页面 → 点击该按钮Dump堆 → 分析Leaks列表。Find CPU HotspotsCallstack SampleCPU热点采样抽样模式性能开销小统计哪些方法占用CPU过高适合定位后台轮询、死循环、频繁UI刷新导致功耗过高。Track Memory ConsumptionJava/Kotlin Allocations实时Java对象分配追踪记录每一个对象创建堆栈。适用观察Fragment反复创建、频繁GC、临时对象暴涨定位哪里重复new了Widget Fragment实例。Find CPU HotspotsJava/Kotlin Method RecordingCPU全量方法录制精准模式开销更大完整记录所有方法调用耗时用于深度优化耗时函数、主线程IO、嵌套循环。Track Memory ConsumptionNative AllocationsNative层内存分配追踪排查C/C、JNI、图片Bitmap、OpenGL、车机底层SDK导致的Native内存泄漏、内存暴涨。车机APP常用排查车载SDK native句柄未释放、大图内存未recycle。View Live Telemetry实时遥测数据直观查看CPU、内存、网络、电量、帧率实时曲线宏观监控APP运行负载。二、前置环境不满足直接采集失败1. 版本与设备门槛IDEAndroid Studio 2025.1.x Narwhal2025正式版AGP ≥ 7.3测试设备真机优先API 29Android10及以上模拟器功耗、Native内存数据失真仅做逻辑排查权限前提手机开启USB调试Android 11额外开启无线调试可远程Profiler2. Manifest核心配置官方强制区分application android:allowBackuptrue!-- 1. release包低损耗性能采集必备profileable仅采样CPU/功耗/线程无法堆转储、方法插桩 --profileableandroid:shelltrue/!-- 2. debug包自动隐含debuggabletrue完整数据采集权限全部开放 --说明:.以下命令没效果只能按上面配置adb shell settings put global debug_app 包名adb shell setprop debug.mono.extra.debuggable 1关键权限红线必须记死✅debuggabletruedebug包完整权限 → CPU插桩追踪、堆快照、对象分配录制、ANR堆栈、Native内存分析全部可用性能开销大✅profileabletruerelease包低开销权限 → 仅采样CPU、System Trace、Energy功耗不支持Heap Dump、Allocation追踪线上真实性能摸底唯一方案3. build.gradle 编译避坑配置1构建类型混淆规则解决方法名a/b/c无法定位android { buildTypes { debug { minifyEnabled false // debug直接关闭混淆性能分析最优 shrinkResources false } release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile(proguard-android-optimize.txt), proguard-rules.pro // 给release加Profiler保留规则否则trace堆栈全是混淆名 proguardFile proguard-profile-keep.pro } } // Kotlin lambda堆栈可追溯 kotlinOptions { freeCompilerArgs -Xprofile } }2proguard-profile-keep.pro 通用保留规则直接复制# 保留所有自定义业务类、Activity、Fragment方法名 -keep class shturl.cc/9.** { *; } -keepclassmembers class * { void *(...); } # 保留Compose重组标记 -keepnames class androidx.compose.runtime.**三、打开Profiler方式1底部Tab一键打开最常用IDE底部状态栏点击Profiler心电图图标直接唤起面板方式2菜单栏唤起View → Tool Windows → Profiler四、录制启动两个核心选项NowApp已经打开了现在直接附加上去录 → 日常卡顿、内存泄漏、滑动掉帧 ✅ 日常首选Process start杀掉重启从APP刚开机那一刻从头录 → 只用来测冷启动性能