zlib(http://www.zlib.net/)是一套非常流行的且开源的压缩、解压缩库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE演算法,最初是为libpng函式库所写的,后来普遍为许多软体所使用。
zlib当前版本是 1.2.3,其移植性非常好,本人已经在Windows、Linux、WinCE、Symbian等平台成功地移植了zlib,当然也包括今天要移植的平台:Android。
首先,从zlib 的官方网站下载zlib的源代码:zlib123.zip,解压后得到一个目录zlib-1.2.3,zib已经提供好了一个Makefile,改动几行(19、20、27、36、37)就可以动手编译了,改动如下:
......
CC = arm-none-linux-gnueabi-gcc
CFLAGS = -O2
......
LDFLAGS=libz.a -s -static
......
AR = arm-none-linux-gnueabi-ar rc
RANLIB = arm-none-linux-gnueabi-ranlib
......
进入zlib-1.2.3目录,在命令行输入:make 即可。
最后会生成两个可Android可执行文件: example 、minigzip 。
运行Android模拟器, 进入命令行,将两个可执行文件 push 至Android模拟器,再执行,命令如下:
$adb push example /dev/sample/example
$adb push minigzip /dev/sample/minigzip
$adb shell chmod 777 /dev/sample/*
$adb shell
#cd /dev/sample
#./example
zlib version 1.2.3 = 0x1230, compile flags = 0x55
uncompress(): hello, hello!
gzread(): hello, hello!
gzgets() after gzseek: hello!
inflate(): hello, hello!
large_inflate(): OK
after inflateSync(): hello, hello!
inflate with dictionary: hello, hello!
#ls -l
ls -l
-rwxrwxrwx root root 513228 2008-11-10 04:18 minigzip
-rwxrwxrwx root root 517640 2008-11-10 04:18 example
-rwxrwxrwx root root 31 2008-11-10 04:28 foo.gz
#exit
$adb pull /dev/sample/foo.gz d:/foo.gz
其中,“$”是Linux或Cygwin命令行的提示符,#是Android命令行的提示符。
最后,用 ls -l 命令查看当前目录,会发现一个 foo.gz的文件,这个文件就是example生成的,退出adb shell,用命令: adb pull /dev/sample/foo.gz d:/foo.gz 可将模拟器上生成的文件 foo.gz pull至D盘根目录,用winrar或7zip可查看这个文件的内容,正是代码中所写的“hello, hello! ”!
至此,zlib移植Android平台运行成功!
分享到:
相关推荐
perl-Compress-Zlib最新版本,
[14本经典Android开发教程]-11-Android系统移植技术详解 -------------------------------------------------- (1)安装如下软件包 sudo apt-get install git-core sudo apt-get install gnupg sudo apt-get install...
里面包含有一些比较老版本的依赖,这些rpm包很不好找,费了好大劲才找到,给有需要的人,里面包含有openssl-1.1.1b.tar、openssl-devel-1.0.2k-16.el7.x86_64.rpm、zlib-1.2.7-18.el7.x86_64.rpm、zlib-devel-1.2.7-...
Zlib主要用在上位机,因为无论是Windows、Linux、MAC都有足够的内存,单片机RAM非常小,源码中MAX_WBITS默认是15,需要两个32k才能正常工作,compress2也只能实现一次数据传入压缩。都不适合单片机使用。我在移植时...
zlib-devel-1.2.7-18.el7.x86_64.rpm zlib-1.2.3-4.el5.i386.rpm zlib-devel-1.2.3-4.el5.i386.rpm 安装包
ZLIB 解压缩代码移植到STM上
今天,zlib是一种事实上的业界标准,以至于在标准文档中,zlib和DEFLATE常常互换使用。数以千计的应用程序直接或间接...因为其代码的可移植性,宽松的授權许可以及较小的内存占用,zlib在许多嵌入式设备中也有应用。
今天在云服务器上装nginx,需要先安装一些依赖库比如zlib,但是安装zlib时候报错。 yum install -y zlib zlib-devel (-y 指的是如果需要选yes no的自动y)下面是报错 Protected multilib versions: zlib-1.2.7-17...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
这是著名的zlib库到Rust语言的不完整移植。 将zlib移植到Rust的原因有很多: * To provide an implementation of a useful, common library. zlib is used in many applications and libraries. * To provide a...
ZLib.js zlib 实现。 ZLib.js 由。浏览器和NW.js(node-webkit) < script src = "<module> < / script >< script src = "<module> < / script >< script >var ziped = new Uint8Array(...);var ...
zlib-devel-1.2.7-17.el7
在SylixOS网站的百科页面有“Zlib移植指南”根据指南的说明,可以方便的进行zlib库的移植和安装。
perl-Compress-Zlib-1.16-12.i386.rpm
17/09/11 14:30:49 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library Native library checking: hadoop: true /taidl/hadoop/lib/native/libhadoop.so zlib: true /lib64/libz.so.1 ...
zlib开发工具包 图像开发中常用的开发包
官方离线安装包,亲测可用
出现这个问题后用老版本覆盖用:zlib1g-dev : Depends: zlib1g (= 1:1.2.3.3.dfsg-15ubuntu1) but 1:1.2.3.4.dfsg-3ubuntu1 is to be installed
minizip-ng:zlib发行版中流行的zip操作库的分支
版本号:zlib-1.2.4 zlib是提供数据压缩用的函式库