summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2017-08-31 11:50:51 +0200
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2017-08-31 12:49:13 +0200
commit66518ead516e90d606e87c6ce58ec11fea6d172e (patch)
treeac8f7a5013665de3d7cba060534cf5e182c113db /android
parente19100212c41f1b992f6e893ba525612e652d0c5 (diff)
use extractNativeLibs="false" for less disk usage and faster installation
no need to extract the (huge) nativve lib to the device's filesystem on newer android versions (Marshmallow and later) - can access the .so from within the apk if it is uncompressed. While the standalone apk will be larger, the delta-update mechanism of playstore can be more efficient, so you get: * faster installation (since the file doesn't need to be extracted) * less disk usage on device (for same reason) * smaller delta-updates for playstore drawbacks * larger standalone apk * on older android version more storage needed (the increased size of the standalone apk), as those will still extract the native-lib Unfortunately uncompressed it exceeds the current maximum size for single apk files in playstore (100MB), so cannot use for release-builds also revive installLocation attribute to allow installation on external storage and move from manifestPlaceholders from defaultConfig to release buildType (as otherwise gradle complains about having "Multiple entries with same key") Change-Id: Id07ac9c144886bb89abaf7b5b4bc7bd548f27247
Diffstat (limited to 'android')
-rw-r--r--android/source/AndroidManifest.xml2
-rw-r--r--android/source/build.gradle8
2 files changed, 8 insertions, 2 deletions
diff --git a/android/source/AndroidManifest.xml b/android/source/AndroidManifest.xml
index 037363163041..54ab1d4ba7c0 100644
--- a/android/source/AndroidManifest.xml
+++ b/android/source/AndroidManifest.xml
@@ -12,7 +12,9 @@
<application
android:name=".LibreOfficeApplication"
android:allowBackup="true"
+ android:extractNativeLibs="${extractNativeLibs}"
android:icon="@mipmap/ic_launcher"
+ android:installLocation="${installLocation}"
android:label="@string/app_name"
android:theme="@style/LibreOfficeTheme"
android:debuggable="true"
diff --git a/android/source/build.gradle b/android/source/build.gradle
index 92c6680f464a..1421f000de23 100644
--- a/android/source/build.gradle
+++ b/android/source/build.gradle
@@ -64,7 +64,6 @@ android {
// 22 treats them as warnings, on 23 it is fatal error
// ToDo: fix openssl stuff to not block targeting 23 or later
targetSdkVersion 22
- manifestPlaceholders = [installLocation: "preferExternal"]
vectorDrawables.useSupportLibrary = true
}
buildTypes {
@@ -72,7 +71,12 @@ android {
// make android studio happy...
jniDebuggable true
// would work just fine with external, but setting emulator up is a little more work
- manifestPlaceholders = [installLocation: "internalOnly"]
+ manifestPlaceholders = [installLocation: "auto", extractNativeLibs: "false"]
+ }
+ release {
+ // need to extract native libs (allow to compress them in apk), since otherwise would
+ // exceed maximum size for playstore
+ manifestPlaceholders = [installLocation: "preferExternal", extractNativeLibs: "true"]
}
}
productFlavors {