Android 系統源碼中添加功能(如通話錄音),需通過編譯時宏開關控制是否包含,以適配不同客戶需求。
// build.gradle (模塊級)
android {
defaultConfig {
buildConfigField "boolean", "ENABLE_CALL_RECORD", "false"
}
productFlavors {
clientA {
buildConfigField "boolean", "ENABLE_CALL_RECORD", "true"
}
clientB {
buildConfigField "boolean", "ENABLE_CALL_RECORD", "false"
}
}
}
// Java/Kotlin
if (BuildConfig.ENABLE_CALL_RECORD) {
// 啟用錄音功能
startCallRecording();
}
// C/C++ (Android.bp / Android.mk)
// Android.bp
cc_library {
name: "libcallrecord",
cflags: ["-DENABLE_CALL_RECORD=1"],
// 客戶 A 專用編譯
target: {
vendor: {
enabled: true,
cflags: ["-DENABLE_CALL_RECORD=1"],
},
},
}
# 編譯客戶 A 版本
lunch aosp_arm64-userdebug
m clientA
# 編譯客戶 B 版本
m clientB