|  | #!/bin/bash | 
|  |  | 
|  | # Run an Android NDK binary on the connected device. | 
|  | # | 
|  | # Example usage: | 
|  | # $ cd <builddir> | 
|  | # $ make vk-unittests | 
|  | # $ ../rundroid vk-unittests | 
|  |  | 
|  | if [ "$#" -lt 1 ]; then | 
|  | echo "Usage: $0 <executable>" | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | dst_dir=/data/local/tmp | 
|  | path="$1" | 
|  | name="$(basename "$path")" | 
|  | shift | 
|  |  | 
|  | if [ -z "$ANDROID_HOME" ]; then | 
|  | ANDROID_HOME=$HOME/Android/Sdk | 
|  | fi | 
|  |  | 
|  | set -e | 
|  | set -x | 
|  |  | 
|  | for lib in libGLESv2_swiftshader.so libEGL_swiftshader.so libvk_swiftshader.so; do | 
|  | adb push --sync "$lib" "${dst_dir}/${lib}" | 
|  | done | 
|  |  | 
|  | adb push --sync "$ANDROID_HOME/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so" "${dst_dir}/libc++_shared.so" | 
|  |  | 
|  | adb push --sync "$path" "${dst_dir}/${name}" | 
|  | adb shell "cd \"$dst_dir\"; chmod +x \"$name\"; LD_LIBRARY_PATH=. ./$name $*" |