版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】創(chuàng)建Android庫的方法及Android.aar文件用法小結(jié)
創(chuàng)建Android庫Android庫在結(jié)構(gòu)上與Android應(yīng)用模塊相同。它可以提供構(gòu)建應(yīng)用所需的一切內(nèi)容,包括源代碼、資源文件和Android清單。不過,Android庫將編譯到您可以用作Android應(yīng)用模塊依賴項的Android歸檔(AAR:AndroidArchiveResource)文件,而不是在設(shè)備上運(yùn)行的APK。與JAR文件不同,AAR文件可以包含Android資源和一個清單文件,這樣,除了Java類與方法外,您還可以捆綁布局和可繪制對象等共享資源。庫模塊在以下情況下非常有用:在任何一種情況下,只需要將您希望重用的文件移動到庫模塊中,然后以依賴項的形式為每個應(yīng)用模塊添加庫。本頁面將說明如何執(zhí)行這兩個操作。創(chuàng)建庫模塊要在您的項目中創(chuàng)建一個新的庫模塊,請按以下步驟操作:1、點(diǎn)擊File>New>NewModule。2、在出現(xiàn)的CreateNewModule窗口中,依次點(diǎn)擊AndroidLibrary和Next。還存在一個用于創(chuàng)建Java庫的選項,可以構(gòu)建傳統(tǒng)的JAR文件。盡管JAR文件在大多數(shù)項目中都非常實(shí)用(尤其在您希望與其他平臺共享代碼時),但這種文件不允許您包含Android資源或清單文件,而后者對于Android項目中的代碼重用非常有用。因此,本指南將側(cè)重論述創(chuàng)建Android庫。3、為您的庫命名,并為庫中代碼選擇一個最低的SDK版本,然后點(diǎn)擊Finish。在Gradle項目同步完成后,庫模塊將顯示左側(cè)的Project面板中。如果您未看到新模塊文件夾,請確保將視圖切換為Android視圖。將應(yīng)用模塊轉(zhuǎn)換為庫模塊如果您現(xiàn)有的應(yīng)用模塊包含您希望重用的所有代碼,則可以按照以下步驟將其轉(zhuǎn)換為庫模塊:1、打開現(xiàn)有應(yīng)用模塊的build.gradle文件。您應(yīng)在頂部看到以下內(nèi)容:2、按照下面所示更改插件分配:3、點(diǎn)擊SyncProjectwithGradleFiles。就這么簡單。模塊的整個結(jié)構(gòu)仍然相同,但是現(xiàn)在它將作為Android庫運(yùn)行,構(gòu)建也將創(chuàng)建一個AAR文件,而不是APK。生成aar在AndroidStudio1.4中,Newproject,先默認(rèn)新建一個Applicatonmodule,接后File>New>NewModule,選擇AndrodLibrary>Next,指定LibraryName和ModuleName。新建的Library與正常的Application最大區(qū)別是modulebuild.gradle中是applyplugin:‘com.android.library'而不是applyplugin:'com.android.application'Build>Makeproject,自動生成aar文件。以依賴項形式添加您的庫要在另一個應(yīng)用模塊中使用您的Android庫的代碼,請按以下步驟操作:1、通過兩種方式之一將庫添加到您的項目(如果您是在相同項目中創(chuàng)建的庫模塊,則該模塊已經(jīng)存在,您可以跳過此步驟):添加已編譯的AAR(或JAR)文件:1、點(diǎn)擊File>NewModule。2、依次點(diǎn)擊Import.JAR/.AARPackage和Next。3、輸入AAR或JAR文件的位置,然后點(diǎn)擊Finish。將庫模塊導(dǎo)入到您的項目中:1、點(diǎn)擊File>New>ImportModule。2、輸入庫模塊目錄的位置,然后點(diǎn)擊Finish。庫模塊將復(fù)制到您的項目中,因此您可以盡管編輯庫代碼。如果您希望維護(hù)一個版本的庫代碼,則此方法可能不是您想要的,您應(yīng)按照上文所述導(dǎo)入編譯的AAR文件。2、確保庫列在您settings.gradle文件的頂部,如下面名為“my-library-module”的庫所示:3、打開應(yīng)用模塊的build.gradle文件,并向dependencies塊中添加一行新代碼,如下面的片段所示:4、點(diǎn)擊SyncProjectwithGradleFiles。在上面的示例中,名為my-library-module的Android庫模塊成為build.gradle文件所在模塊的構(gòu)建依賴項。您的應(yīng)用模塊現(xiàn)在可以訪問Android庫中的任何代碼和資源,庫AAR文件在構(gòu)建時已捆綁到您的APK中。不過,如果希望單獨(dú)共享AAR文件,則可以在項目名稱/模塊名稱/build/outputs/aar/中找到它,也可以通過點(diǎn)擊Build>MakeProject的方式重新生成此文件。選擇要設(shè)為公開的資源庫中的所有資源在默認(rèn)情況下均處于公開狀態(tài)。要將所有資源隱式設(shè)為私有,您必須至少將一個特定的屬性定義為公開。資源包括您項目的res/目錄中的所有文件,例如圖像。要阻止您的庫用戶訪問僅供內(nèi)部使用的資源,您應(yīng)通過聲明一個或多個公開資源的方式來使用這種自動私有標(biāo)識機(jī)制。要刪除某個公開資源,請將一個聲明添加到您的庫的public.xml文件中。如果您之前尚未添加公開資源,則需要在您的庫的res/values/目錄中創(chuàng)建public.xml文件。下面的示例代碼可以創(chuàng)建兩個名稱分別為mylib_app_name和mylib_public_string的公開字符串資源:如果希望任何資源保持對使用您的庫的開發(fā)者可見,您應(yīng)當(dāng)將其設(shè)為公開。例如,盡管v7appcompat庫中的大多數(shù)資源都是私有資源,但是為了支持MaterialDesign,控制工具欄小部件的屬性應(yīng)當(dāng)公開。將屬性隱式設(shè)為私有不僅可以阻止您的庫用戶從內(nèi)部庫資源獲得代碼自動完成建議,還讓您能夠在不中斷您的庫客戶端的情況下重命名或移除私有資源。私有資源不在代碼自動完成和ThemeEditor的作用范圍內(nèi),并且如果您嘗試引用私有資源,Lint將顯示警告。開發(fā)注意事項在開發(fā)您的庫模塊和相關(guān)應(yīng)用時,請注意以下行為和限制。將庫模塊引用添加至您的Android應(yīng)用模塊后,您可以設(shè)置它們的相對優(yōu)先級。構(gòu)建時,庫會按照一次一個的方式與應(yīng)用合并,并按照從低到高的優(yōu)先級順序。資源合并沖突構(gòu)建工具會將庫模塊中的資源與相關(guān)應(yīng)用模塊的資源合并。如果在兩個模塊中均定義了給定資源ID,將使用應(yīng)用中的資源。如果多個AAR庫之間發(fā)生沖突,將使用依賴項列表首先列出(位于dependencies塊頂部)的庫中的資源。為了避免常用資源ID的資源沖突,請使用在模塊(或在所有項目模塊)中具有唯一性的前綴或其他一致的命名方案。庫模塊可以包含JAR庫您可以開發(fā)一個自身包含JAR庫的庫模塊;不過,您需要手動編輯相關(guān)應(yīng)用模塊的構(gòu)建路徑,并添加JAR文件的路徑。庫模塊可以依賴外部JAR庫您可以開發(fā)一個依賴于外部庫(例如Maps外部庫)的庫模塊。在這種情況下,相關(guān)應(yīng)用必須針對包含外部庫(例如GoogleAPI插件)的目標(biāo)構(gòu)建。另外也要注意,庫模塊和相關(guān)應(yīng)用都必須在其清單文件的<uses-library>元素中聲明外部庫。庫模塊不得包含原始資源工具不支持在庫模塊中使用原始資源文件(保存在assets/目錄中)。應(yīng)用使用的任何原始資源都必須存儲在應(yīng)用模塊自身的assets/目錄中。應(yīng)用模塊的minSdkVersion必須大于或等于庫定義的版本庫作為相關(guān)應(yīng)用模塊的一部分編譯,因此,庫模塊中使用的API必須與應(yīng)用模塊支持的平臺版本兼容。每個庫模塊都會創(chuàng)建自己的R類在您構(gòu)建相關(guān)應(yīng)用模塊時,庫模塊將先編譯到AAR文件中,然后再添加到應(yīng)用模塊中。因此,每個庫都有其自己的R類,并根據(jù)庫的軟件包名稱命名。從主模塊和庫模塊生成的R類會在所需的所有軟件包(包括主模塊的軟件包和庫的軟件包)中創(chuàng)建。庫模塊可能包含自己的ProGuard配置文件通過將ProGuard配置文件添加到包含其ProGuard指令的庫,您可以在自己的庫上啟用代碼壓縮。構(gòu)建工具會為庫模塊將此文件嵌入到生成的AAR文件中。在您將庫添加到應(yīng)用模塊時,庫的ProGuard文件將附加至應(yīng)用模塊的ProGuard配置文件(proguard.txt)。
通過將ProGuard文件嵌入到您的庫模塊中,您可以確保依賴于此庫的應(yīng)用模塊不必手動更新其ProGuard文件即可使用庫。當(dāng)ProGuard在Android應(yīng)用模塊上運(yùn)行時,它會同時使用來自應(yīng)用模塊和庫的指令,因此您不應(yīng)當(dāng)只在庫上運(yùn)行ProGuard。
要指定您的庫的配置文件名稱,請將其添加到consumerProguardFiles方法中,此方法位于您的庫的build.gradle文件的defaultConfig塊內(nèi)。例如,以下片段會將lib-proguard-rules.txt設(shè)置為庫的ProGuard配置文件:默認(rèn)情況下,應(yīng)用模塊會使用庫的發(fā)布構(gòu)建,即使在使用應(yīng)用模塊的調(diào)試構(gòu)建類型時亦是如此。要使用庫中不同的構(gòu)建類型,您必須將依賴項添加到應(yīng)用的build.gradle文件的dependencies塊中,并在庫的build.gradle文件中將publishNonDefault設(shè)置為true。例如,您應(yīng)用的build.gradle文件中的以下代碼段會使應(yīng)用在應(yīng)用模塊于調(diào)試模式下構(gòu)建時使用庫的調(diào)試構(gòu)建類型,以及在應(yīng)用模塊于發(fā)布模式下構(gòu)建時使用庫的發(fā)布構(gòu)建類型:您還必須在自己庫的build.gradle文件的android塊內(nèi)添加以下代碼行,以便將此庫的非發(fā)布配置展示給使用它的項目:不過請注意,設(shè)置publishNonDefault會增加構(gòu)建時間。為了確保您的庫的ProGuard規(guī)則不會將意外的壓縮副作用施加到應(yīng)用模塊,請僅包含適當(dāng)規(guī)則,停用不適用于此庫的ProGuard功能。嘗試協(xié)助開發(fā)者的規(guī)則可能會與應(yīng)用模塊或它的其他庫中的現(xiàn)有代碼沖突,因此不應(yīng)包含這些規(guī)則。例如,您的庫的ProGuard文件可以指定在應(yīng)用模塊的壓縮期間需要保留的代碼。注:Jack工具鏈僅支持ProGuard的部分壓縮和模糊選項。AAR文件詳解AAR文件的文件擴(kuò)展名為.aar,Maven工件類型也應(yīng)當(dāng)是aar。文件本身是一個包含以下強(qiáng)制性條目的zip文件:/AndroidManifest.xml/classes.jar/res//R.txt此外,AAR文件可能包含以下可選條目中的一個或多個:/assets//libs/名稱.jar/jni/abi名稱/名稱.so(其中abi名稱是Android支持的ABI之一)/proguard.txt/lint.jar
下面給大家介紹下Android中.aar文件生成方法與用法前言無論是用Eclipse還是用AndroidStudio做android開發(fā),都會接觸到j(luò)ar包,全稱應(yīng)該是:JavaArchive,即java歸檔文件。在用AS的過程中,你會發(fā)現(xiàn)有aar這么個東西,經(jīng)查閱資料了解到,aar是android歸檔文件,我想全稱應(yīng)該是:AndroidArchive。他們兩個有什么區(qū)別呢?個人理解:jar是java文件編譯后的class文件壓縮包。aar是androidmodule中所有resource文件和編譯后的java文件的總壓縮包。區(qū)別在于:aar除了包含class文件,還包含resource文件。在AndroidStudio中如何引入aar文件呢?拿RecyclerView的aar文件為例。1、找到aar文件:..\Android_SDK_Windows\extras\android\m2repository\com\android\support\recyclerview-v7\24.0.0\recyclerview-v7-24.0.0.aar
copy到AndroidStudio項目中的libs目錄下。2、然后在AndroidStudio對應(yīng)的module的build.gradle文件中輸入一下內(nèi)容:3、然后重新build下整個項目即可。在AndroidStudio中如何把某一個module導(dǎo)出為aar文件呢?以testlibrary為例:1、執(zhí)行對應(yīng)module的assembleRelease命令:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代農(nóng)業(yè)裝備在種植業(yè)中的技術(shù)優(yōu)勢
- 現(xiàn)代醫(yī)療技術(shù)中的人才培養(yǎng)與團(tuán)隊建設(shè)
- 校園文化與企業(yè)文化的對接與互鑒
- 14《母雞》說課稿-2023-2024學(xué)年統(tǒng)編版四年級語文下冊
- 24 《古人談讀書》說課稿-2024-2025學(xué)年語文五年級上冊統(tǒng)編版
- 6 傳統(tǒng)游戲我會玩2023-2024學(xué)年二年級下冊道德與法治同步說課稿(統(tǒng)編版)
- 14 圓明園的毀滅 說課稿-2024-2025學(xué)年語文五年級上冊統(tǒng)編版
- 5 樹和喜鵲(說課稿)-2023-2024學(xué)年統(tǒng)編版語文一年級下冊
- 17《爬天都峰》說課稿-2024-2025學(xué)年統(tǒng)編版語文四年級上冊
- 2023三年級英語下冊 Unit 4 Food and Restaurants Lesson 21 In the Restaurant說課稿 冀教版(三起)
- 中國儲備糧管理集團(tuán)有限公司蘭州分公司招聘筆試真題2024
- 2024年廣東省公務(wù)員錄用考試《行測》真題及答案解析
- 骨科手術(shù)糾紛案例分析課件
- 2022年廣西高考英語真題及答案(全國甲卷)
- 安全生產(chǎn)責(zé)任清單(加油站)
- 動物檢疫技術(shù)-動物檢疫的程序(動物防疫與檢疫技術(shù))
- 煤礦復(fù)工復(fù)產(chǎn)專項安全風(fēng)險辨識
- DB42T 1049-2015房產(chǎn)測繪技術(shù)規(guī)程
- 《民航服務(wù)溝通技巧》教案第8課重要旅客服務(wù)溝通
- 學(xué)校副校長述職報告PPT模板下載
- (完整版)歐姆龍E3X-HD光纖放大器調(diào)試SOP
評論
0/150
提交評論