aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2018-03-02 17:28:39 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-06 22:52:10 +0000
commitc5cf762177c5708a5efa39f95b086c751e03e2e4 (patch)
tree5c13da69f689b0580001f7906ead9a5f748d3ea1 /platform_tools
parenta82780e09d1f2d7a57901d53700cdb7678f631d0 (diff)
Viewer/Amdroid: universal build, resources in APK
Change-Id: I57dda6e3329dbee720333b6e92142fce28f8dbd3 Reviewed-on: https://skia-review.googlesource.com/111940 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Yuqian Li <liyuqian@google.com>
Diffstat (limited to 'platform_tools')
-rw-r--r--platform_tools/android/apps/viewer/build.gradle2
-rw-r--r--platform_tools/android/apps/viewer/src/main/assets/.gitignore1
-rw-r--r--platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java5
-rwxr-xr-xplatform_tools/android/bin/android_build_universal_viewer81
4 files changed, 86 insertions, 3 deletions
diff --git a/platform_tools/android/apps/viewer/build.gradle b/platform_tools/android/apps/viewer/build.gradle
index d39e896c41..630544d0bb 100644
--- a/platform_tools/android/apps/viewer/build.gradle
+++ b/platform_tools/android/apps/viewer/build.gradle
@@ -24,7 +24,7 @@ android {
}
sourceSets.main.jni.srcDirs = [] //disable automatic ndk-build call
sourceSets.main.jniLibs.srcDir "src/main/libs"
- productFlavors { arm {}; arm64 {}; x86 {}; x64 {}; arm64vulkan{}; }
+ productFlavors { universal{}; arm {}; arm64 {}; x86 {}; x64 {}; arm64vulkan{}; }
setupSkiaLibraryBuild(project, applicationVariants, "libviewer")
}
diff --git a/platform_tools/android/apps/viewer/src/main/assets/.gitignore b/platform_tools/android/apps/viewer/src/main/assets/.gitignore
new file mode 100644
index 0000000000..e47e1b33a7
--- /dev/null
+++ b/platform_tools/android/apps/viewer/src/main/assets/.gitignore
@@ -0,0 +1 @@
+/resources
diff --git a/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java b/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java
index 2dcce90e63..7253eb7503 100644
--- a/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java
+++ b/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerApplication.java
@@ -8,6 +8,7 @@
package org.skia.viewer;
import android.app.Application;
+import android.content.res.AssetManager;
public class ViewerApplication extends Application {
private long mNativeHandle = 0;
@@ -18,13 +19,13 @@ public class ViewerApplication extends Application {
System.loadLibrary("viewer");
}
- private native long createNativeApp();
+ private native long createNativeApp(AssetManager assetManager);
private native void destroyNativeApp(long handle);
@Override
public void onCreate() {
super.onCreate();
- mNativeHandle = createNativeApp();
+ mNativeHandle = createNativeApp(this.getResources().getAssets());
}
@Override
diff --git a/platform_tools/android/bin/android_build_universal_viewer b/platform_tools/android/bin/android_build_universal_viewer
new file mode 100755
index 0000000000..f98eeb8088
--- /dev/null
+++ b/platform_tools/android/bin/android_build_universal_viewer
@@ -0,0 +1,81 @@
+#! /bin/sh
+
+# Copyright 2018 Google Inc.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+make_gn() {
+ #TODO: make this more configurable
+ cat << EOF
+ target_cpu = "$ARCH"
+ is_debug = false
+ ndk = "$ANDROID_NDK"
+ ndk_api = 26
+EOF
+}
+
+main() {
+ APP="$1"
+ LIB="$2"
+
+ ANDROID_NDK="$(cd "$ANDROID_NDK"; pwd)"
+ ANDROID_HOME="$(cd "$ANDROID_HOME"; pwd)"
+
+ cd "$(dirname "$0")/../../.."
+
+ python tools/git-sync-deps
+ git clean -fxd platform_tools/android/apps/$APP
+ mkdir -p platform_tools/android/apps/${APP}/src/main/assets
+ cp -a resources platform_tools/android/apps/${APP}/src/main/assets/
+
+ for ARCH in arm arm64 x86 x64; do
+ BUILD=out/${APP}-$ARCH
+ mkdir -p "$BUILD"
+ make_gn > "${BUILD}/args.gn"
+ bin/gn gen $BUILD
+ ninja -C $BUILD $LIB
+ case $ARCH in
+ arm) NATIVE=armeabi-v7a ;;
+ arm64) NATIVE=arm64-v8a ;;
+ x86) NATIVE=x86 ;;
+ x64) NATIVE=x86_64 ;;
+ *) usage ;;
+ esac
+ DST=platform_tools/android/apps/$APP/src/main/libs/$NATIVE
+ mkdir -p $DST
+ cp -a $BUILD/$LIB $DST/$LIB
+ done
+ (
+ cd platform_tools/android
+ apps/gradlew --daemon -p apps/$APP -P suppressNativeBuild :${APP}:assembleUniversalDebug
+ )
+
+ mkdir -p out/${APP}-universal
+ cp platform_tools/android/apps/$APP/build/outputs/apk/${APP}-universal-debug.apk \
+ out/${APP}-universal/$APP-universal-debug.apk
+ ls -l out/${APP}-universal/$APP-universal-debug.apk
+}
+
+usage() {
+ cat >&2 <<EOM
+The environment variables ANDROID_NDK and ANDROID_HOME must be set to the
+locations of the Android NDK and SDK. Current values:
+
+ ANDROID_NDK="$ANDROID_NDK"
+ ANDROID_HOME="$ANDROID_HOME"
+
+Additionally, \`python\` and \`ninja\` should be in your path.
+
+EOM
+ exit 1
+}
+
+[ -d "$ANDROID_NDK" ] || usage
+[ -d "$ANDROID_HOME" ] || usage
+command -v ninja > /dev/null || usage
+command -v python > /dev/null || usage
+
+set -x # Verbose
+set -e # Exit immediately
+
+main viewer libviewer.so