在 Intel x86平台上,为Android应用程序编译ZeroMQ库

分享于 

3分钟阅读

应用开发

  繁體

介绍

ZeroMQ是世界上程序员广泛使用的开源库。

构建环境准备

构建ZeroMQ的首要目标是为依赖Android NDK的x86创建单独的独立工具链。

  • 下载,并安装最新的Android NDK:http://developer.android.com/tools/sdk/ndk/index.html,在本文中,使用android-ndk-r10d-linux-x86_64
  • 修复make-standalone-toolchain.sh中的已知问题,方法是应用https://code.google.com/p/android/issues/detail?id=74145,没有这个补丁,下一步构建将失败
  • 为Android x平台生成独立的工具链, ./home/xxx/android-ndk-r10c/build/tools/make-standalone-toolchain.sh --arch=x86 --toolchain=x86-4.9 --install-dir=/home/xxx/android-standalone-toolchain-x86 你应该遵循以下两个建议以避免意外的构建问题:
  • 在单独的目录中生成单个x工具链,不要在一个目录中混合x工具链和ARM工具链
  • 在/home目录中安装独立的工具链,以帮助避免根/无根权限问题
  • 配置环境变量, export PATH=/home/xxx/android-standalone-toolchain-x86/bin:$PATH export OUTPUT_DIR=/home/xxx/tmp/zeromq-android
  • 为Android x构建ZeroMQ

    以下步骤将向您展示如何与Zzmq及JAR一起构建ZeroMQ,以在Android中直接使用并加载到APK文件中。

  • 下载源代码,并构建ZeroMQ 3. x, mkdir/home/xxx/tmp cd/home/xxx/tmp git clone https://github.com/zeromq/zeromq3-x.git cd zeromq3-x/./autogen.sh./configure --host=i686-linux-android --prefix=$OUTPUT_DIR LDFLAGS="-L$OUTPUT_DIR/lib" CPPFLAGS="-fPIC -I$OUTPUT_DIR/include" --enable-static --disable-shared LIBS="-lgcc" make make install
  • 下载源代码,并构建jzmq, cd/home/xxx/tmp git clone https://github.com/zeromq/jzmq.git cd jzmq/./autogen.sh./configure --host=i686-linux-android --prefix=$OUTPUT_DIR LDFLAGS="-L$OUTPUT_DIR/lib" CPPFLAGS="-fPIC -I$OUTPUT_DIR/include" --disable-version --with-zeromq=$OUTPUT_DIR LIBS="-lpthread -lrt" make make install 如果在执行"./configure"时出现故障,请删除LIBS="-lpthread -lrt",然后重试
  • 将libjzmq.so和zmq.jar文件复制到所需的目录,现在ZeroMQ已经成功构建! cp/home/xxx/tmp/zeromq-android/lib/libjzmq.so/home/xx/tmp/cp/home/xxx/tmp/zeromq-android/share/java/zmq.jar/home/xx/tmp/