Skip to content

Commit a281314

Browse files
kirklandsignDannyYuyang-quic
authored andcommitted
Simplify Android build script
Differential Revision: D71221925 Pull Request resolved: pytorch#9286
1 parent 9b1e7e1 commit a281314

File tree

6 files changed

+39
-55
lines changed

6 files changed

+39
-55
lines changed

.github/workflows/_android.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,25 @@ jobs:
2929
export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded
3030
3131
# Build LLM Demo for Android
32+
export BUILD_AAR_DIR=aar-out
3233
bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME}
33-
bash build/build_android_instrumentation.sh
34+
bash build/build_android_instrumentation.sh ${ARTIFACTS_DIR_NAME}
35+
36+
mkdir -p ${ARTIFACTS_DIR_NAME}/fp32-xnnpack-custom
37+
bash ".ci/scripts/test_llama.sh" -model stories110M -build_tool cmake -dtype fp16 -mode portable -upload ${ARTIFACTS_DIR_NAME}/fp32-xnnpack-custom
38+
39+
mkdir -p examples/demo-apps/android/LlamaDemo/app/libs
40+
cp aar-out/executorch.aar examples/demo-apps/android/LlamaDemo/app/libs
41+
pushd examples/demo-apps/android/LlamaDemo
42+
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
43+
popd
44+
45+
DEMO_APP_DIR="${ARTIFACTS_DIR_NAME}/llm_demo"
46+
# The app directory is named using its build flavor as a suffix.
47+
mkdir -p "${DEMO_APP_DIR}"
48+
# Collect the app and its test suite
49+
cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/debug/*.apk "${DEMO_APP_DIR}"
50+
cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/androidTest/debug/*.apk "${DEMO_APP_DIR}"
3451
3552
# Running Android emulator directly on the runner and not using Docker
3653
run-emulator:

.github/workflows/android-perf.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,17 @@ jobs:
362362
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-qnn-deps.sh
363363
PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh
364364
365-
export ANDROID_ABIS="arm64-v8a"
366-
PYTHON_EXECUTABLE=python EXECUTORCH_BUILD_QNN=ON QNN_SDK_ROOT=/tmp/qnn/2.28.0.241029 bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME}
365+
mkdir -p aar-out
366+
PYTHON_EXECUTABLE=python ANDROID_ABIS="arm64-v8a" BUILD_AAR_DIR=aar-out EXECUTORCH_BUILD_QNN=ON QNN_SDK_ROOT=/tmp/qnn/2.28.0.241029 bash build/build_android_library.sh
367+
mkdir -p extension/benchmark/android/benchmark/app/libs
368+
cp aar-out/executorch.aar extension/benchmark/android/benchmark/app/libs
369+
pushd extension/benchmark/android/benchmark
370+
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
371+
popd
372+
MINIBENCH_APP_DIR="${ARTIFACTS_DIR_NAME}/minibench"
373+
mkdir -p "${MINIBENCH_APP_DIR}"
374+
cp extension/benchmark/android/benchmark/app/build/outputs/apk/debug/*.apk "${MINIBENCH_APP_DIR}"
375+
cp extension/benchmark/android/benchmark/app/build/outputs/apk/androidTest/debug/*.apk "${MINIBENCH_APP_DIR}"
367376
368377
# Let's see how expensive this job is, we might want to tone it down by running it periodically
369378
benchmark-on-device:

.github/workflows/android-release-artifacts.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,12 @@ jobs:
5252
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh --build-tool buck2
5353
export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded
5454
55-
# Build LLM Demo for Android
56-
bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME}
55+
# Build AAR Package
56+
mkdir aar-out
57+
export BUILD_AAR_DIR=aar-out
58+
bash build/build_android_library.sh
59+
mkdir -p "${ARTIFACTS_DIR_NAME}/llm_demo"
60+
cp aar-out/executorch.aar "${ARTIFACTS_DIR_NAME}/llm_demo/executorch.aar"
5761
5862
shasum -a 256 "${ARTIFACTS_DIR_NAME}/llm_demo/executorch.aar"
5963

build/build_android_library.sh

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -137,38 +137,6 @@ build_aar() {
137137
popd
138138
}
139139

140-
build_android_demo_apps() {
141-
mkdir -p examples/demo-apps/android/LlamaDemo/app/libs
142-
cp ${BUILD_AAR_DIR}/executorch.aar examples/demo-apps/android/LlamaDemo/app/libs
143-
pushd examples/demo-apps/android/LlamaDemo
144-
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
145-
popd
146-
147-
mkdir -p extension/benchmark/android/benchmark/app/libs
148-
cp ${BUILD_AAR_DIR}/executorch.aar extension/benchmark/android/benchmark/app/libs
149-
pushd extension/benchmark/android/benchmark
150-
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
151-
popd
152-
}
153-
154-
collect_artifacts_to_be_uploaded() {
155-
ARTIFACTS_DIR_NAME="$1"
156-
DEMO_APP_DIR="${ARTIFACTS_DIR_NAME}/llm_demo"
157-
# The app directory is named using its build flavor as a suffix.
158-
mkdir -p "${DEMO_APP_DIR}"
159-
# Collect the app and its test suite
160-
cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/debug/*.apk "${DEMO_APP_DIR}"
161-
cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/androidTest/debug/*.apk "${DEMO_APP_DIR}"
162-
# Collect JAR and AAR
163-
cp extension/android/build/libs/executorch.jar "${DEMO_APP_DIR}"
164-
find "${BUILD_AAR_DIR}/" -name 'executorch*.aar' -exec cp {} "${DEMO_APP_DIR}" \;
165-
# Collect MiniBench APK
166-
MINIBENCH_APP_DIR="${ARTIFACTS_DIR_NAME}/minibench"
167-
mkdir -p "${MINIBENCH_APP_DIR}"
168-
cp extension/benchmark/android/benchmark/app/build/outputs/apk/debug/*.apk "${MINIBENCH_APP_DIR}"
169-
cp extension/benchmark/android/benchmark/app/build/outputs/apk/androidTest/debug/*.apk "${MINIBENCH_APP_DIR}"
170-
}
171-
172140
main() {
173141
if [[ -z "${BUILD_AAR_DIR:-}" ]]; then
174142
BUILD_AAR_DIR="$(mktemp -d)"
@@ -186,10 +154,6 @@ main() {
186154
build_android_native_library ${ANDROID_ABI}
187155
done
188156
build_aar
189-
build_android_demo_apps
190-
if [ -n "$ARTIFACTS_DIR_NAME" ]; then
191-
collect_artifacts_to_be_uploaded ${ARTIFACTS_DIR_NAME}
192-
fi
193157
}
194158

195159
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then

examples/demo-apps/android/LlamaDemo/setup-with-qnn.sh

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,7 @@ if [ -z "$QNN_SDK_ROOT" ]; then
1313
fi
1414

1515
BASEDIR=$(dirname "$0")
16-
source "$BASEDIR"/../../../../build/build_android_library.sh
16+
ANDROID_ABIS="arm64-v8a" bash "$BASEDIR"/setup.sh
1717

1818
BUILD_AAR_DIR="$(mktemp -d)"
1919
export BUILD_AAR_DIR
20-
21-
build_jar
22-
build_android_native_library "arm64-v8a"
23-
build_aar
24-
mkdir -p "$BASEDIR"/app/libs
25-
cp "$BUILD_AAR_DIR/executorch.aar" "$BASEDIR"/app/libs/executorch.aar

examples/demo-apps/android/LlamaDemo/setup.sh

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,11 @@
77

88
set -eu
99

10-
BASEDIR=$(dirname "$0")
11-
source "$BASEDIR"/../../../../build/build_android_library.sh
12-
1310
BUILD_AAR_DIR="$(mktemp -d)"
1411
export BUILD_AAR_DIR
1512

16-
build_jar
17-
build_android_native_library "arm64-v8a"
18-
build_android_native_library "x86_64"
19-
build_aar
13+
BASEDIR=$(dirname "$0")
2014
mkdir -p "$BASEDIR"/app/libs
15+
bash "$BASEDIR"/../../../../build/build_android_library.sh
16+
2117
cp "$BUILD_AAR_DIR/executorch.aar" "$BASEDIR"/app/libs/executorch.aar

0 commit comments

Comments
 (0)