Skip to content

Commit fb24360

Browse files
authored
Use gradle to build the AAR
Differential Revision: D71506992 Pull Request resolved: #9382
1 parent 7f92671 commit fb24360

40 files changed

+185
-661
lines changed

.ci/scripts/build_android_instrumentation.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ fi
1313
which "${PYTHON_EXECUTABLE}"
1414

1515
build_android_test() {
16-
pushd extension/android_test
17-
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew testDebugUnitTest
18-
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
16+
mkdir -p extension/android/executorch_android/src/androidTest/resources
17+
cp extension/module/test/resources/add.pte extension/android/executorch_android/src/androidTest/resources
18+
pushd extension/android
19+
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew :executorch_android:testDebugUnitTest
20+
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew :executorch_android:assembleAndroidTest
1921
popd
2022
}
2123

@@ -24,8 +26,7 @@ collect_artifacts_to_be_uploaded() {
2426
# Collect Java library test
2527
JAVA_LIBRARY_TEST_DIR="${ARTIFACTS_DIR_NAME}/library_test_dir"
2628
mkdir -p "${JAVA_LIBRARY_TEST_DIR}"
27-
cp extension/android_test/build/outputs/apk/debug/*.apk "${JAVA_LIBRARY_TEST_DIR}"
28-
cp extension/android_test/build/outputs/apk/androidTest/debug/*.apk "${JAVA_LIBRARY_TEST_DIR}"
29+
cp extension/android/executorch_android/build/outputs/apk/androidTest/debug/*.apk "${JAVA_LIBRARY_TEST_DIR}"
2930
}
3031

3132
main() {

.github/workflows/_android.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,16 @@ jobs:
2828
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh --build-tool buck2
2929
export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded
3030
31+
mkdir -p ${ARTIFACTS_DIR_NAME}/fp32-xnnpack-custom
32+
bash examples/models/llama/install_requirements.sh
33+
bash ".ci/scripts/test_llama.sh" -model stories110M -build_tool cmake -dtype fp16 -mode portable -upload ${ARTIFACTS_DIR_NAME}/fp32-xnnpack-custom
34+
3135
# Build LLM Demo for Android
3236
export BUILD_AAR_DIR=aar-out
37+
mkdir -p $BUILD_AAR_DIR
3338
bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME}
3439
bash .ci/scripts/build_android_instrumentation.sh ${ARTIFACTS_DIR_NAME}
3540
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-
3941
mkdir -p examples/demo-apps/android/LlamaDemo/app/libs
4042
cp aar-out/executorch.aar examples/demo-apps/android/LlamaDemo/app/libs
4143
pushd examples/demo-apps/android/LlamaDemo
@@ -94,7 +96,6 @@ jobs:
9496
curl -O https://gha-artifacts.s3.amazonaws.com/${{ github.repository }}/${{ github.run_id }}/artifacts/llm_demo/app-debug.apk
9597
curl -O https://gha-artifacts.s3.amazonaws.com/${{ github.repository }}/${{ github.run_id }}/artifacts/llm_demo/app-debug-androidTest.apk
9698
curl -O https://gha-artifacts.s3.amazonaws.com/${{ github.repository }}/${{ github.run_id }}/artifacts/fp32-xnnpack-custom/model.zip
97-
curl -o android-test-debug.apk https://gha-artifacts.s3.amazonaws.com/${{ github.repository }}/${{ github.run_id }}/artifacts/library_test_dir/executorch-debug.apk
9899
curl -o android-test-debug-androidTest.apk https://gha-artifacts.s3.amazonaws.com/${{ github.repository }}/${{ github.run_id }}/artifacts/library_test_dir/executorch-debug-androidTest.apk
99100
unzip model.zip
100101
mv *.pte model.pte

.github/workflows/doc-build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
with:
2727
job-name: Build doc
2828
runner: linux.2xlarge
29-
docker-image: executorch-ubuntu-22.04-clang12
29+
docker-image: executorch-ubuntu-22.04-clang12-android
3030
submodules: 'true'
3131
repository: pytorch/executorch
3232
upload-artifact: docs
@@ -70,8 +70,8 @@ jobs:
7070
7171
# Build javadoc:
7272
cd extension/android
73-
./gradlew javadoc
74-
cp -rf build/docs/javadoc "${RUNNER_DOCS_DIR}"
73+
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew :executorch_android:javaDocReleaseGeneration
74+
cp -rf executorch_android/build/intermediates/java_doc_dir/release/javaDocReleaseGeneration "${RUNNER_DOCS_DIR}/javadoc"
7575
cd ../..
7676
7777
# If it's main branch, add noindex tag to all .html files to exclude from Google Search indexing.

.github/workflows/lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ jobs:
7676
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
7777
timeout: 90
7878
script: |
79-
FILES_NEEDS_FORMAT=$(/opt/google-java-format -n extension/android/src/main/java/org/pytorch/executorch/*.java \
80-
examples/demo-apps/android/ExecuTorchDemo/app/src/main/java/com/example/executorchdemo/*.java \
79+
FILES_NEEDS_FORMAT=$(/opt/google-java-format -n \
80+
extension/android/executorch_android/src/main/java/org/pytorch/executorch/*.java \
8181
examples/demo-apps/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/*.java \
8282
extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/*.java)
8383
if [ -n "$FILES_NEEDS_FORMAT" ]; then

.github/workflows/pull.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
- runner: linux.arm64.2xlarge
6161
docker-image: executorch-ubuntu-22.04-clang12
6262
# TODO: Need to figure out why buck2 doesnt work on Graviton instances.
63-
- runner: linux.arm64.2xlarge
63+
- runner: linux.arm64.2xlarge
6464
build-tool: buck2
6565
fail-fast: false
6666
with:
@@ -420,7 +420,6 @@ jobs:
420420
permissions:
421421
id-token: write
422422
contents: read
423-
needs: test-llama-runner-linux
424423

425424
unittest:
426425
uses: ./.github/workflows/_unittest.yml

build/build_android_library.sh

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@ if [[ -z "${PYTHON_EXECUTABLE:-}" ]]; then
1212
fi
1313
which "${PYTHON_EXECUTABLE}"
1414

15-
build_jar() {
16-
pushd extension/android
17-
./gradlew build
18-
popd
19-
mkdir -p "${BUILD_AAR_DIR}/libs"
20-
cp extension/android/build/libs/executorch.jar "${BUILD_AAR_DIR}/libs/"
15+
copy_src() {
16+
cp -r extension/android/build.gradle extension/android/settings.gradle extension/android/gradlew extension/android/gradle extension/android/gradlew.bat extension/android/gradle.properties "${BUILD_AAR_DIR}"
17+
cp -r extension/android/executorch_android "${BUILD_AAR_DIR}/executorch_android"
2118
}
2219

2320
build_android_native_library() {
@@ -96,44 +93,40 @@ build_android_native_library() {
9693
cmake --build "${CMAKE_OUT}"/extension/android -j "${CMAKE_JOBS}" --config "${EXECUTORCH_CMAKE_BUILD_TYPE}"
9794

9895
# Copy artifacts to ABI specific directory
99-
mkdir -p "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}"
100-
cp "${CMAKE_OUT}"/extension/android/*.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
96+
mkdir -p "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}"
97+
cp "${CMAKE_OUT}"/extension/android/*.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
10198

10299
# Copy QNN related so library
103100
if [ -n "$QNN_SDK_ROOT" ] && [ "$ANDROID_ABI" == "arm64-v8a" ]; then
104-
cp "${CMAKE_OUT}"/lib/libqnn_executorch_backend.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
105-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtp.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
106-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnSystem.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
107-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV69Stub.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
108-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV73Stub.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
109-
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV75Stub.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
110-
cp "${QNN_SDK_ROOT}"/lib/hexagon-v69/unsigned/libQnnHtpV69Skel.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
111-
cp "${QNN_SDK_ROOT}"/lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
112-
cp "${QNN_SDK_ROOT}"/lib/hexagon-v75/unsigned/libQnnHtpV75Skel.so "${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/"
101+
cp "${CMAKE_OUT}"/lib/libqnn_executorch_backend.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
102+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtp.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
103+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnSystem.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
104+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV69Stub.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
105+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV73Stub.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
106+
cp "${QNN_SDK_ROOT}"/lib/aarch64-android/libQnnHtpV75Stub.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
107+
cp "${QNN_SDK_ROOT}"/lib/hexagon-v69/unsigned/libQnnHtpV69Skel.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
108+
cp "${QNN_SDK_ROOT}"/lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
109+
cp "${QNN_SDK_ROOT}"/lib/hexagon-v75/unsigned/libQnnHtpV75Skel.so "${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/"
113110
fi
114111

115112
# Copy MTK related so library
116113
if [ -n "$NEURON_BUFFER_ALLOCATOR_LIB" ] && [ -n "$NEURON_USDK_ADAPTER_LIB" ] && [ "$ANDROID_ABI" == "arm64-v8a" ]; then
117-
cp "${CMAKE_OUT}"/backends/mediatek/libneuron_backend.so ${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/
118-
cp "${NEURON_BUFFER_ALLOCATOR_LIB}" ${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/
119-
cp "${NEURON_USDK_ADAPTER_LIB}" ${BUILD_AAR_DIR}/jni/${ANDROID_ABI}/
114+
cp "${CMAKE_OUT}"/backends/mediatek/libneuron_backend.so ${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/
115+
cp "${NEURON_BUFFER_ALLOCATOR_LIB}" ${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/
116+
cp "${NEURON_USDK_ADAPTER_LIB}" ${BUILD_AAR_DIR}/executorch_android/src/main/jniLibs/${ANDROID_ABI}/
120117
fi
121118
}
122119

123120
build_aar() {
124-
echo \<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" \
125-
package=\"org.pytorch.executorch\"\> \
126-
\<uses-sdk android:minSdkVersion=\"19\" /\> \
127-
\</manifest\> > "${BUILD_AAR_DIR}/AndroidManifest.xml"
128121
pushd "${BUILD_AAR_DIR}"
129122
# Rename libexecutorch_jni.so to libexecutorch.so for soname consistency
130123
# between Java and JNI
131-
find jni -type f -name "libexecutorch_jni.so" -exec bash -c 'mv "$1" "${1/_jni/}"' bash {} \;
124+
find . -type f -name "libexecutorch_jni.so" -exec bash -c 'mv "$1" "${1/_jni/}"' bash {} \;
132125
if [ "$EXECUTORCH_CMAKE_BUILD_TYPE" == "Release" ]; then
133-
find jni -type f -name "*.so" -exec "$ANDROID_NDK"/toolchains/llvm/prebuilt/*/bin/llvm-strip {} \;
126+
find . -type f -name "*.so" -exec "$ANDROID_NDK"/toolchains/llvm/prebuilt/*/bin/llvm-strip {} \;
134127
fi
135-
# Zip all necessary files into the AAR file
136-
zip -r executorch.aar libs jni/*/libexecutorch.so jni/*/libqnn*.so jni/*/libQnn*.so jni/*/libneuron_backend.so jni/*/libneuron_buffer_allocator.so jni/*/libneuronusdk_adapter.mtk.so AndroidManifest.xml
128+
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build
129+
cp executorch_android/build/outputs/aar/executorch_android-debug.aar executorch.aar
137130
popd
138131
}
139132

@@ -149,7 +142,7 @@ main() {
149142

150143
ARTIFACTS_DIR_NAME="$1"
151144

152-
build_jar
145+
copy_src
153146
for ANDROID_ABI in "${ANDROID_ABIS[@]}"; do
154147
build_android_native_library ${ANDROID_ABI}
155148
done

build/run_android_emulator.sh

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@ adb push model.pte /data/local/tmp/llama
2828
adb push tokenizer.bin /data/local/tmp/llama
2929
adb shell am instrument -w -r com.example.executorchllamademo.test/androidx.test.runner.AndroidJUnitRunner
3030

31-
adb uninstall org.pytorch.executorch || true
32-
adb uninstall org.pytorch.executorch.test || true
33-
adb install -t android-test-debug.apk
34-
adb install -t android-test-debug-androidTest.apk
31+
# adb uninstall org.pytorch.executorch.test || true
32+
# adb install -t android-test-debug-androidTest.apk
3533

36-
adb shell am instrument -w -r org.pytorch.executorch.test/androidx.test.runner.AndroidJUnitRunner
34+
# adb shell am instrument -w -r org.pytorch.executorch.test/androidx.test.runner.AndroidJUnitRunner

extension/android/BUCK

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ oncall("executorch")
55
fb_android_library(
66
name = "executorch",
77
srcs = [
8-
"src/main/java/org/pytorch/executorch/DType.java",
9-
"src/main/java/org/pytorch/executorch/EValue.java",
10-
"src/main/java/org/pytorch/executorch/Module.java",
11-
"src/main/java/org/pytorch/executorch/NativePeer.java",
12-
"src/main/java/org/pytorch/executorch/Tensor.java",
13-
"src/main/java/org/pytorch/executorch/annotations/Experimental.java",
8+
"executorch_android/src/main/java/org/pytorch/executorch/DType.java",
9+
"executorch_android/src/main/java/org/pytorch/executorch/EValue.java",
10+
"executorch_android/src/main/java/org/pytorch/executorch/Module.java",
11+
"executorch_android/src/main/java/org/pytorch/executorch/NativePeer.java",
12+
"executorch_android/src/main/java/org/pytorch/executorch/Tensor.java",
13+
"executorch_android/src/main/java/org/pytorch/executorch/annotations/Experimental.java",
1414
],
1515
autoglob = False,
1616
language = "JAVA",
@@ -23,8 +23,8 @@ fb_android_library(
2323
fb_android_library(
2424
name = "executorch_llama",
2525
srcs = [
26-
"src/main/java/org/pytorch/executorch/extension/llm/LlmCallback.java",
27-
"src/main/java/org/pytorch/executorch/extension/llm/LlmModule.java",
26+
"executorch_android/src/main/java/org/pytorch/executorch/extension/llm/LlmCallback.java",
27+
"executorch_android/src/main/java/org/pytorch/executorch/extension/llm/LlmModule.java",
2828
],
2929
autoglob = False,
3030
language = "JAVA",

extension/android/build.gradle

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,30 @@
1-
/*
2-
* Copyright (c) Meta Platforms, Inc. and affiliates.
3-
* All rights reserved.
4-
*
5-
* This source code is licensed under the BSD-style license found in the
6-
* LICENSE file in the root directory of this source tree.
7-
*/
1+
allprojects {
2+
buildscript {
3+
ext {
4+
minSdkVersion = 21
5+
targetSdkVersion = 34
6+
compileSdkVersion = 34
7+
buildToolsVersion = '33.0.1'
88

9-
plugins {
10-
id 'java-library'
11-
}
9+
fbjniJavaOnlyVersion = "0.5.1"
10+
soLoaderNativeLoaderVersion = "0.10.5"
11+
}
1212

13-
group 'org.pytorch.executorch'
13+
repositories {
14+
google()
15+
mavenCentral()
16+
}
1417

15-
repositories {
16-
mavenCentral()
17-
}
18+
dependencies {
19+
classpath 'com.android.tools.build:gradle:8.9.0'
20+
classpath 'com.vanniktech:gradle-maven-publish-plugin:0.31.0'
21+
}
22+
23+
}
1824

19-
task makeJar(type: Jar) {
20-
dependencies {
21-
implementation 'com.facebook.fbjni:fbjni-java-only:0.5.1'
22-
implementation 'com.facebook.soloader:nativeloader:0.10.5'
25+
repositories {
26+
google()
27+
jcenter()
28+
mavenCentral()
2329
}
2430
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
* All rights reserved.
4+
*
5+
* This source code is licensed under the BSD-style license found in the
6+
* LICENSE file in the root directory of this source tree.
7+
*/
8+
9+
plugins {
10+
id "com.android.library" version "8.9.0"
11+
id "com.vanniktech.maven.publish" version "0.31.0"
12+
}
13+
14+
android {
15+
namespace = "org.pytorch.executorch"
16+
compileSdk = 34
17+
18+
defaultConfig {
19+
minSdk = 23
20+
21+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
22+
}
23+
24+
compileOptions {
25+
sourceCompatibility = JavaVersion.VERSION_1_8
26+
targetCompatibility = JavaVersion.VERSION_1_8
27+
}
28+
29+
sourceSets {
30+
androidTest {
31+
resources.srcDirs += [ 'src/androidTest/resources' ]
32+
}
33+
}
34+
}
35+
36+
dependencies {
37+
implementation 'com.facebook.fbjni:fbjni-java-only:0.5.1'
38+
implementation 'com.facebook.soloader:nativeloader:0.10.5'
39+
testImplementation 'junit:junit:4.12'
40+
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
41+
androidTestImplementation 'androidx.test:rules:1.2.0'
42+
androidTestImplementation 'commons-io:commons-io:2.4'
43+
}
44+
45+
import com.vanniktech.maven.publish.SonatypeHost
46+
47+
mavenPublishing {
48+
publishToMavenCentral(SonatypeHost.DEFAULT)
49+
signAllPublications()
50+
51+
coordinates("org.pytorch", "executorch-android", "0.5.0-SNAPSHOT")
52+
53+
pom {
54+
name = "ExecuTorch Android"
55+
description = "ExecuTorch Android API"
56+
inceptionYear = "2025"
57+
url = "https://github.com/pytorch/executorch/"
58+
licenses {
59+
license {
60+
name = "BSD 3-Clause"
61+
url = "https://github.com/pytorch/executorch/blob/main/LICENSE"
62+
distribution = "https://github.com/pytorch/executorch/blob/main/LICENSE"
63+
}
64+
}
65+
developers {
66+
developer {
67+
id = "pytorch"
68+
name = "pytorch"
69+
url = "https://github.com/pytorch/executorch/"
70+
}
71+
}
72+
scm {
73+
url = "https://github.com/pytorch/executorch.git"
74+
connection = "scm:git:https://github.com/pytorch/executorch"
75+
developerConnection = "scm:git:[email protected]:pytorch/executorch.git"
76+
}
77+
}
78+
79+
}
80+
81+
repositories {
82+
maven {
83+
url "https://oss.sonatype.org/content/repositories/snapshots"
84+
}
85+
}

extension/android_test/src/androidTest/java/org/pytorch/executorch/LlmModuleInstrumentationTest.java renamed to extension/android/executorch_android/src/androidTest/java/org/pytorch/executorch/LlmModuleInstrumentationTest.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* LICENSE file in the root directory of this source tree.
77
*/
88

9-
package com.example.executorch;
9+
package org.pytorch.executorch;
1010

1111
import static org.junit.Assert.assertEquals;
1212
import static org.junit.Assert.assertTrue;
@@ -34,13 +34,10 @@
3434
import org.apache.commons.io.FileUtils;
3535
import androidx.test.ext.junit.runners.AndroidJUnit4;
3636
import androidx.test.InstrumentationRegistry;
37-
import org.pytorch.executorch.extension.llm.LlmModule;
3837
import org.pytorch.executorch.extension.llm.LlmCallback;
39-
import org.pytorch.executorch.Module;
40-
import org.pytorch.executorch.EValue;
41-
import org.pytorch.executorch.Tensor;
38+
import org.pytorch.executorch.extension.llm.LlmModule;
4239

43-
/** Unit tests for {@link LlmModule}. */
40+
/** Unit tests for {@link org.pytorch.executorch.extension.llm.LlmModule}. */
4441
@RunWith(AndroidJUnit4.class)
4542
public class LlmModuleInstrumentationTest implements LlmCallback {
4643
private static String TEST_FILE_NAME = "/tinyllama_portable_fp16_h.pte";

0 commit comments

Comments
 (0)