Android动态换肤原理解析及实践
前言: 本文主要讲述如何在项目中,在不重启应用的情况下,实现动态换肤的效果。换肤这块做的比较好的,有网易云音乐,qq等,给用户带来了多样的界面选择和个性化定制。之前看到换肤的效果后对这块也比较好奇,就抽时间研究了下,今天给大家分享解析原理和实践中遇到的问题。 为什么要做动态换肤: 动态换肤可以满足日常产品和运营需求,满足用户个性化界面定制的需求等等。 动态换肤,相比于静态皮肤,可以减小apk大小 皮肤模块独立便于维护 由服务器下发,不需要发版即可实现动态更新 换肤的一般实现思路: 资源打包静态替换方案: 指定资源路径地址,在打包时将对应资源打包进去 build.gradle中进行对应配置 sourceSets{ //测试版本和线上版本用同一套资源 YymTest{ res.srcDirs=["src/Yym/res","src/YymTest/res"] assets.srcDirs=["src/Yym/assets"] } } 这种方式是在打包时,通过指定资源文件的路径在编译打包时将对应的资源打包进去,以实现不同的主题样式等换肤需求。适合发布马甲版本的app需求。 动态换肤方案: 应...





