Android 打印ANR日志

文章介绍了如何利用adb工具执行特定命令adbbugreportanrlog.zip来收集Android系统的ANR日志,生成的zip文件默认存储于项目一级目录下。解压后查看以bugreport命名的txt文件,通过搜索关键字VMTRACESATLASTANR可以找到最近或耗时最长的ANR事件详情。
部署运行你感兴趣的模型镜像

1、adb命令:adb bugreport anrlog.zip

2、命令成功后可以看到进度条,加载完即可解压该zip包。 zip包保存路径默认在项目的一级目录下anrlog.zip

3、解压,并打开以bugreport开头的txt即可

4、搜索 VM TRACES AT LAST ANR ,查询最近一次anr或者时间最长的操作

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

Android开发中,ANR(Application Not Responding)是指应用程序无响应的情况。当主线程被阻塞或执行耗时操作超过一定时间(如5秒)时,系统会弹出ANR对话框。为了调试和解决ANR问题,开发者通常需要分析ANR日志ANR日志通常可以通过以下方式获取: 1. **使用`adb`命令获取:** ```bash adb shell dumpsys activity anr ``` 该命令会显示当前的ANR信息,包括发生ANR的进程、线程状态以及调用栈。 2. **查看`/data/anr/`目录下的`traces.txt`文件:** ```bash adb pull /data/anr/traces.txt ``` 这个文件包含了发生ANR时的线程堆栈信息,可以帮助开发者定位问题所在。 3. **在代码中主动打印日志:** 可以通过`Log`类打印调试信息,帮助定位主线程阻塞的位置。 ```java import android.util.Log; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "Activity created"); } // 模拟耗时操作 private void simulateLongOperation() { new Thread(() -> { try { Thread.sleep(10000); // 模拟耗时操作 } catch (InterruptedException e) { e.printStackTrace(); } Log.d(TAG, "Long operation completed"); }).start(); } } ``` 4. **使用Android Studio的Logcat查看实时日志:** Android Studio提供了Logcat工具,可以实时查看日志信息,过滤`ANR`关键字可以快速定位相关日志。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值