Lewa乐蛙
1.直接读取外部文件
特点:
用户选择菜单
解析引擎
缺点:
无法为系统和其他app换肤
适合app级别的换肤
2.通过packageManager
特点:
getResourcesForApplications(String)
主题包即apk包,自动解析资源;
手动管理,可控换肤
缺点:
无法为系统和其他app换肤
适合app级别的换肤
3.重定义资源ID
特点
getResourcesForApplication(String)
0x01->0x09...
主题包即apk包,自动解析资源
自动管理,自动换肤
可以为系统和app换肤;
缺点
资源ID变化和资源缺失
所以为系统换肤还是存在问题
4.重定义资源包路径
特点
getResourcesForApplication(String)
AssetManager.addAssetPath(String)
主题包即apk包,自动解析资源
自动管理,自动换肤
可以为系统和app换肤
缺点
资源包缺少时解决麻烦
5.重定义资源文件路径
特点
对每个资源文件路径进行重定向
主题包格式灵活,手动/自动解析资源
自动管理,自动换肤
可以为系统和app换肤
资源缺少时解决简单
缺点
不支持reference类型
不支持多值式属性,如arrarys,styles
不支持layout
更改Resources类
getText
getValue
obtainAttribute
openRawResource
Lewa主题包简介
zip包格式,是各个app局部项的集合
图片字体壁纸音效开关机动画
其他资源以app为组织单元,Zip格式
-Drawable的架构与App保持一致,为方便打包;
-dimen,string,color等其他值在theme_values.xml定义