Android 構(gòu)建MuPdf 編譯so庫 并使用

MuPdf官網(wǎng)
MuPdfAndroid開發(fā)文檔
本次使用版本 14

這篇文章記錄編譯mupdf-android-viewer庫舶担,打包成so庫璧针,并在項目中使用.請參考

編譯so庫

  1. 首先還是獲取mupdf-android-viewer庫到本地豌鹤,使庫能夠正常運行魁索,并安裝到手機上,看看效果计雌。
git clone --recursive git://git.ghostscript.com/mupdf-android-viewer.git
  1. 生成必要文件

mupdf-android-viewer/jni/libmupdf目錄下執(zhí)行make generate命令陪汽。

?  libmupdf git:(d63bd227) pwd
/Users/fengxing/openProject/mupdf-android-viewer/jni/libmupdf
?  libmupdf git:(d63bd227) make generate
  1. 添加local.properties 文件
    在工程跟目錄下創(chuàng)建local.properties文件配置sdk训唱,ndk路徑
ndk.dir=/Users/fengxing/Library/Android/sdk/ndk-bundle
sdk.dir=/Users/fengxing/Library/Android/sdk
  1. cmake編譯
    在根目錄執(zhí)行make進行編譯,如果編譯成功挚冤,那so文件會生成在這里况增。


    image.png

目錄
mupdf-android-viewer/jni/build/intermediates/ndkBuild/debug/obj/local

使用so庫

現(xiàn)在我們已經(jīng)得到了so庫,現(xiàn)在我們就使用它训挡。

  1. 創(chuàng)建新項目

創(chuàng)建一個新項目澳骤,項目的名字就叫MuPdfSo

  1. 導(dǎo)入so庫
    把編譯的so庫導(dǎo)入新項目中


    image.png

在gradle中添加代碼

defaultConfig {
        applicationId "cn.picc.com.mupdfso"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        ndk {
            // 設(shè)置支持的SO庫架構(gòu)
            abiFilters 'armeabi'
        }
    }
  1. 創(chuàng)建兩個module
    看mupdf-android-viewer的目錄結(jié)構(gòu)
image.png

可以看出來mupdf-android-viewer由三部分組成,

app:顯示pdf
lib:UI顯示層
jni:MuPdf核心庫

調(diào)用順序:
app-->lib庫-->jni庫<--> JNI <--> .h -->.c

我們也根據(jù)這個模式創(chuàng)建兩個module

一個名字叫PdfSo澜薄,定義native方法的为肮。
一個名字叫PdfUi,定義顯示UI的肤京。

PdfSo

首先來搞PdfSo這個module弥锄,PdfSo主要是定義了一些native,和c文件進行溝通,這里我們復(fù)制mupdf-android-viewer定義好的類籽暇。

image.png

com.artifex.mupdf.fitz這個包,整個全部復(fù)制出來饭庞,記住 是全部哦戒悠。放到PdfSo庫中,類似這樣舟山。

image.png

因為c代碼庫中定義的包就這個com.artifex.mupdf.fitz 所以native也必須是這個包绸狐。
我們來看下c代碼和h代碼。

image.png
image.png

看到?jīng)] 在c代碼中有個pkg累盗,這個就是咱們定義的報名寒矿,可以修改成我們的報名,就不需要使用他們的包明了若债。

.c文件可以修改報名符相,是因為 看圖

image.png

是因為根據(jù)包名去找字段,但是.h中的字段是寫死的蠢琳,只改c代碼的包名可能還會有問題啊终。

好吧,那暫時先使用他們的包名傲须。

PdfUi庫

這個就簡單了:把lib庫的代碼直接占過去就行

image.png

別忘了資源文件蓝牲。

編譯一下,也就是 包明的問題泰讽,分分鐘解決例衍。

在app主模塊測試一下,可以使用了已卸。佛玄。。咬最。

特此記錄翎嫡。

自定義界面

目前我沒有這方便需求。
簡單顯示就可以的
使用so庫 api大小增加8m左右
如果需要自定義界面或者需要什么功能
源碼都有了 自己搞把永乌。惑申。。翅雏。圈驼。。望几。绩脆。

其它PDF請參考

demo地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子靴迫,更是在濱河造成了極大的恐慌惕味,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玉锌,死亡現(xiàn)場離奇詭異名挥,居然都是意外死亡,警方通過查閱死者的電腦和手機主守,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門禀倔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人参淫,你說我怎么就攤上這事救湖。” “怎么了涎才?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵鞋既,是天一觀的道長。 經(jīng)常有香客問我憔维,道長涛救,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任业扒,我火速辦了婚禮检吆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘程储。我一直安慰自己蹭沛,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布章鲤。 她就那樣靜靜地躺著摊灭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪败徊。 梳的紋絲不亂的頭發(fā)上帚呼,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音皱蹦,去河邊找鬼煤杀。 笑死,一個胖子當著我的面吹牛沪哺,可吹牛的內(nèi)容都是我干的沈自。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼辜妓,長吁一口氣:“原來是場噩夢啊……” “哼枯途!你這毒婦竟也來了忌怎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤酪夷,失蹤者是張志新(化名)和其女友劉穎榴啸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晚岭,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡插掂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了腥例。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡酝润,死狀恐怖燎竖,靈堂內(nèi)的尸體忽然破棺而出灌诅,到底是詐尸還是另有隱情喳坠,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布遥赚,位于F島的核電站疏咐,受9級特大地震影響纤掸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浑塞,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一借跪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酌壕,春花似錦掏愁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至糊昙,卻和暖如春辛掠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背释牺。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工萝衩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人船侧。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓欠气,卻偏偏與公主長得像,于是被迫代替她去往敵國和親镜撩。 傳聞我的和親對象是個殘疾皇子预柒,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容