簡體   English   中英

為arm / arm64構建android sdk工具(aapt,adb等)

[英]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

內置的二進制文件在這里,以防其他人需要它們。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM