Android-x86 NDK for Eclair

By cwhuang, 2010 年 02 月 05 日

藉著 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 一下取得我最新的修改。

Leave a Reply

You must be logged in to post a comment.

OfficeFolders theme by Themocracy