之前在做Android ROM开发时,有一些需求,比如美洲国家的Camera APP,桌面图标需要定制为美洲特色,相机按钮需要定制为美洲特色等等。
在Android源码中,我们经常使用overlay机制,进行资源的覆盖。
Android Overlay是一种资源替换机制,它能在不重新打包apk的情况下,实现资源文件的替换(res目录非assert目录),
Overlay又分为静态Overlay(Static Resource Overlay)与运行时Overlay(Runtime Resource Overlay)。
这篇文章对于overlay机制的介绍比较详细:https://www.jianshu.com/p/9304089c513d
目前我们APP,直接在Android Studio中开发,同时需要对不同渠道进行定制,比如针对美洲市场的图标进行定制。
这就对我们的overlay机制提出了新的要求。由于APP代码是在Android Studio中直接进行调试,如果使用Android 源码中的Overlay,会导致代码的编译验证仍然需要到源码中去进行,失去了AndroidStudio代码调试的优势。
为解决这个问题,我们专门去研究了Android Studio的Overlay机制。
针对这种定制化的需求,我首先想到的是新建一个分支,在独立分支上面进行代码的定制开发。
缺点:
1.这样相当于需要维护两个项目,而且随着定制渠道的增多,需要维护的项目会大幅度增加,不符合我们的要求。