build.gradle 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. apply plugin: 'com.android.library'
  2. apply from: 'lebian_cust.gradle'
  3. if (rootProject.extensions.getByName('ext').properties.containsKey('lebian_internal_only')) {
  4. if (rootProject.extensions.getByName('ext').properties.get('lebian_internal_only')) {
  5. println("[LEBIAN] lebian_internal_only true")
  6. apply from: 'internal_use_only'
  7. }
  8. }
  9. boolean enable_regeng = getValueFromSettings("use_regeng").toBoolean()
  10. boolean enable_fenbao = getValueFromSettings("use_streaming").toBoolean()
  11. boolean enable_handle_assetmanager = getValueFromSettings("streaming_handle_assetmanager").toBoolean()
  12. int selected_area = getValueFromSettings("selected_area").toInteger()
  13. android {
  14. compileSdkVersion 26
  15. buildToolsVersion "27.0.3"
  16. defaultConfig {
  17. println "[LEBIAN] cust cfg=[enable_fenbao=${enable_fenbao}, enable_handle_assetmanager=${enable_handle_assetmanager}, enable_regeng=${enable_regeng}]"
  18. minSdkVersion 8
  19. targetSdkVersion 26
  20. manifestPlaceholders = [
  21. "MainChId": lebian.meta_MainChId,
  22. "ClientChId": lebian.meta_ClientChId,
  23. "LBCloudId": lebian.meta_LBCloudId,
  24. "LEBIAN_SECID": lebian.meta_LEBIAN_SECID,
  25. "LEBIAN_APPLICATION": 'com.excelliance.open.LBApplication',
  26. "screenOrientation": lebian.screenOrientation,
  27. "lb_target_pkgname": (lebian.packageName ? lebian.packageName :'${applicationId}'),
  28. "lb_task_Affinity": (lebian.taskAffinity ? lebian.taskAffinity :'${applicationId}')
  29. ]
  30. }
  31. lintOptions {
  32. checkReleaseBuilds false
  33. abortOnError false
  34. }
  35. buildTypes {
  36. debug {
  37. minifyEnabled false
  38. proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard-rules.pro"
  39. }
  40. release {
  41. minifyEnabled false
  42. proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard-rules.pro"
  43. }
  44. }
  45. sourceSets {
  46. main {
  47. if (enable_fenbao && enable_regeng) {
  48. manifest.srcFile 'src/regeng/AndroidManifest.xml'
  49. if (enable_handle_assetmanager) {
  50. assets.srcDirs += 'src/fenbao-am-with-regeng/assets'
  51. } else {
  52. assets.srcDirs += 'src/fenbao-with-regeng/assets'
  53. }
  54. } else if (enable_regeng) {
  55. manifest.srcFile 'src/regeng/AndroidManifest.xml'
  56. assets.srcDirs += 'src/regeng/assets'
  57. } else if (enable_fenbao) {
  58. if (enable_handle_assetmanager) {
  59. assets.srcDirs += 'src/fenbao-am-lite/assets'
  60. } else {
  61. assets.srcDirs += 'src/fenbao-lite/assets'
  62. }
  63. }
  64. }
  65. }
  66. }
  67. afterEvaluate {
  68. if (!project.file('libs/lebianbase.jar').exists()) {
  69. tasks.getByName('preBuild').dependsOn(':sdkapk:buildBase')
  70. }
  71. println "[LEBIAN] selected_area=${selected_area}"
  72. if (selected_area != 0) {
  73. removePermission()
  74. }
  75. }
  76. dependencies {
  77. api fileTree(include: ['*.jar'], dir: 'libs')
  78. }
  79. def getValueFromSettings(taget) {
  80. def ret
  81. def xmlFile = "${rootDir}/lebian/src/main/assets/lebian/globalSettings.xml"
  82. def xmlParser = new groovy.util.XmlParser()
  83. def result = xmlParser.parse(xmlFile)
  84. result.setting.each {
  85. def key = it.attributes().get("key")
  86. if (key == taget) {
  87. ret = it.attributes().get("value")
  88. println ret
  89. }
  90. }
  91. return ret
  92. }
  93. def removePermission() {
  94. def file = new File(project.projectDir, "/src/main/AndroidManifest.xml")
  95. def manifestContent = file.getText()
  96. manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.WAKE_LOCK" />', '')
  97. file.write(manifestContent, "UTF-8")
  98. file = new File(project.projectDir, "/src/regeng/AndroidManifest.xml")
  99. manifestContent = file.getText()
  100. manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.WAKE_LOCK" />', '')
  101. file.write(manifestContent, "UTF-8")
  102. }