Jon*_*Jon 0 android android-source
我目前对为 ARM-v7a 和 ARM64-v8a 架构构建 Android SDK 工具(aapt、adb 等)感兴趣,以便它可以直接在 Android 设备上运行。这可能吗?
我能够按照文档轻松地为 x86/x86_64 构建 Android SDK 工具。
https://source.android.com/setup
为此,我执行了以下步骤。
mkdir ~/WORKING_DIRECTORY
cd ~/WORKING_DIRECTORY
repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
repo sync
. build/envsetup.sh
lunch sdk-eng
make sdk
Run Code Online (Sandbox Code Playgroud)
如上所述,这将为 x86/x86_64 构建 android SDK 工具。我只是不确定如何为其他架构构建工具。
我知道您可以为 make 目标指定所需的架构。例如,“make aosp_arm-eng”将为 arm 环境构建映像。但是,当我尝试“make sdk_arm-eng”时,它告诉我目标不存在。
任何帮助将不胜感激。
编辑:
看起来 Debian 在这里有用于 aapt 和其他 android 工具的 arm/arm64 包。
https://packages.debian.org/buster/aapt
但是,由于依赖关系,这些似乎无法在实际的 android 设备上运行。
/android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-readelf -a aapt | grep Shared
Type: DYN (Shared object file)
0x0000000000000001 (NEEDED) Shared library: [libaapt.so.0]
0x0000000000000001 (NEEDED) Shared library: [libutils.so.0]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-aarch64.so.1]
Run Code Online (Sandbox Code Playgroud)
正如我们在下面看到的,它需要 libgcc libstc++,它没有与 android 一起打包。
我最终只是从 AOSP 源代码中自己构建了 aapt。这比我最初想象的要容易得多。为此,我修改了构建脚本,为“目标”架构而不是“主机”架构构建二进制文件。
https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp
内置的二进制文件在这里,以防其他人需要它们。
https://github.com/thejunkjon/android-tools
| 归档时间: |
|
| 查看次数: |
5395 次 |
| 最近记录: |