使用libxml for Android

时间:2012-08-21 09:38:59

标签: android android-ndk libxml2

我们的应用程序适用于Mac和Windows平台,现在面向Android和iOS, 使用libxml解析XML数据的应用程序,我的问题是?

1 - 我是否需要为Android平台构建libxml或者它已经作为NDK的一部分构建?

如果需要构建任何指针如何启动?

1 个答案:

答案 0 :(得分:9)

您有两种选择:

编写一个可以成功构建libxml的Android.mk,并依赖于主Android.mk中的结果。您可以尝试在Mac上本地构建libxml(使用configure脚本和make)以了解需要构建哪些文件,以及是否需要传递任何特殊标志。

或者,使用libxml的configure脚本并使用NDK的工具链为Android构建libxml。你必须做这样的事情:

NDK_ROOT=/path/to/ndk
API_LEVEL=YOUR_API_LEVEL
SYSROOT=$NDK_ROOT/platforms/android-$API_LEVEL/arch-arm

export CC="$NDK_ROOT/toolchains/arm-linux-androideabi-4.4.3/Darwin-x86/bin/arm-linux-androideabi-gcc"
export CFLAGS="--sysroot=$SYSROOT"
export LDFLAGS="--sysroot=$SYSROOT"

./configure --host=arm-linux-gnueabi --enable-static --disable-shared
make libxml2.la

从技术上讲,Android的主机三元组是arm-linux-androideabi,但是大多数配置脚本都无法识别它,而且出于我们的目的,-gnueabi足够接近。

我最后建议make libxml2.la而不仅仅是make因为测试没有正确构建。生成的库最终将位于.libs/文件夹中。

第二种方法可能会更容易一些,但如果您打算为多种架构(arm,armv7-a,甚至x86和mips)构建应用程序,编写自己的Android.mk将节省您的时间运行