Android基础:禁用apk流程

image.png

禁用apk流程,在我们需要禁用一个apk时,我们会调用PackageManager的setApplicationEnabledSetting方法。下面分析其源码流程。

设置流程:

PackageManagerService.setApplicationEnabledSetting
PackageManagerService.setEnabledSetting
PackageSetting.setEnabled
PackageUserState.enabled 最后修改了PackageUserState状态

当我们启动一个禁用应用的activity时
adb shell am start -n com.ex.ex/.ablc.mm
会经过下面路径被拦截
调用流程:

ActivityManagerShellCommand.runStartActivity
ActivityManagerService.startActivityAsUser
ActivityStarter.startActivityMayWait
ActivityStackSupervisor.resolveIntent
PackageManagerService.resolveIntent
PackageManagerService.resolveIntentInternal
PackageManagerService.resolveIntentInternal
PackageManagerService.queryIntentActivitiesInternal
PackageManagerService.getActivityInfo
PackageManagerService.getActivityInfoInternal
Settings.isEnabledAndMatchLPr  //这里判断被禁用了,然后不启动
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容