IOT-582 Android build generate universal APK 31/23231/6
authorGeorge Nash <george.nash@intel.com>
Wed, 15 Nov 2017 21:14:13 +0000 (13:14 -0800)
committerRick Bell <richard.s.bell@intel.com>
Mon, 18 Dec 2017 17:49:50 +0000 (17:49 +0000)
Two major modifications:
1) The aar file no longer adds the TARGET_ARCH to the
name of the file. The aar file contains all of the
architectures that were built upto that point. This
has been the case for quite a while so the architecture
in the name only indicated the build that created the
aar file not the contents of the aar file.

2) When APK files are built it will try to build all
possible architectures as well as the universal APK
file.

Bug: https://jira.iotivity.org/browse/IOT-582
Change-Id: I11f5db9f4cb8c634afe4417b280e5feec6c3d7e9
Signed-off-by: George Nash <george.nash@intel.com>
28 files changed:
auto_build.py
java/examples-android/cloudprovisioningclient/build.gradle
java/examples-android/devicediscoveryclient/build.gradle
java/examples-android/devicediscoveryserver/build.gradle
java/examples-android/fridgeclient/build.gradle
java/examples-android/fridgegroupclient/build.gradle
java/examples-android/fridgegroupserver/build.gradle
java/examples-android/fridgeserver/build.gradle
java/examples-android/groupclient/build.gradle
java/examples-android/groupserver/build.gradle
java/examples-android/presenceclient/build.gradle
java/examples-android/presenceserver/build.gradle
java/examples-android/provisioningclient/build.gradle
java/examples-android/simplebase/build.gradle
java/examples-android/simpleclient/build.gradle
java/examples-android/simpleserver/build.gradle
java/iotivity-android/build.gradle
service/easy-setup/mediator/richsdk/android/EasySetupCore/build.gradle
service/easy-setup/sampleapp/mediator/android/EasySetup/app/build.gradle
service/notification/android/notification-service/build.gradle
service/notification/examples/android/NotiConsumerExample/app/build.gradle
service/notification/examples/android/NotiProviderExample/app/build.gradle
service/resource-container/android/resource-container/build.gradle
service/resource-container/examples/android/RCSampleClientApp/app/build.gradle
service/resource-container/examples/android/RCSampleServerApp/app/build.gradle
service/resource-encapsulation/android/service/build.gradle
service/resource-encapsulation/examples/android/RESampleClientApp/app/build.gradle
service/resource-encapsulation/examples/android/RESampleServerApp/app/build.gradle

index 56e54f8..be19076 100755 (executable)
@@ -196,6 +196,58 @@ def build_android(flag, extra_option_str):
                     }
     call_scons(build_options, extra_option_str)
 
+def build_android_universal(flag, extra_option_str):
+    print('''
+*******************************************************************************
+    Starting Android Universal build
+    This Will take a very long time to complete. It will build the android
+    build for the following architectures.
+       - armeabi
+       - armeabi-v7a
+       - arm64-v8a
+       - x86
+       - x86_64
+    If you do not need to build a universal APK or you can target a specific
+    architecture we recommend you build android for that specific target. 
+*******************************************************************************
+''')
+    print ("*********** Build for android armeabi *************")
+    build_options = {
+                        'TARGET_OS':'android',
+                        'TARGET_ARCH':'armeabi',
+                        'RELEASE':flag,
+                    }
+    call_scons(build_options, extra_option_str)
+    print ("*********** Build for android x86 *************")
+    build_options = {
+                        'TARGET_OS':'android',
+                        'TARGET_ARCH':'x86',
+                        'RELEASE':flag,
+                    }
+    call_scons(build_options, extra_option_str)
+    print ("*********** Build for android armeabi-v7a *************")
+    build_options = {
+                        'TARGET_OS':'android',
+                        'TARGET_ARCH':'armeabi-v7a',
+                        'RELEASE':flag,
+                    }
+    call_scons(build_options, extra_option_str)
+    print ("*********** Build for android x86_64 *************")
+    build_options = {
+                        'TARGET_OS':'android',
+                        'TARGET_ARCH':'x86_64',
+                        'RELEASE':flag,
+                    }
+    call_scons(build_options, extra_option_str)
+    print ("*********** Build for android arm64-v8a *************")
+    build_options = {
+                        'TARGET_OS':'android',
+                        'TARGET_ARCH':'arm64-v8a',
+                        'RELEASE':flag,
+                    }
+    call_scons(build_options, extra_option_str)
+    print ("*********** Finishing Android universal build *************")
+
 def build_android_secured(flag, extra_option_str):
     build_android(flag, extra_option_str + " SECURED=1")
 
@@ -605,6 +657,14 @@ elif arg_num == 2:
         build_android("true", "")
         build_android("false", "")
 
+    elif str(sys.argv[1]) == "android_universal":
+        # only build the release version due to long amount of time to build.
+        build_android_universal("true", "")
+
+    elif str(sys.argv[1]) == "android_universal_unsecured":
+        # only build the release version due to long amount of time to build.
+        build_android_universal("true", "SECURED=0")
+
     elif str(sys.argv[1]) == "android_unsecured":
         build_android_unsecured("true", "")
         build_android_unsecured("false", "")
