Android studio .a靜態(tài)庫的生成與調(diào)用

編寫生成.a庫

第一步: 創(chuàng)建JNI的hello程序


image.png

第二步:在cpp下創(chuàng)建include/calcul.h


image.png

calcul.h

//
// Created by Administrator on 2020/11/12.
//

#ifndef JNITEST_CALCUL_H
#define JNITEST_CALCUL_H

int add(int a , int b);

#endif //JNITEST_CALCUL_H

第三步:寫calcul.cpp來實現(xiàn)頭文件calcul.h中的方法


image.png

calcul.cpp

#include <jni.h> 
#include "include/calcul.h" //引用頭文件,相當于java中實現(xiàn)接口,頭文件為接口,本cpp為實現(xiàn)

int add(int a , int b){
    return a + b;
}

第四步: 在CMakeLists.txt中加入calcul.cpp


image.png

第五步: 在native-lib.cpp中調(diào)用add方法


image.png

第六步: 在MainActivity中調(diào)用


image.png

以上是c代碼例子編寫 , 下面生成.a靜態(tài)庫供別人使用
打開CMakeLists.txt文件嘉汰,
將add_library下的SAHRED改為STATIC鞋怀,
將native-lib.cpp刪掉 ,
將MainActivity中native方法刪去

image.png

image.png

直接運行或者編譯一下都行密似,.a文件就會生成了,別人引用就能直接使用里面的方法


image.png

使用.a庫

第一步:將.a文件需要的頭文件放到指定目錄葫盼,這里放在了include/下面


image.png

第二步:在main下創(chuàng)建jniLibs把需要的.a文件粘貼進去
![image.png](https://upload-images.jianshu.io/upload_images/24519578-de81ec53ca66f87f.png?
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

第三步:修改CMakeLists.txt
添加include_directories(include/) , 括號里是.a文件的頭文件
添加

add_library(native-lib STATIC IMPORTED)
set_target_properties(
        native-lib  #這個一般是.a文件去掉lib和后綴之后的名字残腌,
                    #可以在生成的時候自己設(shè)置抛猫,
                    #上次沒改所以還是native-lib,
                    #與這次項目重名了闺金,
                    #所以這次項目改成了native-lib123
        PROPERTIES IMPORTED_LOCATION
        ${CMAKE_SOURCE_DIR}/../jniLibs/arm64-v8a/libnative-lib.a    #.a文件的路徑讥巡, ${CMAKE_SOURCE_DIR}這個是cpp下的路徑
)

在 target_link_libraries 中添加

target_link_libraries( # Specifies the target library.
                        native-lib123
                        native-lib #這個是.a靜態(tài)庫名字
                       # Links the target library to the log library
                       # included in the NDK.
                       ${log-lib} )
image.png

image.png

在 MainActivity 中使用


image.png

直接使用add()方法,他的實現(xiàn)在.a靜態(tài)庫中


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姆蘸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子推捐,更是在濱河造成了極大的恐慌,老刑警劉巖侧啼,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牛柒,死亡現(xiàn)場離奇詭異,居然都是意外死亡痊乾,警方通過查閱死者的電腦和手機皮壁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哪审,“玉大人蛾魄,你說我怎么就攤上這事⌒牵” “怎么了畏腕?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長茉稠。 經(jīng)常有香客問我描馅,道長,這世上最難降的妖魔是什么而线? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任铭污,我火速辦了婚禮,結(jié)果婚禮上膀篮,老公的妹妹穿的比我還像新娘嘹狞。我一直安慰自己,他們只是感情好誓竿,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布磅网。 她就那樣靜靜地躺著,像睡著了一般筷屡。 火紅的嫁衣襯著肌膚如雪涧偷。 梳的紋絲不亂的頭發(fā)上簸喂,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音燎潮,去河邊找鬼喻鳄。 笑死,一個胖子當著我的面吹牛确封,可吹牛的內(nèi)容都是我干的除呵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼爪喘,長吁一口氣:“原來是場噩夢啊……” “哼颜曾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秉剑,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泛啸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后秃症,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體候址,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年种柑,在試婚紗的時候發(fā)現(xiàn)自己被綠了岗仑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡聚请,死狀恐怖荠雕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驶赏,我是刑警寧澤炸卑,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站煤傍,受9級特大地震影響盖文,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚯姆,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一五续、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧龄恋,春花似錦疙驾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春扳肛,著一層夾襖步出監(jiān)牢的瞬間偏竟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工敞峭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蝉仇。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓旋讹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親轿衔。 傳聞我的和親對象是個殘疾皇子沉迹,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

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