新的换肤思路

新的换肤思路

前文见Android换肤技术总结

资源注入

把资源放在另一个apk,类似android.jar一样作为基础资源,然后使用aapt联合编译,就可以让主工程像引用android资源一样,引用另一个apk的资源,不过如此一来,需要自己去做资源分区,否则可能会有id冲突。

比如我们平时会直接@android:drawable,@android:anim去直接引用anrdoid资源,现在我们可以加了一个叫做skin的包,那么就可以使用@skin:drawable来引用skin包的资源。要激活其他皮肤的时候,只要换一下包就行了。

相比其他方案,这种改动很小,没有那些各种hack的黑科技。希望有空能自己实现一下。

aapt

关于aapt的修改,可以看看携程的DynamacAPK。

坚持原创技术分享,您的支持将鼓励我继续创作!