1.概述
在12.0的系统产品开发中,对于一些安装app的失败问题,需要看日志 和抛出异常来判断问题所在,在最近的一些app安装失败抛出了关于Presistent app安装失败的问题,就需要从PMS安装的过程中看异常抛出的原因解决问题所在
2.手动安装Persistent app失败的解决方案的核心类
frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
3.手动安装Persistent app失败的解决方案的核心功能分析和实现
在系统中对于安装app的相关功能都是在PMS的preparePackageLI(InstallArgs args, PackageInstalledInfo res)中进行安装处理的,
接下来分析下相关安装Persistent类型app实现的相关功能
@GuardedBy("mInstallLock")
private PrepareResult preparePackageLI(InstallArgs args, PackageInstalledInfo res)
throws PrepareFailure {
final int installFlags = args.installFlags;
final File tmpPackageFile = new File(args.getCodePath());
final boolean onExternal = args.volumeUuid != null;
final boolean instantApp = ((installFlags & Pa