一、 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文件,其编译会将源码直接插入到所依赖的库里面去,而且不能给其他共享。
首先配置好ndk的环境,以eclipse为例,如图:
然后,对着工程点击右键,添加本地支持,如图:
默认不需要修改编译文件Android.mk,内容如图:
右键工程,然后build即可,如图:
若编译没报错,则效果如图:
webp的编译与giflib相同,就不重复了,webp的工程目录如图:
然后eclipse导入framesequence工程,导入后,右键工程,添加native support,将对应的文件拷贝到下图对应的目录下,文件目录如下图:
若有些.h或者.cpp文件报错,则可能是头文件引入错误,正确的引入如图:
头文件引入没问题后,则修改Android.mk文件,文件内容如图:
编译成功后如图:
注:链接的方式只需选择一种,静态链接的方式与动态的最大不同之一的是,静态依赖的最终只会生成一个libframesequence.so文件,动态的依赖,则会生成多个.so文件。如:giflib使用的动态的依赖方式,则会有一个giflib.so
五、运行framesequence实例
随着framesequence的导入,会有一个sample工程,将刚才编译出的so文件添加到工程的lib/芯片目录下/,再将framesequence工程导出jar包即可,如图:
选择jar
选择导出文件src目录即可,如图:
然后将framesequence.jar和其lib下的so一起添加到实例工程里,如图:
然后,运行该实例,即可播放gif图片了,如图:
六、实例资源
实例资源地址在:http://download.csdn.net/detail/haunghui6579/9289857