崩溃后重启原生应用



在android 4.4及以下,谁在启动时加载一个本地应用程序(/system/bin/*),我认为文件init。Rc负责,对吗?

如果本地应用程序崩溃(例如/system/bin/mediaserver),它会自动重启,那么问题是:谁负责应用程序的重启?有文件吗?

ActivityManagerService重启原生应用。

当应用程序由activity manager service重新启动时,在正常日志和/或事件日志

logcat通常会有一些喋喋啾
(logcat -b events).

更多信息:

如果你看到activitymanagerservice . finishforcestoppackagellocking()方法的代码,这个方法会触发一个动作为Intent.ACTION_PACKAGE_RESTARTED的Intent。

可以从各种方法中调用,比如
ActivityManagerService.forceStopPackage ()
IPackageDataObserveronRemoveCompleted.onRemoveCompleted ()

所以内部有一个PackageDataObserverActivityManagerService中实现,它观察是否有任何包被删除,如果它需要重新启动,一个意图被触发动作Intent.ACTION_PACKAGE_RESTARTED

使用ActivityManagerService.forceStopPackage()强制关闭每个包,它知道重启哪个包。

希望能消除疑虑。

相关内容

  • 没有找到相关文章

最新更新