Context有一个方法,可以创建其它程序的Context,通过创建的这个Context,就可以访问该软件包的资源,甚至可以执行其它软件包的代码,注意两个app中android:shareUserId=""和签名必须相同。
两个或者多个声明了同一种sharedUserid的APK可共享彼此的数据,并且可运行在同一进程中。
通过声明特定的sharedUserId,该APK所在的进程将被赋予指定UID
createPackageContext
try {
Context context = mContext.createPackageContext(packageName,
Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
resource = new LoadedResource();
resource.packageName = packageName;
resource.resources = context.getResources();
} catch (Exception e) {
e.printStackTrace();
}
用途:
把需要替换的资源,放在一个空的android 应用程序的drawable-**目录下面即可,编译,运行该apk,查找资源时,就需要用到createPackageContext获取对应包名的Context实例,然后通过context来查找对应的资源
网友评论