编译使用Android源码中的GIF图片工具包--framesequence

一、 framesequence源码的地址

framesequence是Androidframework中ex里的一个工具包,其源码地址在

https://android.googlesource.com/platform/frameworks/ex/

二、依赖包giflib的源码地址

framesequence其jin依赖于giflib,所以,得下载其源码,地址在

https://android.googlesource.com/platform/external/giflib/

三、 依赖包webp的源码地址

framesequence其jin也依赖于webp,其源码地址在

https://android.googlesource.com/platform/external/webp/

四、 编译giflib和webp

jin的编译可以分为动态链接库和静态链接库,动态库的编译方式是BUILD_SHARED_LIBRARY ,编译成动态链接库就会生成.so文件,其编译一次后可以给其他库共享;静态库的编译方式个是BUILD_STATIC_LIBRARY,静态链接库就会生成.a文件,其编译会将源码直接插入到所依赖的库里面去,而且不能给其他共享。
编译使用Android源码中的GIF图片工具包--framesequence_第1张图片

首先配置好ndk的环境,以eclipse为例,如图:

编译使用Android源码中的GIF图片工具包--framesequence_第2张图片

然后,对着工程点击右键,添加本地支持,如图:

编译使用Android源码中的GIF图片工具包--framesequence_第3张图片

默认不需要修改编译文件Android.mk,内容如图:

编译使用Android源码中的GIF图片工具包--framesequence_第4张图片

右键工程,然后build即可,如图:

编译使用Android源码中的GIF图片工具包--framesequence_第5张图片

若编译没报错,则效果如图:

编译使用Android源码中的GIF图片工具包--framesequence_第6张图片

webp的编译与giflib相同,就不重复了,webp的工程目录如图:

编译使用Android源码中的GIF图片工具包--framesequence_第7张图片

然后eclipse导入framesequence工程,导入后,右键工程,添加native support,将对应的文件拷贝到下图对应的目录下,文件目录如下图:

编译使用Android源码中的GIF图片工具包--framesequence_第8张图片

若有些.h或者.cpp文件报错,则可能是头文件引入错误,正确的引入如图:

编译使用Android源码中的GIF图片工具包--framesequence_第9张图片

头文件引入没问题后,则修改Android.mk文件,文件内容如图:

编译使用Android源码中的GIF图片工具包--framesequence_第10张图片

编译成功后如图:

编译使用Android源码中的GIF图片工具包--framesequence_第11张图片
注:链接的方式只需选择一种,静态链接的方式与动态的最大不同之一的是,静态依赖的最终只会生成一个libframesequence.so文件,动态的依赖,则会生成多个.so文件。如:giflib使用的动态的依赖方式,则会有一个giflib.so

五、运行framesequence实例

随着framesequence的导入,会有一个sample工程,将刚才编译出的so文件添加到工程的lib/芯片目录下/,再将framesequence工程导出jar包即可,如图:
编译使用Android源码中的GIF图片工具包--framesequence_第12张图片

选择jar
编译使用Android源码中的GIF图片工具包--framesequence_第13张图片

选择导出文件src目录即可,如图:
编译使用Android源码中的GIF图片工具包--framesequence_第14张图片

然后将framesequence.jar和其lib下的so一起添加到实例工程里,如图:
编译使用Android源码中的GIF图片工具包--framesequence_第15张图片

然后,运行该实例,即可播放gif图片了,如图:
编译使用Android源码中的GIF图片工具包--framesequence_第16张图片

六、实例资源

实例资源地址在:http://download.csdn.net/detail/haunghui6579/9289857

你可能感兴趣的:(Android)