2016-05-12 139 views
3

是否有可能在后台运行应用程序并侦听其他应用程序在设备上崩溃的应用程序?
我希望我的应用在检测到我在设备上使用的应用崩溃或停止时通知我的计算机。如果是的话,它也需要听取吗?Android应用程序侦听设备上是否有其他应用程序崩溃

+0

不,我不认为这是可能的。 – Karakuri

+0

如果使用Cyanogenmod(可能是根源),请看CM Bug Reporter:https:// github。com/CyanogenMod/android_packages_apps_CMBugreport –

回答

-2

当您上传您的APK在Android开发者控制台,您有任何选项,包括错误的选择,那么当应用程序在某些设备崩溃,他们可以发送报告,你将可以看到它在德控制台...

+0

确实,是否有可能通过Android Studio上的控制台而不是通过另一个应用程序查看应用程序的崩溃?所以我有一个应用程序在我的设备上运行,当它检测到一个错误/崩溃/它通知计算机 – Emil

+0

这是为应用程序本身,而不是其他应用程序 –

+0

@TimCastelijns是的,我能找到那,这就是为什么我发布这和希望我能找到一种方式为其他应用程序:/ – Emil

0

我想你想创建三星的智能应用程序管理器。跟踪所有应用程序的崩溃并显示通知以卸载应用程序或删除。

从Android电子文档:默认情况下,系统分配的每个应用的唯一 Linux的用户ID(ID是该系统仅用于和是未知的 应用程序)。系统为应用程序中的所有文件设置权限,以便仅分配给该应用程序的用户ID可以访问它们。

每个进程都有自己的虚拟机(VM),所以应用程序的代码与其他应用程序隔离运行 。

默认情况下,每个应用程序都在其自己的Linux进程中运行。 Android在启动 时需要执行任何应用程序的组件,然后 关闭不再需要的进程或系统 必须为其他应用程序恢复内存。

每个Android应用程序都与其他应用程序隔离运行。所以任何应用程序都无法跟踪其他应用程序的崩溃日志。

问题是:三星的智能应用程序管理器在做什么。

我认为三星智能应用程序只适用于三星的设备。 执行此类操作需要Root权限。三星的智能应用程序只有三星设备的root权限。

如果您正在开发定制ROM或Rooted android设备的应用程序,那么您可以以其他方式无法完成。

1

一个非常黑客的方法是编写一个监视Logcat的本地二进制文件,使用ADB将可执行文件上传到您的设备并使用shell帐户启动它。请注意,这是而不是的应用程序。

Android shell用户有足够的权限查看所有进程的Logcat并执行网络操作,因此您可以扫描Logcat以获取指示应用程序崩溃的告警消息,然后从Logcat中抽出堆栈跟踪,然后通过本地网络发送到您的PC。

这实际上听起来像一个很酷的想法。可能有一个去建设它自己:-)

+0

非常有趣!让我看看这个。哈哈,如果你能在我之前做到这一点,请让我知道,我只需要它在我的研究实验室进行一个小实验。我的计算机上的服务器正在工作,现在我正在调用这个服务器,我只需要找出一种方法让它在应用程序崩溃时收听......我也知道塔斯克(应用程序)可以做到这一点,但不知道如何它做到了 – Emil