交叉编译Android平台glib库和其他一些库

最近有需要把glib库编译上Android上。网上搜索了一下,发觉有人已经写了详细的编译步骤出来了。

编译可在Android上运行的依赖库(一):glib库
交叉编译Android平台glib库

但是按照其方法还是有不少问题。我也不想在这里说明了。因为我估计这些问题可能和你的编译环境等有关系。每个人的机器环境可能都有小小区别。虽然文章也給了具体编译环境的说明,和编译的软件的版本信息。理论上应该没有太多问题。但是我实质上还是遇到问题。 现在提供一个docker来统一编译环境,这样就可以减少问题的存在。而且还提供了编译脚本。其实我已经在建立docker的时候也顺便把编译的工作做了。节省时间。你只要把

docker pull daozhao/glib-android-build-docker

下来,就可以直接使用了。使用的编译方式与文中有点区别,使用standalone的方式编译。我觉得这样的方式比较方便,特别需要对C++的支持。

编译了glib库及依赖包列表:
1) iconv (1.14) https://www.gnu.org/software/libiconv/
2) gettext (0.19.8) https://www.gnu.org/software/gettext/
3) pcre (8.40) http://www.pcre.org/
4) libffi (3.2.1) https://sourceware.org/libffi/
5) glib (2.44.1) https://developer.gnome.org/glib/stable/

其他一下库的包列表
6) jansson (2.10) http://www.digip.org/jansson/
7) gengetopt (2.22.6) https://www.gnu.org/software/gengetopt/gengetopt.html
8) libsrtp (2.0.0) https://github.com/cisco/libsrtp
9) gmp (6.1.2) https://gmplib.org/
10) nettle (3.1) https://www.lysator.liu.se/~nisse/nettle/
11) gnutls (3.5.13) http://www.gnutls.org/
12) libnice (0.1.14) https://nice.freedesktop.org/wiki/
13) libmicrohttpd (0.9.54) https://www.gnu.org/software/libmicrohttpd/

使用方法

docker run -it daozhao/glib-android-build-docker bash

相关信息:

NDK=/home/data/android-ndk-r13b
SYSROOT=/home/data/standalone_toolchain/sysroot
.a & .so 文件在目录 /home/data/standalone_toolchain/sysroot/usr/lib/
.h文件在目录 /home/data/standalone_toolchain/sysroot/usr/include/
arm-linux-androideab* 文件在目录 /home/data/standalone_toolchain/bin/

编译nginx到Android上踩坑了

上个月老细又话把产品移植到android上,哭吧。。。又一堆东西要搞了。收到任务,第一个移植的就是nginx,因为我们的软件使用了nginx作为http服务器,并且针对服务写了些插件绑定在nginx上。心想这个android也是linux内核的,应该左个跨平台编译就差不多了。谁知道折腾了一个多星期。

如果大家只是想最快编译一个nginx上android就不用看我的文章。直接在这里andoid-nginx下载这个针对android修改好的编译配置就可以了。想了解我采坑的就继续看下去。

编译nginx for android主要参考了 这个帖子和另外一个帖子。但是结合自己的遇到的情况做了一些调整。虽然编译不是很顺利,一路遇到不少问题。不过通过万能的google解决了。历尽千辛万苦终于编译完成了。

其中一个主要的修改是对 auto/types/sizeof文件进行修改,由于configure会对编译出来的测试程序并运行,测试出int,long等数值的长度。由于修改了编译器,编译出来的文件只能在arm的系统上跑,那么在编译的主机上是不能跑的。帖子的方法是教你写一个固定的值,我觉得不是太好,事实上也的确不太好。于是我把这个测试程序的编译器改成我编译主机(用的是mac osx系统)的gcc(其实是clang)。还有一个问题就是我的系统是64位的。而我的目标的android是32位的。不过好彩gcc(其实是clang编译器)有一个参数可以编译32位的程序,“-m32″

#ngx_test=”$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
ngx_test=”gcc -m32 $CC_TEST_FLAGS $CC_AUX_FLAGS \

继续阅读“编译nginx到Android上踩坑了”

中兴V880 android手机使用感受

中兴V880 android手机是一部性价比非常高的android的手机。目前价格司999元左右。我在3个月前购买的时候也是999元。这部机的规格就不多说了,大家可以搜索下。

先来张与HTC Legend的对比照片。

中兴V880

继续阅读“中兴V880 android手机使用感受”

htc hero 1天试用感受

上星期六,老婆的朋友给了一台hero过来,帮忙搞搞手机上网设置。所以有幸玩了一下hero。其实这台运行google开发的手机操作系统android的hero是目前我的手机换机首选,不过感觉价格还是比较贵,一路都没有下手,加上买了台ipod touch 第三代。觉得再买台智能手机好像也没有太大的必要。

这里讲讲一些总体试用的感受吧。

1、拿起hero感觉有点重,不太习惯,样子还是挺好看的。

2、那个轨迹球挺好玩的。

3、操作起来还算流畅。

4、操作和使用需要一点时间适应。感觉ipod touch的操作更加人性化。

5、上网的显示效果不错,基本和电脑上的一样。

6、手头上这台机只有繁体中文和英文选择。没有简体中文。

继续阅读“htc hero 1天试用感受”