Android ANR的解决方案

1、使用monkey进行压测,命令如下:

bash 复制代码
adb shell monkey -p com.toycloud.alphaegg.launcher --hprof --ignore-crashes --ignore-timeouts --ignore-security-exceptions --pct-syskeys 0 --throttle 100 -v -v -v 10000 > C:\Users\jjyang31\Desktop\public_apk\Monkeytest_20251103\"monkeytest_%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%-%time:~3,2%-%time:~6,2%.log"
// 100 是间隔时间 10000模拟触摸次数

2、执行完毕后通过adb bugreport 自动把anr相关的日志打包下载。

3、通过关键字搜索日志:

复制代码
	ANR in
	Reason
	"main" prio=
	Input dispatching timed out
	Broadcast of Intent
	executing service
	ContentProvider not responding
	你的包名

4、使用爱奇艺监听ANR/JAVA崩溃,添加依赖

bash 复制代码
    implementation "com.iqiyi.xcrash:xcrash-android-lib:3.1.0"
bash 复制代码
//	在Application进行初始化工作
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        String filePath = getCacheDir().getAbsolutePath() + "/xcrash";
        Log.d("MyApplication", "filePath=" + filePath);

        XCrash.InitParameters params = new XCrash.InitParameters()
                .setLogDir(filePath)
                .setJavaCallback((logPath, emergency) -> {
                    // Java 崩溃回调
                    Log.d("xCrash", "Java crash captured: " + emergency);
                    // 可以在这里上传日志到服务器
                })
                .setNativeCallback((logPath, emergency) -> {
                    // Native 崩溃回调
                    Log.d("xCrash", "Native crash captured: " + emergency);
                })
                .setAnrCallback((logPath, emergency) -> {
                    // ANR 回调
                    Log.d("xCrash", "ANR captured: " + emergency);
                });

        XCrash.init(this, params);
    }
}
相关推荐
拥小抱12 小时前
Compose 知识点
android
文章永久免费只为良心12 小时前
Web应用安全与防护_第三章_日志文件包含_从一道 CTFshow 题目讲透「日志投毒型 LFI → RCE」:原理、时序陷阱与全变种攻防手册
android·网络安全·渗透测试·漏洞危害·漏洞描述·日志投毒·红队指南
AIsoft_868912 小时前
学术讲座录音如何整理?录音APP可行吗
android·iphone
Patrick在香港14 小时前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
海雅达手持终端PDA16 小时前
工业手持终端的“去手机化”演进:看海雅达如何以“同轴扫摄”终结工程妥协,重塑工业PDA新范式
android·物联网·智能手机·硬件工程·能源·制造·iot
booboosui17 小时前
删掉一个住在本机的 agent:8 处要清,顺序不能反
android
hcgeng17 小时前
Android获取崩溃日志
android
aqi0017 小时前
AI编程让鸿蒙开发电子书APP更加快捷
android·华为·harmonyos·鸿蒙·harmony
GY-9318 小时前
【Android】Android Studio 中的协程
android