我想知道 Google play 如何能够捕获它拥有的应用程序中发生的错误列表并将其显示给开发人员?
背景: 我们正在尝试复制像谷歌商店这样的应用程序?我们应该通过我们的应用程序维护一个企业应用程序的列表。我们想通过我们的应用程序实现一个异常捕获框架,该框架能够通过我们的应用程序列表捕获异常并将其显示和存储在后端。
我想知道 Google play 如何能够捕获它拥有的应用程序中发生的错误列表并将其显示给开发人员?
背景: 我们正在尝试复制像谷歌商店这样的应用程序?我们应该通过我们的应用程序维护一个企业应用程序的列表。我们想通过我们的应用程序实现一个异常捕获框架,该框架能够通过我们的应用程序列表捕获异常并将其显示和存储在后端。
我假设 Android 应用程序与 Google Play 市场相关联,因此当发生异常时,会将崩溃报告发送给它们。
一种可能的解决方案是让您的用户实现某种库,以便在您的市场上发布应用程序。该库应该只捕获异常并将崩溃报告发送到您的服务器(类似于 ACRA)。
虽然,作为开发人员,我认为这种方法不是一个好方法,除非你为开发人员提供了一些非常有前途的东西(比如应用可见性、推广等)
我不知道 Google Play 是如何做到的,但为了我的需要,我创建了自己的java.lang.Thread.UncaughtExceptionHandler
:
class MyUncaughtExceptionHandler implements UncaughtExceptionHandler {
private UncaughtExceptionHandler mDefaultUncaughtExceptionHandler;
MyUncaughtExceptionHandler() {
mDefaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
}
@Override
public void uncaughtException(Thread aThread, Throwable aThrowable) {
// do your stuff
mDefaultUncaughtExceptionHandler.uncaughtException(aThread, aThrowable);
}
}
并将其注册在android.app.Application#onCreate
.
@Override
public void onCreate() {
super.onCreate();
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler());
}