From 70120c778abc42ce754fb8178aa49bf8ce95a5c3 Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Thu, 5 Jan 2017 11:39:04 -0500 Subject: Add tools to support gdb and simpleperf for android executables. Change-Id: I6e7f41df094ae037538ebd61e40385d7e2e9eb26 Reviewed-on: https://skia-review.googlesource.com/6615 Reviewed-by: Mike Klein Commit-Queue: Mike Klein --- platform_tools/android/bin/android_gdb_native | 2 +- platform_tools/android/bin/android_gdbserver | 2 +- platform_tools/android/bin/android_launch_app | 2 +- platform_tools/android/bin/android_perf | 21 +++++++-------------- platform_tools/android/bin/android_run_skia | 2 +- platform_tools/android/bin/utils/android_setup.sh | 5 ----- 6 files changed, 11 insertions(+), 23 deletions(-) (limited to 'platform_tools') diff --git a/platform_tools/android/bin/android_gdb_native b/platform_tools/android/bin/android_gdb_native index da513cbf79..9d7fa1902c 100755 --- a/platform_tools/android/bin/android_gdb_native +++ b/platform_tools/android/bin/android_gdb_native @@ -7,7 +7,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source $SCRIPT_DIR/utils/android_setup.sh # setup the gdbserver -$SCRIPT_DIR/android_gdbserver -d ${DEVICE_ID} ${APP_ARGS[@]} +$SCRIPT_DIR/android_gdbserver -C ${SKIA_OUT} ${APP_ARGS[@]} # quit if gdbserver setup failed if [[ "$?" != "0" ]]; then diff --git a/platform_tools/android/bin/android_gdbserver b/platform_tools/android/bin/android_gdbserver index 432ab7c82b..12d055af44 100755 --- a/platform_tools/android/bin/android_gdbserver +++ b/platform_tools/android/bin/android_gdbserver @@ -58,7 +58,7 @@ cp "$TARGET_EXE" $GDB_TMP_DIR adb_push_if_needed "${TARGET_EXE}" /data/local/tmp echo "Pushing gdbserver..." -adb_push_if_needed $GDBSERVER_DIR/gdbserver/gdbserver /data/local/tmp +adb_push_if_needed $SKIA_OUT/gdbserver /data/local/tmp echo "Setting up port forward" $ADB forward "tcp:5039" "tcp:5039" diff --git a/platform_tools/android/bin/android_launch_app b/platform_tools/android/bin/android_launch_app index 46cd4b11c3..0da80ba954 100755 --- a/platform_tools/android/bin/android_launch_app +++ b/platform_tools/android/bin/android_launch_app @@ -9,7 +9,7 @@ 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 + adb_push_if_needed "${SCRIPT_DIR}/../../../resources" $RESOURCE_PATH fi activity="org.skia.viewer/org.skia.viewer.ViewerActivity" diff --git a/platform_tools/android/bin/android_perf b/platform_tools/android/bin/android_perf index cf51074788..0d1d5e2e39 100755 --- a/platform_tools/android/bin/android_perf +++ b/platform_tools/android/bin/android_perf @@ -12,15 +12,6 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source $SCRIPT_DIR/utils/android_setup.sh source $SCRIPT_DIR/utils/setup_adb.sh -if [ $(uname) == "Linux" ]; then - PERFHOST=$SCRIPT_DIR/linux/perfhost -elif [ $(uname) == "Darwin" ]; then - PERFHOST=$SCRIPT_DIR/mac/perfhost -else - echo "Could not automatically determine OS!" - exit 1; -fi - # grab and remove the perf command from the input args PERF_CMD=${APP_ARGS[0]} unset APP_ARGS[0] @@ -42,7 +33,6 @@ perf_setup() { echo "Copying symbol files" adb_pull_if_needed /system/lib/libc.so $TMP_SYS_LIB adb_pull_if_needed /system/lib/libstdc++.so $TMP_SYS_LIB - adb_pull_if_needed /system/lib/libstlport.so $TMP_SYS_LIB adb_pull_if_needed /system/lib/libGLESv2.so $TMP_SYS_LIB adb_pull_if_needed /system/lib/libandroid.so $TMP_SYS_LIB adb_pull_if_needed /system/lib/libm.so $TMP_SYS_LIB @@ -55,6 +45,9 @@ perf_setup() { exit 1 fi + echo "Pushing simpleperf..." + adb_push_if_needed $SKIA_OUT/simpleperf /data/local/tmp + echo "Pushing app..." adb_push_if_needed "${SKIA_OUT}/${runVars[0]}" /data/local/tmp cp "${SKIA_OUT}/${runVars[0]}" $TMP_APP_LOC @@ -73,16 +66,16 @@ perf_record() { # TO BE READ BY THE REPORTING TOOL echo "Starting profiler" APP_PID=$($ADB shell ps | grep ${runVars[0]} | awk '{print $2}') - $ADB shell perf record -p ${APP_PID} sleep 70 + $ADB shell /data/local/tmp/simpleperf record -p ${APP_PID} -o /data/local/tmp/perf.data sleep 70 - $ADB pull /data/perf.data $PERF_TMP_DIR/perf.data + $ADB pull /data/local/tmp/perf.data $PERF_TMP_DIR/perf.data exit 0; } perf_report() { - adb_pull_if_needed /data/perf.data $PERF_TMP_DIR/perf.data - $PERFHOST report -i $PERF_TMP_DIR/perf.data --symfs=$PERF_TMP_DIR ${runVars[@]} + adb_pull_if_needed /data/local/tmp/perf.data $PERF_TMP_DIR/perf.data + $SKIA_OUT/perfhost_report.py -i $PERF_TMP_DIR/perf.data --symfs=$PERF_TMP_DIR ${runVars[@]} } # Clean up diff --git a/platform_tools/android/bin/android_run_skia b/platform_tools/android/bin/android_run_skia index 659b690e2e..5a643df498 100755 --- a/platform_tools/android/bin/android_run_skia +++ b/platform_tools/android/bin/android_run_skia @@ -17,7 +17,7 @@ verbose "pushing binaries onto the device..." adb_push_if_needed "${SKIA_OUT}/${APP_ARGS[0]}" /data/local/tmp if [[ -n $RESOURCE_PATH ]]; then verbose "pushing resources onto the device..." - adb_push_if_needed "${SKIA_SRC_DIR}/resources" $RESOURCE_PATH + adb_push_if_needed "${SCRIPT_DIR}/../../../resources" $RESOURCE_PATH fi if [ $LOGCAT ]; then diff --git a/platform_tools/android/bin/utils/android_setup.sh b/platform_tools/android/bin/utils/android_setup.sh index a63fcafe65..4d6dba3b8c 100755 --- a/platform_tools/android/bin/utils/android_setup.sh +++ b/platform_tools/android/bin/utils/android_setup.sh @@ -62,11 +62,6 @@ if [ -z "$ANDROID_SDK_ROOT" ]; then fi fi -if [ -z "$ANDROID_HOME" ]; then - echo "ANDROID_HOME not set so we are setting it to a default value of ANDROID_SDK_ROOT" - exportVar ANDROID_HOME $ANDROID_SDK_ROOT -fi - if [ -z "$ANDROID_NDK_ROOT" ]; then if [ -d "${ANDROID_SDK_ROOT}/ndk-bundle" ]; then exportVar ANDROID_NDK_ROOT ${ANDROID_SDK_ROOT}/ndk-bundle -- cgit v1.2.3