参考文章如下:
http://nodejs.netease.com/topic/540702e0898634292cd0a588
https://github.com/NetEase/libpomelo2
编译libjpomelo.so耗费了2天多的时间,资料很少,期间走了很多弯路,这里记录下。
1、官网下载libpomelo2源代码。
2、准备android ndk 10的包,我ubuntu是32位的,所以下载的是android-ndk32-r10b-linux-x86.tar.bz2
。
3、打开Terminal终端,最好root权限。执行./android-toolchain.sh <ndk-dir>。这里的ndk-dir就是第二步中下载的ndk解压目录。执行完后,会在libpomelo根目录生成android-toolcahin目录,里面有交叉编译所需的所有头文件,库文件和可执行文件。
4、在执行./android-gen.sh之前,我们需要设置一些环境变量,android-toolchain.sh中的export ANDROID_TOOLCHAIN_DIR=$PWD/android-toolchain这是在android-toolchain.sh执行结束实际上已经消失了,或者说没有起作用,所以我们要手动设置
vim /etc/profile,在末尾增加
export ANDROID_TOOLCHAIN_DIR=#PWD/android-toolchain,这里的#PWD应该为你的根目录,这里指向的则是刚才生成的android-toolcahin目录。
export PATH=$ANDROID_TOOLCHAIN_DIR/bin:$PATH
export PATH=/home/wangc/android-ndk-r10b/platforms/android-9/arch-arm/usr/include:$PATH
export AR=arm-linux-androideabi-ar
export CC=arm-linux-androideabi-gcc
export CXX=arm-linux-androideabi-g++
export LINK=arm-linux-androideabi-g++
export PLATFORM=android
这里我们将android-gen.sh里面开始设置的环境变量手动设置一遍,因为在里面设置不顶用。。。
5、执行./android-gen.sh,然后会生成一个Makefile,然后make则会在out/Default/lib.target目录下生成libjpomelo.so了。在Default/obj.target目录下有libpomelo2.a。至此库文件就生成完了。这里要注意查看下文件类型,file libjpomelo.so,如显示平台为ARM ELF,恭喜你,OK了。
6、eclipse测试。将根目录下的test/Client.java和Test.java拷贝到android工程下,注意目录结构,如图所示:
Testpomelo.java代码如下:
<span style="font-size:14px;">public class Testpomelo extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_testpomelo); Test.main(null); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.testpomelo, menu); return true; } } </span>
小伙伴们,还不赶快运行!