Android 是否可以在不使用内容提供商的情况下访问另一个APK中的资源?
我认为除非使用内容提供者,否则不可能访问其他APK中包含的资源。然而,我偶然发现了一款名为BetterKeyboard的应用程序。它使用皮肤,所以我决定下载一个皮肤的例子 我真的很惊讶。它几乎不包含代码,只声明一个活动,没有内容提供者。除非它包含资源,而且如果安装了带有皮肤的APK,显然可以通过更好的键盘应用程序访问这些资源。那么它是如何做到的呢?试试这个Android 是否可以在不使用内容提供商的情况下访问另一个APK中的资源?,android,android-contentprovider,Android,Android Contentprovider,我认为除非使用内容提供者,否则不可能访问其他APK中包含的资源。然而,我偶然发现了一款名为BetterKeyboard的应用程序。它使用皮肤,所以我决定下载一个皮肤的例子 我真的很惊讶。它几乎不包含代码,只声明一个活动,没有内容提供者。除非它包含资源,而且如果安装了带有皮肤的APK,显然可以通过更好的键盘应用程序访问这些资源。那么它是如何做到的呢?试试这个 PathClassLoader loader = new PathClassLoader ("/data/app/com.skin.a
PathClassLoader loader =
new PathClassLoader ("/data/app/com.skin.apk", null,PathClassLoader.getSystemClassLoader());
InputStream f = loader.getResourceAsStream("res/drawable/icon.png");
Bitmap bitmap=BitmapFactory.decodeStream(f);
BitmapDrawable b=new BitmapDrawable(bitmap);
mButton.setBackgroundDrawable(b);
我相信你在找我
Resources res=mPackageManager.getResourcesForApplication(“org.example.foo”)代码>
使用getResourcesforApplication
是可能的,您需要res.getidentifier
来检索资源Id。但是,在检索样式资源时,它似乎不起作用