aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools
diff options
context:
space:
mode:
authorGravatar Derek Sollenberger <djsollen@google.com>2015-05-11 08:54:19 -0400
committerGravatar Derek Sollenberger <djsollen@google.com>2015-05-11 08:54:19 -0400
commit7c722197b3e48d28cb063df0b67a0718d8899e58 (patch)
tree570cb459ca1ee1344f0751c8a35b3cfd12adfdc1 /platform_tools
parent88f12dbe926df806cfb5b0641f613a2e256a713b (diff)
Add android_launch_app script to allow command line options to be passed to the sampleApp when starting.
BUG=skia:3815 DOCS_PREVIEW= https://skia.org/?cl=1136753003 R=bungeman@google.com, tomhudson@google.com Review URL: https://codereview.chromium.org/1136753003
Diffstat (limited to 'platform_tools')
-rw-r--r--platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.cpp27
-rw-r--r--platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.h4
-rw-r--r--platform_tools/android/app/src/com/skia/SkiaSampleActivity.java12
-rw-r--r--platform_tools/android/app/src/com/skia/SkiaSampleRenderer.java9
-rw-r--r--platform_tools/android/app/src/com/skia/SkiaSampleView.java4
-rwxr-xr-xplatform_tools/android/bin/android_launch_app16
-rwxr-xr-xplatform_tools/android/bin/android_setup.sh19
7 files changed, 70 insertions, 21 deletions
diff --git a/platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.cpp b/platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.cpp
index 049db97596..7eb1c09388 100644
--- a/platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.cpp
+++ b/platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.cpp
@@ -172,7 +172,7 @@ static jmethodID GetJMethod(JNIEnv* env, jclass clazz, const char name[],
}
JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_init(JNIEnv* env,
- jobject thiz, jobject jsampleActivity, jint msaaSampleCount)
+ jobject thiz, jobject jsampleActivity, jstring cmdLineFlags, jint msaaSampleCount)
{
// setup jni hooks to the java activity
gActivityGlue.m_env = env;
@@ -194,15 +194,17 @@ JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_init(JNIEnv* env,
env->DeleteLocalRef(clazz);
application_init();
- SkTArray<const char*> args;
- args.push_back("SampleApp");
- // TODO: push ability to select skp dir into the UI
- args.push_back("--pictureDir");
- args.push_back("/sdcard/skiabot/skia_skp");
+ const char* flags = env->GetStringUTFChars(cmdLineFlags, JNI_FALSE);
+ SkTArray<SkString> flagEntries;
+ SkStrSplit(flags, " ", &flagEntries);
- args.push_back("--resourcePath");
- args.push_back("/data/local/tmp/skia/resources/");
+ SkTArray<const char*> args;
+ args.push_back("SampleApp");
+ for (int i = 0; i < flagEntries.count(); i++) {
+ SkDebugf(flagEntries[i].c_str());
+ args.push_back(flagEntries[i].c_str());
+ }
SkString msaaSampleCountString;
if (msaaSampleCount > 0) {
@@ -211,7 +213,14 @@ JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_init(JNIEnv* env,
args.push_back(msaaSampleCountString.c_str());
}
- gWindow = new SampleWindow(NULL, args.count(), const_cast<char**>(args.begin()), NULL);
+ if (gWindow) {
+ SkDebugf("The sample window already exists.");
+ } else {
+ gWindow = new SampleWindow(NULL, args.count(), const_cast<char**>(args.begin()), NULL);
+ }
+
+ // cleanup the command line flags
+ env->ReleaseStringUTFChars(cmdLineFlags, flags);
// send the list of slides up to the activity
const int slideCount = gWindow->sampleCount();
diff --git a/platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.h b/platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.h
index 023f679425..263353ac1a 100644
--- a/platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.h
+++ b/platform_tools/android/app/jni/com_skia_SkiaSampleRenderer.h
@@ -10,10 +10,10 @@ extern "C" {
/*
* Class: com_skia_SkiaSampleRenderer
* Method: init
- * Signature: (Lcom/skia/SkiaSampleActivity;I)V
+ * Signature: (Lcom/skia/SkiaSampleActivity;Ljava/lang/String;I)V
*/
JNIEXPORT void JNICALL Java_com_skia_SkiaSampleRenderer_init
- (JNIEnv *, jobject, jobject, jint);
+ (JNIEnv *, jobject, jobject, jstring, jint);
/*
* Class: com_skia_SkiaSampleRenderer
diff --git a/platform_tools/android/app/src/com/skia/SkiaSampleActivity.java b/platform_tools/android/app/src/com/skia/SkiaSampleActivity.java
index 090d6ad14c..d9cd9f887d 100644
--- a/platform_tools/android/app/src/com/skia/SkiaSampleActivity.java
+++ b/platform_tools/android/app/src/com/skia/SkiaSampleActivity.java
@@ -10,6 +10,7 @@ package com.skia;
import android.app.ActionBar;
import android.app.Activity;
import android.app.DownloadManager;
+import android.content.Intent;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
@@ -65,7 +66,16 @@ public class SkiaSampleActivity extends Activity
mSampleView.terminate();
}
- mSampleView = new SkiaSampleView(this, useOpenGLAPI, msaaSampleCount);
+ // intent get intent extras if triggered from the command line
+ Intent intent = this.getIntent();
+ String flags = intent.getStringExtra("cmdLineFlags");
+
+ if (flags == null || flags.isEmpty()) {
+ flags = "--pictureDir /data/local/tmp/skia_skp ";
+ flags += "--resourcePath /data/local/tmp/skia_resources ";
+ }
+
+ mSampleView = new SkiaSampleView(this, flags, useOpenGLAPI, msaaSampleCount);
LinearLayout holder = (LinearLayout) findViewById(R.id.holder);
holder.addView(mSampleView, new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
diff --git a/platform_tools/android/app/src/com/skia/SkiaSampleRenderer.java b/platform_tools/android/app/src/com/skia/SkiaSampleRenderer.java
index d8fb8845b4..55257094cd 100644
--- a/platform_tools/android/app/src/com/skia/SkiaSampleRenderer.java
+++ b/platform_tools/android/app/src/com/skia/SkiaSampleRenderer.java
@@ -20,9 +20,11 @@ public class SkiaSampleRenderer implements GLSurfaceView.Renderer {
private final SkiaSampleView mSampleView;
private Handler mHandler = new Handler();
private int mMSAASampleCount;
+ private String mCmdLineFlags;
- SkiaSampleRenderer(SkiaSampleView view) {
+ SkiaSampleRenderer(SkiaSampleView view, String cmdLineFlags) {
mSampleView = view;
+ mCmdLineFlags = cmdLineFlags;
}
@Override
@@ -49,7 +51,8 @@ public class SkiaSampleRenderer implements GLSurfaceView.Renderer {
gl.glClearStencil(0);
gl.glClear(GL10.GL_STENCIL_BUFFER_BIT);
- init((SkiaSampleActivity)mSampleView.getContext(), mMSAASampleCount);
+
+ init((SkiaSampleActivity)mSampleView.getContext(), mCmdLineFlags, mMSAASampleCount);
}
// Called by JNI and the view.
@@ -89,7 +92,7 @@ public class SkiaSampleRenderer implements GLSurfaceView.Renderer {
mSampleView.requestRender();
}
- native void init(SkiaSampleActivity activity, int msaaSampleCount);
+ native void init(SkiaSampleActivity activity, String flags, int msaaSampleCount);
native void term();
native void draw();
native void updateSize(int w, int h);
diff --git a/platform_tools/android/app/src/com/skia/SkiaSampleView.java b/platform_tools/android/app/src/com/skia/SkiaSampleView.java
index cf06bea6a8..c33f8ae8ac 100644
--- a/platform_tools/android/app/src/com/skia/SkiaSampleView.java
+++ b/platform_tools/android/app/src/com/skia/SkiaSampleView.java
@@ -25,10 +25,10 @@ public class SkiaSampleView extends GLSurfaceView {
private boolean mRequestedOpenGLAPI; // true == use (desktop) OpenGL. false == use OpenGL ES.
private int mRequestedMSAASampleCount;
- public SkiaSampleView(Context ctx, boolean useOpenGL, int msaaSampleCount) {
+ public SkiaSampleView(Context ctx, String cmdLineFlags, boolean useOpenGL, int msaaSampleCount) {
super(ctx);
- mSampleRenderer = new SkiaSampleRenderer(this);
+ mSampleRenderer = new SkiaSampleRenderer(this, cmdLineFlags);
mRequestedMSAASampleCount = msaaSampleCount;
setEGLContextClientVersion(2);
diff --git a/platform_tools/android/bin/android_launch_app b/platform_tools/android/bin/android_launch_app
new file mode 100755
index 0000000000..d31e5cb350
--- /dev/null
+++ b/platform_tools/android/bin/android_launch_app
@@ -0,0 +1,16 @@
+#!/bin/bash
+#
+# android_launch_app: Launches the skia sampleApp on the device.
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+source $SCRIPT_DIR/android_setup.sh
+source $SCRIPT_DIR/utils/setup_adb.sh
+
+# TODO: check to ensure that the app exists on the device and prompt to install
+
+if [[ -n $RESOURCE_PATH ]]; then
+ adb_push_if_needed "${SKIA_SRC_DIR}/resources" $RESOURCE_PATH
+fi
+
+$ADB ${DEVICE_SERIAL} shell am start -S -n "com.skia/.SkiaSampleActivity" --es "cmdLineFlags" "${APP_ARGS[*]}"
+
diff --git a/platform_tools/android/bin/android_setup.sh b/platform_tools/android/bin/android_setup.sh
index b94d230fb5..73fac9a468 100755
--- a/platform_tools/android/bin/android_setup.sh
+++ b/platform_tools/android/bin/android_setup.sh
@@ -182,8 +182,13 @@ adb_pull_if_needed() {
if [ -f $HOST_DST ];
then
- #get the MD5 for dst and src
- ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_SRC`
+ #get the MD5 for dst and src depending on OS and/or OS revision
+ ANDROID_MD5_SUPPORT=`$ADB $DEVICE_SERIAL shell ls -ld /system/bin/md5`
+ if [ "${ANDROID_MD5_SUPPORT:0:15}" != "/system/bin/md5" ]; then
+ ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_DST`
+ else
+ ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5sum $ANDROID_DST`
+ fi
if [ $(uname) == "Darwin" ]; then
HOST_MD5=`md5 -q $HOST_DST`
else
@@ -220,8 +225,14 @@ adb_push_if_needed() {
ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST`
if [ "${ANDROID_LS:0:1}" == "-" ]; then
- #get the MD5 for dst and src
- ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_DST`
+ #get the MD5 for dst and src depending on OS and/or OS revision
+ ANDROID_MD5_SUPPORT=`$ADB $DEVICE_SERIAL shell ls -ld /system/bin/md5`
+ if [ "${ANDROID_MD5_SUPPORT:0:15}" != "/system/bin/md5" ]; then
+ ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_DST`
+ else
+ ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5sum $ANDROID_DST`
+ fi
+
if [ $(uname) == "Darwin" ]; then
HOST_MD5=`md5 -q $HOST_SRC`
else