需求
同”Git技巧–自动Merge逻辑(.gitattribute配置)”,为了生成多个逻辑一致但resource有些许差别的系列apps。利用original-package能够在不更改源码结构的条件下更改项目包名。
属性介绍
关于的original-package标签的资料大多如出一辙,这里简单讲讲我的看法。
AndroidManifest中的
使用方法
知道以上这些就足够,例如我这里有开发好的原app–“test”。这时需要发布的新的一套resouce的app–“other_test”,他们的package分别为“test”和“other_test”。使用Git版本控制,只需要从我们原分支test上拉一条新分支(或者从master),然后将其package标签更名为other_test(可利用全局替换replace in path)。此时项目肯定会因为R文件丢失而报错,因为包名和源码路径已经不一致,这时我们在新项目的Manifest文件中手工添加original-package标签,如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.other_test">
<original-package android:name="com.test"/>
...
</manifest>
由于R文件的生成只依赖于package标签的值,利用全局替换将import com.test.R
修改为 import com.other_test.R
。此时两个branch代码结构一致,依赖于original-package所指向的com.test路径,但分明是两个app。后期做任何逻辑上的修改,都可以任意在master上操作,最后merge到其他两个分支即可。