index 3aca328..44cea9f 100755 (executable)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index cc18c5b..7b36818 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index dc14408..f343afb 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index 1966fa1..a57ad58 100755 (executable)
@@ -19,6 +19,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -27,7 +47,7 @@ repositories {
 }
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index 608f5e7..35e1934 100755 (executable)
@@ -19,6 +19,26 @@ android {
     lintOptions {\r
         abortOnError false\r
     }\r
+\r
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]\r
+\r
+    applicationVariants.all { variant ->\r
+        // assign different version code for each output\r
+        variant.outputs.each { output ->\r
+            output.versionCodeOverride =\r
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),\r
+                            0) * 1000000 + defaultConfig.versionCode\r
+        }\r
+    }\r
+\r
+    splits {\r
+        abi {\r
+            enable true\r
+            reset()\r
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'\r
+            universalApk true\r
+        }\r
+    }\r
 }\r
 repositories {\r
     flatDir {\r
@@ -27,7 +47,7 @@ repositories {
 }\r
 try {\r
     dependencies {\r
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"\r
+        compile ":iotivity-base-${RELEASE}@aar"\r
     }\r
 } catch (all) {\r
     print "${ERROR_MSG}"\r
index a7d1da6..713b4fe 100755 (executable)
@@ -19,6 +19,26 @@ android {
     lintOptions {\r
         abortOnError false\r
     }\r
+\r
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]\r
+\r
+    applicationVariants.all { variant ->\r
+        // assign different version code for each output\r
+        variant.outputs.each { output ->\r
+            output.versionCodeOverride =\r
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),\r
+                            0) * 1000000 + defaultConfig.versionCode\r
+        }\r
+    }\r
+\r
+    splits {\r
+        abi {\r
+            enable true\r
+            reset()\r
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'\r
+            universalApk true\r
+        }\r
+    }\r
 }\r
 repositories {\r
     flatDir {\r
@@ -27,7 +47,7 @@ repositories {
 }\r
 try {\r
     dependencies {\r
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"\r
+        compile ":iotivity-base-${RELEASE}@aar"\r
     }\r
 } catch (all) {\r
     print "${ERROR_MSG}"\r
index db51c26..c9a4adb 100755 (executable)
@@ -19,6 +19,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -27,7 +47,7 @@ repositories {
 }
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index ac9d344..6b4769b 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index d21c713..0f35a4a 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index 7169b9b..83baf06 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index 18e8668..a47143b 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index ca87673..ef33206 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {\r
         abortOnError false\r
     }\r
+\r
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]\r
+\r
+    applicationVariants.all { variant ->\r
+        // assign different version code for each output\r
+        variant.outputs.each { output ->\r
+            output.versionCodeOverride =\r
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),\r
+                            0) * 1000000 + defaultConfig.versionCode\r
+        }\r
+    }\r
+\r
+    splits {\r
+        abi {\r
+            enable true\r
+            reset()\r
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'\r
+            universalApk true\r
+        }\r
+    }\r
 }\r
 repositories {\r
     flatDir {\r
@@ -29,7 +49,7 @@ repositories {
 \r
 try {\r
     dependencies {\r
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"\r
+        compile ":iotivity-base-${RELEASE}@aar"\r
     }\r
 } catch (all) {\r
     print "${ERROR_MSG}"\r
index a7d3b2d..9965af7 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -30,7 +50,7 @@ repositories {
 try {
     dependencies {
         compile files('libs/android-support-v4.jar')
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index ea6d5be..09980db 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index fec6de8..f022f9f 100644 (file)
@@ -20,6 +20,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -29,7 +49,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
     }
 } catch (all) {
     print "${ERROR_MSG}"
index 21d7fb3..61c8cfb 100755 (executable)
@@ -63,7 +63,7 @@ android {
         variant.outputs.each { output ->\r
             def outputFile = output.outputFile\r
             if (outputFile != null && outputFile.name.endsWith('.aar')) {\r
-                def fileName = "${archivesBaseName}-${TARGET_ARCH}-${RELEASE}.aar"\r
+                def fileName = "${archivesBaseName}-${RELEASE}.aar"\r
                 output.outputFile = new File(outputFile.parent, fileName)\r
             }\r
         }\r
index 23ed48a..3ba8419 100644 (file)
@@ -19,7 +19,7 @@ android {
     defaultConfig {
         minSdkVersion 21
         targetSdkVersion 21
-       versionCode 1
+        versionCode 1
         versionName "1.0"
     }
 
@@ -35,12 +35,12 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
         }
     }
-    
+
     lintOptions {
        abortOnError false
     }
     sourceSets {
-       main {
+        main {
             manifest.srcFile 'src/main/AndroidManifest.xml'
             jni.srcDirs = [] //disable automatic ndk-build call
             jniLibs.srcDir new File(buildDir, 'native-libs')
@@ -50,7 +50,7 @@ android {
 }
 
 dependencies {
-    compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+    compile ":iotivity-base-${RELEASE}@aar"
     androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'
     androidTestCompile 'com.google.dexmaker:dexmaker:1.0'
     androidTestCompile 'org.mockito:mockito-core:1.10.19'
index 80c311e..4134ea5 100644 (file)
@@ -40,6 +40,26 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 repositories {
     flatDir {
@@ -49,7 +69,7 @@ repositories {
 
 try {
     dependencies {
-        compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+        compile ":iotivity-base-${RELEASE}@aar"
         compile ":EasySetupCore-${RELEASE}@aar"
     }
 } catch (all) {
index 1ca367c..0cb6b65 100644 (file)
@@ -29,7 +29,7 @@ android {
         variant.outputs.each { output ->
             def outputFile = output.outputFile
             if (outputFile != null && outputFile.name.endsWith('.aar')) {
-                def fileName = "${archivesBaseName}-${TARGET_ARCH}-${outputFile.name}"
+                def fileName = "${archivesBaseName}-${outputFile.name}"
                 output.outputFile = new File(outputFile.parent, fileName)
             }
         }
@@ -41,7 +41,7 @@ android {
         versionCode 1
         versionName "1.0"
     }
-    repositories {        
+    repositories {
         flatDir {
             dirs '../../../../java/iotivity-android/build/outputs/aar', '../../../../../java/iotivity-android/build/outputs/aar' 
         }
@@ -69,7 +69,7 @@ android {
 
 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
-    compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
+    compile ":iotivity-base-${RELEASE}@aar"
     androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'
     androidTestCompile 'com.google.dexmaker:dexmaker:1.0'
     androidTestCompile 'org.mockito:mockito-core:1.10.19'
index fce4bbe..f20e784 100755 (executable)
@@ -33,10 +33,30 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 
 dependencies {
     compile fileTree(include: ['*.jar'], dir: 'libs')
-    compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
-    compile ":iotivity-${TARGET_ARCH}-notification-service-${RELEASE}@aar"
+    compile ":iotivity-base-${RELEASE}@aar"
+    compile ":iotivity-notification-service-${RELEASE}@aar"
 }
index 2e2ba50..194d3e9 100755 (executable)
@@ -33,10 +33,30 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 
 dependencies {
     compile fileTree(include: ['*.jar'], dir: 'libs')
-    compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
-    compile ":iotivity-${TARGET_ARCH}-notification-service-${RELEASE}@aar"
+    compile ":iotivity-base-${RELEASE}@aar"
+    compile ":iotivity-notification-service-${RELEASE}@aar"
 }
index d466538..32f5083 100644 (file)
@@ -33,7 +33,7 @@ android {
         variant.outputs.each { output ->
             def outputFile = output.outputFile
             if (outputFile != null && outputFile.name.endsWith('.aar')) {
-                def fileName = "${archivesBaseName}-${TARGET_ARCH}-${outputFile.name}"
+                def fileName = "${archivesBaseName}-${outputFile.name}"
                 output.outputFile = new File(outputFile.parent, fileName)
             }
         }
index 5d58224..586ec65 100644 (file)
@@ -17,6 +17,26 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 
 dependencies {
index 8a0f06d..af2f22d 100755 (executable)
@@ -24,6 +24,26 @@ android {
         exclude 'lib/armeabi-v7a/librcs_server.so'
     }*/
 
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
+
 }
 
 dependencies {
index 50c7205..226683b 100644 (file)
@@ -29,7 +29,7 @@ android {
         variant.outputs.each { output ->
             def outputFile = output.outputFile
             if (outputFile != null && outputFile.name.endsWith('.aar')) {
-                def fileName = "${archivesBaseName}-${TARGET_ARCH}-${outputFile.name}"
+                def fileName = "${archivesBaseName}-${outputFile.name}"
                 output.outputFile = new File(outputFile.parent, fileName)
             }
         }
index 765b132..a71b1a7 100644 (file)
@@ -29,11 +29,31 @@ android {
     lintOptions {
         abortOnError false
     }
+
+    project.ext.versionCodes = ['armeabi':1, 'armeabi-v7a':2, 'arm64-v8a':3, 'x86':4, 'x86_64':5]
+
+    applicationVariants.all { variant ->
+        // assign different version code for each output
+        variant.outputs.each { output ->
+            output.versionCodeOverride =
+                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI),
+                            0) * 1000000 + defaultConfig.versionCode
+        }
+    }
+
+    splits {
+        abi {
+            enable true
+            reset()
+            include 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
+            universalApk true
+        }
+    }
 }
 
 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
 
-    compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
-    compile ":iotivity-${TARGET_ARCH}-service-${RELEASE}@aar"
+    compile ":iotivity-base-${RELEASE}@aar"
+    compile ":iotivity-service-${RELEASE}@aar"
 }
index a7edd4d..7d7fe02 100644 (file)
@@ -34,6 +34,6 @@ android {
 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
 
-    compile ":iotivity-base-${TARGET_ARCH}-${RELEASE}@aar"
-    compile ":iotivity-${TARGET_ARCH}-service-${RELEASE}@aar"
+    compile ":iotivity-base-${RELEASE}@aar"
+    compile ":iotivity-service-${RELEASE}@aar"
 }