Android原生(Native)C开发之五:zlib移植笔记
来源:互联网 发布:重庆车牌选号软件 编辑:程序博客网 时间:2024/05/16 01:58
原文地址::http://www.csharpwin.com/dotnetspace/4095r6563.shtml
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平台运行成功!
- Android原生(Native)C开发之五:zlib移植笔记
- Android原生(Native)C开发之五:zlib移植笔记
- Android原生(Native)C开发之四:SDL移植笔记
- Android原生(Native)C开发之六:libpng移植笔记
- Android原生(Native)C开发之七:libjpeg移植笔记
- Android原生(Native)C开发之六:libpng移植笔记
- Android原生(Native)C开发之四:SDL移植笔记
- Android原生(Native)C开发之四:SDL移植笔记
- Android原生(Native)C开发之七:libjpeg移植笔记
- Android原生(Native)C开发之三
- Android原生(Native)C开发
- Android原生(Native)C开发
- Android原生(Native)C开发之二:framebuffer篇
- Android原生(Native)C开发之九:OpenGL ES初探
- Android原生(Native)C开发之二 framebuffer篇
- 转载: Android原生(Native)C开发之…
- 【React Native开发】React Native移植原生Android项目(4)
- Android Native C 之四:SDL移植笔记
- 数据结构
- 让Ubuntu虚拟机自动挂载VirtualBox的数据空间
- STL(map)
- mysql索引以及explain命令
- 密码的恢复
- Android原生(Native)C开发之五:zlib移植笔记
- asp.net运行原理
- cookie中文编码问题,在服务端编码,在客户端解码
- 转载:Kilxy的WF(Windows Workflow Foundation)学习手记(一)
- Android原生(Native)C开发之六:libpng移植笔记
- UChome 代码分析讲解:uc_client模块的client.php文件
- zlib 与 libpng 的配置与使用
- m的粗略理解----gabu
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)