『壹』 android studio aar 鏂囦歡鍦ㄥ摢
java">//瀹氫箟涓涓鍑芥暟錛宼arget鏄鐢熸垚jar鍖呯殑鏂囦歡鍚嶏紝classDir鏄痗lass鏂囦歡鎵鍦ㄧ殑鏂囦歡澶
defmakeJar(Stringtarget,StringclassDir){
exec{
executable"jar"//璋冪敤jar
args"cvf",target
args"-C",classDir
args"","."
}
}
//鏂板緩涓涓猼ask,鍚嶄負buildLib,渚濊禆build(build鏄涓涓鑷甯︾殑task)
taskbuildLib(dependsOn:['build'])<<{
makeJar("lib.jar","build/intermediates/classes/release")
}
鍦╞uild.gradle涓娣誨姞瀵煎嚭jar鏂規硶銆
『貳』 android studio中怎麼引用aar文件
首先,用Android Studio創建一個Android項目,然後找到我們需要引用的本地arr文件
『叄』 怎樣使用Android Studio引用本地aar文件
要輸出 aar 文件,必須將 Mole 配置為 library,在 gradle 文件中如下:
輸出 aar : apply plugin: 'com.android.library'; 輸出 apk :apply plugin: 'com.android.application'。
將 Mole 配置為 library 後,構建輸出一個 aar 文件,根據渠道和 BuildType 的不同,在相應的目錄下可以找到。比如對 BuildType 為 debug 的配置,輸出為:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份 aar 文件其實就是一份 zip 包,和 jar 不同的是,它將一些資源文件、第三方庫文件、so 文件等等都打包在內,而代碼文件編譯後壓縮在在 classes.jar 中。比如:
3、導入 aar 的方式引用
這種方式比較簡單,打開 Project Structure,添加一個新 Mole,然後選擇 Import *.JAR or *.AAR Package 的方式導入:
導入後,在你的工程下面,會生成一個文件夾,裡面是 aar 文件以及 Android Studio 的配置文件。
接著可以在 gradle 中配置依賴了,其他 Mole 可以引用這個 Mole 了,依賴方式使用compile project 的方式即可。
缺點:被依賴的 aar 無法 F3 跟進去,無法看到資源文件內容以及目錄層級等等缺陷。
4、使用配置依賴的方式引用
gradle 其實還有另一種依賴可以引用 aar:
compile(name: 'xxx', ext: 'aar')。
首先需要將 aar 文件放入引用 Mole 的 libs 目錄下,和一般的 jar 文件類似。然後在 gradle 配置文件中把 libs 目錄加入依賴:
<code class="hljs bash">repositories {
flatDir {
dirs 'libs'
}
}</code>
接著在 gradle 的依賴配置中加入 compile(name: 'xxx', ext: 'aar') 這一句,依賴即可關聯完畢。構建一下工程,在 Mole 的 build/intermediates/exploded-aar 目錄下,可以看到有一些臨時文件生成:
看起來完全是引用 aar 的解壓版本。Android Studio 安裝反編譯插件後,可以通過 F3 跟進到 class 文件裡面,如果你有被依賴 Mole 的源代碼的話,還可以 Attach Source 關聯源代碼查看。另外,可以很方便的查看 aar 中的資源文件。
另外,這種依賴方式更新 aar 後,生成的臨時文件也會隨之變動,不用擔心改動不同步的問題。望採納,謝謝。
『肆』 怎麼改變android studio中庫的aar文件的輸出目錄
在Android Studio菜單上,依次選擇: File New Xml Layout xml File Android Studio 是一個Android開發環境,基於IntelliJ IDEA. 類似 Eclipse ADT,Android Studio 提供了集成的 Android 開發工具用於開發和調試。 在IDEA的基礎上,Android Studio 提供: 基於Gradle的構建支持 Android 專屬的重構和快速修復 提示工具以捕獲性能、可用性、版本兼容性等問題 支持ProGuard 和應用簽名 基於模板的向導來生成常用的 Android 應用設計和組件 功能強大的布局編輯器,可以讓你拖拉 UI 控制項並進行效果預覽
『伍』 android studio aar怎麼用
一. 簡介
aar是一個類似於jar的文件格式。但是他們之間是有區別的。
jar:僅僅包含class和清單文件,沒有資源文件。
aar:包含了class文件和資源文件。說白了就是Android的專屬「jar」
將代碼打包成aar文件,可以在一定程度上加快AndroidStudio的速度。
尤其是將Mole打包成aar文件,提升的效果很顯著。
二. 如何得到aar
1. Mole的aar文件
將一個AndroidStudio項目中的Mole打包成aar其實很簡單。
在每一個Mole的目錄下面都會有這樣一個文件夾:build\outputs\aar。
這個文件夾下面就放著這個Mole對應的aar文件。
一般情況下會有兩個aar文件,一個debug版本,一個release版本。
我們選擇release的就ok。
注意:
新建的Mole是沒有這個文件夾的。這時,你可以使用 兩種方法 生成這個文件夾
將整個項目運行一遍,這個文件夾會自動生成
執行命令 ./gradlew assembleRelease 也可以生成這個文件夾
Mole中的libs目錄文件會隨著項目的編譯被打包進aar文件中,但是build.gradle中的引用庫不會打包進aar文件中,這個需要 特別留意。如果你忽略了這個Mole的build.gradle中的引用庫,很可能引發ClassNotFoundException異常。
2. 遠程倉庫的aar
在項目裡面經常會引用一下遠程倉庫的依賴庫。
這時,我們也可以將它以aar的形式引入到項目中。
這個依賴庫的aar其實也很好找。
當你配置好一個依賴庫以後,點擊 Sync Now 。
AndroidStudio會自動下載這個庫到C盤(windows)。你找到這個文件就可以了。
這里我使用的是Everything進行搜索,很方便就找到這個庫的下載文件夾。其他操作系統就自行搜索吧,總之找見這個項目的下載文件夾就ok。
這個下載文件夾中包含了這個項目所需要的所有東西:包括aar、jar等文件。
後面會以一個例子詳細講解這個過程
註:
Everything是一個搜索軟體,可以瞬間搜索全盤。
是一個非常實用的軟體。但是很可惜只有windows版本。
官網地址:<a href="<a href="https://www.voidtools.com/" target="_blank">https://www.voidtools.com/</a>" target="_blank"><a href="https://www.voidtools.com/" target="_blank">https://www.voidtools.com/</a></a>
三. 如何使用aar
想要使用aar文件,需要經過以下幾步:
1. 在app的build.gradle中加入以下配置
repositories {
flatDir {
dirs 'libs' // aar目錄
}
}
2. 將aar文件拷貝到app/libs目錄下
3. 在dependencies中加入aar引用
compile(name: 'zbar-release', ext: 'aar')
四. LeakCanary項目示例
因為Mole的例子比較簡單,所以選擇遠程代碼庫作為示例。
這里使用一個經常使用的內存檢測項目LeakCanary來做一個示例。
我們通常使用依賴來使用這個庫:
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
當Sync Now完成後,我們可以在C盤(windows)找見這個項目文件夾。
這個文件夾下面就有我們需要的兩個依賴庫:leakcanary-android和leakcanary-android-no-op
點開leakcanary-android文件夾,目錄結構如下(1.3是對應的版本號):
leakcanary-android文件夾
打開最里層的文件夾,你會發現文件的類型主要有三種:
jar文件:有的項目是以jar文件形式提供
aar文件:有的項目是以aar文件形式提供
pom文件: (Project Object Model),實際上就是個xml,是對一些必要信息的說明。這里我們只關心一個節點信息:<dependencies>:聲明依賴列表
我們用文本編輯器打開leakcanary-android文件夾下面的pom文件:
...
<dependencies>
<dependency>
<!--包組 id,通常是發布者擁有的域名的反向,以免跟別人的重復-->
<groupId>com.squareup.leakcanary</groupId>
<!--包 artifactId,其實就是組以下應該有一個更小的歸類-->
<artifactId>leakcanary-analyzer</artifactId>
<!--版本號-->
<version>1.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
..
當我們打開leakcanary-android的pom文件,
我們發現leakcanary-android依賴於leakcanary-analyzer的1.3版本。
同樣的的我們打開leakcanary-analyzer 的pom文件,
發現leakcanary-analyzer依賴leakcanary-watcher和haha。
leakcanary-watcher和haha則沒有依賴任何東西。
這樣整個leakcanary-android導入本地的東西就是四個:
leakcanary-android
leakcanary-analyzer
leakcanary-watcher
haha
同樣的方式去一層一層解析leakcanary-android-no-op,將所有需要的文件都導入到AndroidStudio中。這樣整個LeakCanary就被我們真正實現本地化了。
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
debugCompile(name: 'leakcanary-android-1.3', ext: 'aar')
compile files('libs/leakcanary-analyzer-1.3.jar')
compile files('libs/leakcanary-watcher-1.3.jar')
compile files('libs/haha-1.1.jar')
releaseCompile(name: 'leakcanary-android-no-op-1.3', ext: 'aar')
這樣就將整個LeakCanary項目完全轉換成了本地的依賴。
『陸』 Android Studio緙栬瘧鏃舵槸鎬庢牱鏌ユ壘jar/aar
濡傛灉浣犲彧鏄涓涓綆鍗曠殑綾誨簱閭d箞浣跨敤鐢熸垚鐨*.jar鏂囦歡鍗沖彲錛涘傛灉浣犵殑鏄涓涓猆I搴擄紝鍖呭惈涓浜涜嚜宸卞啓鐨勬帶浠跺竷灞鏂囦歡浠ュ強瀛椾綋絳夎祫婧愭枃浠墮偅涔堝氨鍙鑳戒嬌鐢*.aar鏂囦歡銆
浣跨敤鏂瑰紡錛
*.jar錛氭嫹璐濆埌錛歭ibs鐩褰曪紝eclipse鐩存帴瀵煎叆鍗沖彲錛孉ndroidStudio欏圭洰涓娣誨姞錛