问题描述
有一个 Android 应用,它有几种不同的构建类型:release,debug,amazon,facebook
。和口味:staging,prod
和构建变体是:
stagingrelease,stagingDebug,stagingAmazon,stagingFacebook
,
prodRelease,prodDebug,prodamazon,prodFacebook
,
android {
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
debug {
debuggable true
}
amazon {
debuggable true
}
facebook {
debuggable true
}
}
}
flavorDimensions "dimens"
productFlavors{
stage {
dimension "dimens"
}
prod {
dimension "dimens"
}
}
还有一个 optionalClass 接口,该接口具有仅用于暂存构建的真实代码实现,以及用于生产构建的存根版本。
public interface OptionalVerifies {
@Nullable
void doVerify(Context context);
}
// the one for staging builds (having real code implementation)
import com.facebook.stetho.okhttp3.StethoInterceptor;
public OptionalVerifiesImpl implements OptionalVerifies {
private Interceptor stethoInterceptor = null;
@Override
public void doVerify(Context context) {
// code to do verify
... ...
}
}
// the one for prod (has empty function implementation)
public OptionalVerifiesImpl implements OptionalVerifies {
@Override
public void doVerify(Context context) {//stub only,do nothing}
}
有一个 main\src\java\someClass.java
(将用于所有变体构建),它将具有调用 OptionalVerifies
中定义的接口函数的代码
class someClass {
public void function {
...
OptionalVerifies verifyObj = new OptionalVerifiesImpl();
// which is ether a real function implementation or just a stub,that is depend on whether it is in prod or stage variant build
verifyObj.doVerify(context);
...
}
}
项目文件夹是:
app
\src
\main
\res
\java\com\pk
\other classes ...
\someClass.java
\OptionalVerifies.java
\amazon
\res
\facebook
\res
\debug
\res
\release
\res
因此构建类型共享的公共代码:release,facebook
位于文件夹 app/src/main/
中。
现在,因为有一个 OptionalVerifiesImpl.java
在用于暂存变体构建的 doVerify(Context context)
中有真实代码,而另一个 OptionalVerifiesImpl.java
只是存根,在 {{1} 中没有实现} 用于生产变体构建。
所以问题是:
真正实现的doVerify(Context context)
应该放在哪里/哪个文件夹中?
以及存根 OptionalVerifiesImpl.java
应放在何处,以便在制作阶段变体时构建 OptionalVerifiesImpl.java
并使用代码实现构建,而在制作 prod 变体时构建 OptionalVerifiesImpl.java
中的存根之一{1}} 将使用?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)