[英]Android Flavors :Applying only flavor specific code to a source set
我在源代码集方面遇到了一些麻烦,我有一个包含大部分通用代码的主源代码集,但是之前的开发人员包含了一个构建风格开关,例如:
if (Application.inKiosk) {
navigation.visibility = View.INVISIBLE
val employeeSelectionFragment = EmployeeSelectionFragment()
employeeSelectionFragment.setAllList(employees)
employeeSelectionFragment.setCallback(employeeSelected)
supportFragmentManager.beginTransaction().add(R.id.small_container, employeeSelectionFragment, "EmployeeSelectionFragment").commitNow()
currentTimeRecord = TimeRecord()
} else {
setupTimeRecords(employees!!.first()!!.id, savedInstanceState == null)
}
我想提取此特定于风味的块并将其包含在其自己的源集文件夹中。 我无法访问公共成员,例如导航。 我将如何提取此部分?
navigation.visibility = View.INVISIBLE
val employeeSelectionFragment = EmployeeSelectionFragment()
employeeSelectionFragment.setAllList(employees)
employeeSelectionFragment.setCallback(employeeSelected)
supportFragmentManager.beginTransaction().add(R.id.small_container, employeeSelectionFragment, "EmployeeSelectionFragment").commitNow()
currentTimeRecord = TimeRecord()
在产品风味之间拆分代码的基本方法是:
在一个维度中设置 2+ 种口味
为每种口味创建源集( src/flavorOne/
, src/flavorTwo/
)
在这两种风格中定义一些类
让该类实现提供您正在寻找的每种风格功能的函数(例如,一种风格中的setupTimeRecords()
,另一种风格中的亭内代码)
让您的main
源集使用该类并调用该函数
Gradle 将从风味的源集中为您正在构建的任何构建变体引入类的实现,这就是main
代码将在该构建中使用的实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.