作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为我的 Android 应用程序使用产品风格,因为这似乎是一个很大的优势。但是有一件事我没有解决:
比方说,我有一个项目 Planets com.example.planets
我想为每个星球构建一个应用程序:
productFlavors {
mercury {
applicationId "com.example.planets.mercury"
}
venus {
applicationId "com.example.planets.venus"
}
...
}
很多代码是共享的,因此放在 src/main
文件夹中。
我还想在每个应用程序中使用相同的MainActivity
,地球应用程序除外,因为它在这个应用程序中有所不同。如果不在每个其他文件夹中复制非地球版本,我如何才能实现这一点?
我试图“覆盖”上面提到的 MainActivity
文件夹,但没有成功。
提前致谢!
最佳答案
我会建议这样的文件结构
.
└── src
├── earth
│ └── java
│ └── com
│ └── example
│ └── app
│ ├── MainActivity.java // extends Activity + your code
│ └── SomeClass.java
├── main
│ └── java
│ └── com
│ └── example
│ └── app
│ ├── MainBaseActivity.java // extends Activity + your code
│ └── SomeClass.java
├── mercury
│ └── java
│ └── com
│ └── example
│ └── app
│ ├── MainActivity.java // extends MainBaseActivity + empty body
│ └── SomeClass.java
└── venus
└── java
└── com
└── example
└── app
│ ├── MainActivity.java // extends MainBaseActivity + empty body
│ └── SomeClass.java
其中 SomeClass.java
代表您所有的常用类和代码mercury 和 venus 将使用来自“main”的 MainActivity
,而 earth 有它自己指定的。
关于android - Gradle:如何让产品口味从 src/main 继承,除了一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29587699/
我是一名优秀的程序员,十分优秀!