|
/

Native 奔溃问题

Qqzu***@che300.com
发布于 5 年前
51070
应用性能监控 U-APM

最近安卓App更新为支持64位CPU,友盟APM捕获很多在后台的Native 奔溃。

都是同一个用户,在后台,频繁Native 奔溃,友盟智能诊断给的判定是:内存不足(oom)。

想咨询下,这种同一个用户在一段时间内不停的后台Native 奔溃,这种统计是否准确?

5个回答
 
5 年前

感觉上报那部分的逻辑可能存在问题

 
5 年前

这类问题是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);

}

}

 
5 年前

可以用低配机型试一下,看看有没有存在这个问题,友盟的SDK也是调用系统命令获取到的内存容量,这个肯定是准确的

 
5 年前

相同时间点的上报过于频繁,个人猜测可能是上报逻辑有bug,还可以看一下是不是每次上报的内容信息都一样。

 
5 年前

我认为不正常,看你发的图,1秒钟6次上报,可能是上报的逻辑有bug。

Loading ...
登录社区,分享你的经验