MuPDF for Android编译过程小结
来源:互联网 发布:java电商架构设计 编辑:程序博客网 时间:2024/04/28 13:11
最近使用mupdf在自己的app上用来打开pdf类型的文件,把自己编译的过程在这里做个小小的记录
源码下载
首先需要把mupdf的源码下载下来为后续编译出so文件做准备,这里推荐官方的下载地址MuPdf官网,里面提供了git地址,这里还推荐另一个地址GITHUB地址 GITHUB地址,而且GITHUB上还有比较详细的文档说明。
源码编译
在编译前,GITHUB上的文档说了我们还需要下载一份Mupdf的第三方库的代码,在当前目录切到刚刚下载的Mupdf根目录使用git下载第三方代码
下载完后会发现thirdparty目录下多了好些非空文件夹
这就证明下载成功了。
接着需要使用make命令来编译下这些c代码,此时需要linux的环境,或者在windows环境下安装cygwin,这里我使用Vmware 安装了centos linux虚拟机,进入mupdf的根目录,在上面进行make ,使用make generate命令
这下mupdf的代码基本算是可以为android所用了
编译生成apk
这里假设你已经安装好了android开发环境(包括java,sdk,ndk)并配置好了环境变量,ant在这里也需要下载并配置环境变量下-----木有的自行百度吧,这方面资料网上很多了。
首先进入到mupdf的android目录(mupdf/platform/android),不是在刚刚说的根目录了
命令行进入后使用ndk-build生成libmupdf.so文件
然后使用ant debug编译apk
最后一步,安装到手机里就ok了
Finally,编译成功了,要移植到自己的项目就把对应的so文件和代码拷贝过去就ok啦。
上面我们用的是ant编译,现在来用gradle编译试试看
报错了,编译不通过,看提示缺少jni/libgs.so文件,这个so文件又是哪里定义的呢,看看gradle 编译脚本里的编译代码
/* This task builds the native part*/task buildNative(type: Exec,description: 'Compile JNI source via NDK') { println('executing buildNative') commandLine ndkBuildPath, '-C', file('.').absolutePath, 'SUPPORT_GPROOF=1' //'NDK_PROJECT_PATH=build','APP_BUILD_SCRIPT=src/main/jni/Android.mk'//force using appropriate Makefile}
ndk-build 后面有个SUPPORT_GPROOF=1参数,这个参数的目的是什么呢,很简单,看到jni/core.mk就知道了
ifdef SUPPORT_GPROOFinclude $(CLEAR_VARS)LOCAL_MODULE := gssoLOCAL_SRC_FILES := libgs.soinclude $(PREBUILT_SHARED_LIBRARY)endif
原来是为了导入一个libgs.so,这个so在GhostProof 在这里有提供下载,也提供了源码(但源码我一直下载不成功),将它下载下来后放到libs/目录下再来执行gradle assembleRelease 最终编译成功了得到了一个apk,具体到apk里会发现这个apk增加了一个可以给打开的pdf进行着色处理方面的功能,估摸着这个libgs.so就是为了这方面的准备吧,具体的我也没有去细探究了,有了解的可以提供点资料哈!
这次编译的源码我放在百度网盘上,大家有兴趣可以自己下载编译源码
0 0
- MuPDF for Android编译过程小结
- MuPDF 开源PDF库编译过程记录
- 在ubuntu上编译android的mupdf
- 使用Android NDK编译MuPDF 1.0
- Android:ubuntu下编译MuPDF源码
- webrtc android代码编译过程小结
- MuPdf编译so文件
- c++ mupdf编译
- 编译Mupdf源码
- Ubuntu14.04 vlc-for-android 编译过程
- linphone-android for mac编译过程记录
- Android MuPDF 部署
- Android MuPDF 部署
- MuPDF在Ubuntu 12.04编译
- 编译mupdf的ios版
- Window10下MuPDF源代码编译
- Debian squeeze 下 Android Froyo 编译过程小结
- android学习—— windows 下编译 mupdf 的android 源码
- iOS 沙盒 数据持久化
- 走迷宫机器人程序之3--main
- 判断是不是空格
- BaseAdapter之给 RecyclerView添加HeaderView
- 【Html】垂直居中-父元素高度确定的单行文本
- MuPDF for Android编译过程小结
- CocoaPods的安装
- 解决json_encode中文UNICODE转码问题
- Discuz! 全局变量 $_G 详解
- 关于cell的复用的机制,防止cell之间的内容发生混乱
- mask应用之制作颜色渐变字体
- Git设置代理访问GitHub和Bitbucket
- 苹果app发布和真机调试流程(企业开发者版)
- 关于vim复制剪贴粘贴命令的总结