![](/img/trans.png)
[英]Android SDK on Docker for ARM64 (Raspberry Pi 4) for building APK
[英]building android sdk tools (aapt, adb, etc.) for arm/arm64
我目前對構建用於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”將為手臂環境構建圖像。 但是,當我嘗試“ 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]
如下所示,它需要未與android打包在一起的libgcc libstc ++。
最后,我只是根據AOSP源代碼構建了自己的aapt。 這比我最初想象的要容易得多。 為此,我修改了構建腳本,以為“目標”體系結構而不是“主機”體系結構構建二進制文件。
https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp
內置的二進制文件在這里,以防其他人需要它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.