- mupdf的源碼地址
https://www.mupdf.com/downloads/index.html
注意:1.11版(包括)之后jni層和view層進行了分離展辞,jni接口發(fā)生很大變化沃但。使用新版so是無法向前兼容,所以使用老版本的項目只能選擇1.10a之前的版本敏晤。查看https://mupdf.com/docs/android-sdk.html睁枕,可以發(fā)現(xiàn)最新版本已經(jīng)可以通過gradle遠程引入aar(可以從這里提取so),使用十分方便徘六。
我們項目比較老,使用的是舊版的mupdf榴都,并且進行了很多修改待锈。這里選擇mupdf-1.9a-source.tar.gz(之后會提到原因)
- 工具和環(huán)境
win10
Cygwin (安裝教程:http://blog.csdn.net/heshushun/article/details/78664384)
- 編譯過程
- make generate
下載后直接ndk-build會報錯缺少頭文件,需要先進行make generate嘴高。
打開Cygwin進入項目根目錄(/cygdrive下可以找到windows盤)竿音,執(zhí)行make generate命令,會自動生成缺少的文件拴驮。
- 修改ndk配置
進入platform\android\viewer目錄下谍失,修改local.properties中的Android SDK和NDK的路徑(如果沒有,參考其它android項目創(chuàng)建)
打開platform\android\jni\mupdf.c找到如下:
#define JNI_FN(A) Java_com_artifex_mupdfdemo_ ## A
#define PACKAGENAME “com/artifex/mupdfdemo”
修改成我們的MUPDF所在的包名莹汤。
打開Application.mk選擇我們需要打包的平臺快鱼。如:
APP_ABI := armeabi-v7a arm64-v8a
- ndk-build
打開cmd,進入platform\android\viewer目錄,執(zhí)行ndk-build ,靜等幾分鐘,大功告成抹竹。
- 崩潰問題
我們項目使用v7的so线罕,發(fā)現(xiàn)在打開文件時有幾率發(fā)生崩潰。對不同版本的so進行測試后發(fā)現(xiàn)窃判,1.9a的崩潰率最低钞楼,所以本次使用1.9a。