原理:主程序与主题apk使用相同的sharedUserId, 使得主程序可以访问主题apk包中的资源
主程序:MainSkin.apk
主题包:SkinTest1.apk, SkinTest2.apk
MainSkin实现一个activity来加载SkinTest1或SkinTest2中的资源,给自己设置不同主题的背景图片和按钮图片
MainSkin的AndroidManifest.xml如下:
MainSkin的Acitivity定义:
同时MainSkin中需要放一套默认图片资源
主题包中不需要代码,只需要资源文件和在manifest里面声明和主程序MainSkin使用相同的sharedUserId即可,
在这两个主题包中分别放了两套不同的图片,每套图包括一张activity背景图和一张button背景图
如SkinTest1的AndroidManifest.xml内容如下:
显示效果: