Android 风味:仅将风味特定代码应用于源集
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/
)
在这两种风格中定义一些 class
让 class 实现提供您正在寻找的每种口味功能的功能(例如,setupTimeRecords()
在一种口味中,自助服务亭内的代码在其他口味)
让您的 main
源集使用那个 class 并调用那个函数
Gradle 将从风格的源集中为您正在构建的任何构建变体引入 class 的实现,这就是 main
代码将使用的实现在那个版本中。
我 运行 在源代码集方面遇到了一些麻烦,我有一个包含大部分常用代码的主源代码集,但是之前的开发人员包含了构建风格开关,例如:
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/
)在这两种风格中定义一些 class
让 class 实现提供您正在寻找的每种口味功能的功能(例如,
setupTimeRecords()
在一种口味中,自助服务亭内的代码在其他口味)让您的
main
源集使用那个 class 并调用那个函数
Gradle 将从风格的源集中为您正在构建的任何构建变体引入 class 的实现,这就是 main
代码将使用的实现在那个版本中。