gpt4 book ai didi

android - 为 arm/arm64 构建 android sdk 工具(aapt、adb 等)

转载 作者:行者123 更新时间:2023-12-05 00:09:58 24 4
gpt4 key购买 nike

我目前有兴趣为 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

如上所述,这将为 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]

正如我们在下面看到的,它需要 libgcc libstc++,它没有与 android 一起打包。

最佳答案

我最终只是根据 AOSP 源代码自己构建了 aapt。这比我最初想象的要容易得多。为此,我修改了构建脚本,为“目标”架构而不是“主机”架构构建二进制文件。

https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp

内置的二进制文件在这里以备不时之需。

https://github.com/thejunkjon/android-tools

关于android - 为 arm/arm64 构建 android sdk 工具(aapt、adb 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54263814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com