Native 奔溃问题
最近安卓App更新为支持64位CPU,友盟APM捕获很多在后台的Native 奔溃。
都是同一个用户,在后台,频繁Native 奔溃,友盟智能诊断给的判定是:内存不足(oom)。
想咨询下,这种同一个用户在一段时间内不停的后台Native 奔溃,这种统计是否准确?

感觉上报那部分的逻辑可能存在问题
这类问题是app异常崩溃,但是又无法退出,反复重启导致的崩溃,可以在application初始化一个
crashHandler.init(getApplicationContext())
自己编写一个crashHandler 继承 UncaughtExceptionHandler
在uncaughtException 回调方法中添加
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
即可解决
具体代码如下:
CrashHandler crashHandler = CrashHandler.getCrashHander();
crashHandler.init(this);
public class CrashHandler implements Thread.UncaughtExceptionHandler {
private static volatile CrashHandler crashHandler;
private Context context;
private CrashHandler(){}
public void init(Context context){
this.context = context;
Thread.setDefaultUncaughtExceptionHandler(this);
}
public static CrashHandler getCrashHander(){
if (crashHandler == null){
synchronized (CrashHandler.class){
if (crashHandler == null){
crashHandler = new CrashHandler();
}
}
}
return crashHandler;
}
@Override
public void uncaughtException(Thread t, final Throwable e) {
Process.killProcess(Process.myPid());
System.exit(1);
}
}
可以用低配机型试一下,看看有没有存在这个问题,友盟的SDK也是调用系统命令获取到的内存容量,这个肯定是准确的
相同时间点的上报过于频繁,个人猜测可能是上报逻辑有bug,还可以看一下是不是每次上报的内容信息都一样。
我认为不正常,看你发的图,1秒钟6次上报,可能是上报的逻辑有bug。