jar包&aar包文件的區(qū)別

前言

前些日子,遇到了一個優(yōu)化SDK的需求腻脏,本地測試優(yōu)化都很順利鸦泳。可是發(fā)布到遠程以后永品,通過遠程導(dǎo)入jar后就出了問題做鹰。可是遠程代碼明明和本地一樣鼎姐,本地代碼導(dǎo)入流暢運行钾麸,遠程導(dǎo)入就報錯,后來才發(fā)現(xiàn)炕桨,是jar的鍋饭尝。原來jar在打包時,只包含class文件與清單文件献宫,沒有包含manifest文件,所以我們需要將SDK中定義的權(quán)限全部復(fù)制到導(dǎo)入jar的Activity中钥平,流暢運行℃⑼荆看來還是基礎(chǔ)知識匱乏涉瘾,遂來一波整理。

正文

一吭净、描述
  1. (*.jar)睡汹,JAR文件就是java Archive File,顧名思義寂殉,它是java的一種文檔格式囚巴。只包含了class文件與清單文件,不包含資源文件,如圖片等所有的res中的文件彤叉。找一個jar文件更改后綴名為"zip"或者"rar"格式庶柿,然后解壓該文件,打開解壓后的文件夾秽浇,內(nèi)涵"assets"浮庐、"com"、"META-INF"點擊com里面全都是“*.class”文件柬焕。
  • JAR文件格式以流行的ZIP文件格式文基礎(chǔ)审残。與ZIP不同的是,JAR文件不僅用于壓縮和發(fā)布斑举,而且還用于部署和封裝庫搅轿、組件和插件程序,并可被像編譯器和JVM這樣的工具使用富玷。在JAR中包含的特殊文件璧坟,如manifest和部署描述符,用來指示工具如何處理特定的JAR赎懦。JAR(java Archive , java歸檔文件)是與平臺無關(guān)的文件格式雀鹃,它允許將許多文件組合成一個壓縮文件。為J2EE應(yīng)用程序創(chuàng)建的JAR文件是EAR文件(企業(yè)JAR文件)励两。JAR文件格式提供了許多優(yōu)勢和功能黎茎,其中很多是傳統(tǒng)的壓縮格式如ZIP或者TAR所沒有提供的。它們包括:安全性伐蒋、減少下載時間工三、傳輸平臺擴展、包密封先鱼、包版本控制俭正、可一致性
  1. (*.aar),AAR(Android Archive)包是一個Android庫項目的二進制歸檔文件焙畔。我們隨便找一個arr文件掸读,然后修改后綴名為“zip”或“ara”格式,然后解壓該文件夾(每個arr解壓后的內(nèi)容可能會不一樣宏多,但是都會包含AndroidManifest.xml儿惫,classes.jar,res伸但,R.txt)
    *arr文件中包含所有資源肾请,class以及res資源文件。
二更胖、生成arr文件和jar文件铛铁。
  1. 生成jar文件
    在Android Studio中隔显,在某一個Moudule的Gradle腳本開頭聲明
apply plugin: 'com.android.library'

接著編譯該Module,編譯完成后會在Module的build->intermediates->bundles->bebug(release)->classes.jar

  1. 生成aar文件
    在Android Studio中饵逐,在某一個Moudle的Gradle腳本開頭聲明
apply plugin:'com.android.library'

接著編譯該Moudle括眠,編譯完成之后會在Module的build-->outputs-->aar-->xxxx.aar

三、使用
  1. *.jar文件拷貝到lib目錄中倍权,AndroidStudio項目中添加:
dependencies{
              compile fileTree(include: ['*.jar'],[dir:'libs'])
}

重新編譯即可掷豺。

  1. *.aar文件的使用有兩種方式,一種是在線的薄声,一種是本地添加当船。
  • 網(wǎng)絡(luò)加載
    直接使用遠程路徑導(dǎo)入
  • 本地導(dǎo)入
    (1) 將arr文件放在一個目錄內(nèi),例如libs奸柬;
    (2) 在app的build.gradle文件添加如下內(nèi)容生年;
repositories {
        flatDir {
              dirs 'libs'        
      }
}

(3) 之后只需要添加一句gradle依賴便方便的引用了該aar文件婴程;

dependencies{
              compile(name:'test' , ext:'aar')
}

至此廓奕,導(dǎo)入成功。

四档叔、小節(jié)

在什么情況下使用jar什么情況下使用aar呢桌粉?
如果你只是一個簡單的類庫,那么使用簡單生成的.jar文件即可衙四;如果你的是一個UI庫铃肯,包含一些自己寫的控件布局以及字體等資源文件就只能使用.aar文件。


文章來源:
https://blog.csdn.net/zxw136511485/article/details/52777286

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末传蹈,一起剝皮案震驚了整個濱河市押逼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惦界,老刑警劉巖挑格,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件之众,死亡現(xiàn)場離奇詭異拐纱,居然都是意外死亡溪食,警方通過查閱死者的電腦和手機斤程,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門衅码,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漂羊,“玉大人后控,你說我怎么就攤上這事匿级】褚ぃ” “怎么了媳板?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長泉哈。 經(jīng)常有香客問我蛉幸,道長到旦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任巨缘,我火速辦了婚禮添忘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘若锁。我一直安慰自己搁骑,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布又固。 她就那樣靜靜地躺著仲器,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仰冠。 梳的紋絲不亂的頭發(fā)上乏冀,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音洋只,去河邊找鬼辆沦。 笑死,一個胖子當(dāng)著我的面吹牛识虚,可吹牛的內(nèi)容都是我干的肢扯。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼担锤,長吁一口氣:“原來是場噩夢啊……” “哼蔚晨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肛循,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤铭腕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后多糠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體累舷,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年熬丧,在試婚紗的時候發(fā)現(xiàn)自己被綠了笋粟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡析蝴,死狀恐怖害捕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情闷畸,我是刑警寧澤尝盼,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站佑菩,受9級特大地震影響盾沫,放射性物質(zhì)發(fā)生泄漏裁赠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一赴精、第九天 我趴在偏房一處隱蔽的房頂上張望佩捞。 院中可真熱鬧,春花似錦蕾哟、人聲如沸一忱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帘营。三九已至,卻和暖如春逐哈,著一層夾襖步出監(jiān)牢的瞬間芬迄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工昂秃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留禀梳,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓械蹋,卻偏偏與公主長得像出皇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哗戈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)荷科,斷路器唯咬,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,867評論 6 342
  • 前置:由于端內(nèi)直連Jira提bug需要一個SDK,所以探索了下aar與jar的區(qū)別畏浆。 Android中常...
    viky_lyn閱讀 81,500評論 5 42
  • 說明 本文主要介紹和Gradle關(guān)系密切胆胰、相對不容易理解的配置,偏重概念介紹刻获。部分內(nèi)容是Android特有的(例如...
    jzj1993閱讀 15,649評論 1 62
  • 在并發(fā)的情況下蜀涨,Java主要靠synchronized和lock來保證同步,已解決多線程下的線程不安全問題蝎毡,鎖雖然...
    激情的狼王閱讀 2,435評論 3 11