$
repo init -u git://git.android-x86.org/manifest.git -b eclair-x86$
repo sync藉著 eclair-x86 branch 的釋出,順便 review 了一下 NDK for x86 的支援。原本的做法,要編譯給 x86 的 shared libraries 時需要指定 TARGET_PRODUCT=eeepc。但在加入多 x86 平台支援之後,「eeepc」其實已經不代表通用的 x86 平台。因此這個用法有商榷的必要。
另外 AOSP (以及 Android-x86)的 source tree 雖含有 NDK 和 toolchains,但 NDK 卻無法直接使用 AOSP 的 toolchains。還要叫使用者自行下載,真是多此一舉。
經過我的修改後,讓 development/ndk 可以直接的使用 prebuilt 中的 toolchains。同時,預設的 toolchains 就是 x86。因此不需要再指定 TARGET_PRODUCT=eeepc 了。
簡單來說,只需下列步驟就可以使用 Android-x86 source tree 中的 NDK:
$ cd development/ndk
$ sh build/host-setup.sh
Checking host development environment.
NDK Root : /home/cwhuang/git/android-x86-2.1/development/ndk
GNU Make : make (version 3.81)
Awk : awk
Platform : linux-x86
Generate : out/host/config.mk
Toolchain : Checking for arm-eabi-4.2.1 prebuilt binaries
Toolchain : Checking for i686-unknown-linux-gnu-4.2.1 prebuilt binaries
Host setup complete. Please read docs/OVERVIEW.TXT if you don't know what to do.
$ make APP=hello-jni
其中 hello-jni 也可以換成其它的 sample applications:hello-gl2, san-angeles, two-libs
如果想編譯給 arm 用的版本也可以。只要指定 NDK_TOOLCHAIN 為 arm 版本就行。例如:
$ make NDK_TOOLCHAIN=arm-eabi-4.4.0 APP=xxx
記得 repo sync 一下取得我最新的修改。