要輸出aar文件,必須將Mole配置為library,在gradle文件中如下:輸出aar:applyplugin:'com.android.library';輸出apk:applyplugin:'com.android.application'。將Mole配置為library後,構建輸出一個aar文件,根據渠道和BuildType的不同,在相應的目錄下可以找到。比如對BuildType為debug的配置,輸出為:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份aar文件其實就是一份zip包,和jar不同的是,它將一些資源文件、第三方庫文件、so文件等等都打包在內,而代碼文件編譯後壓縮在在classes.jar中。比如:3、導入aar的方式引用這種方式比較簡單,打開ProjectStructure,添加一個新Mole,然後選擇Import*.JARor*.AARPackage的方式導入:導入後,在你的工程下面,會生成一個文件夾,裡面是aar文件以及AndroidStudio的配置文件。接著可以在gradle中配置依賴了,其他Mole可以引用這個Mole了,依賴方式使用compileproject的方式即可。缺點:被依賴的aar無法F3跟進去,無法看到資源文件內容以及目錄層級等等缺陷。4、使用配置依賴的方式引用gradle其實還有另一種依賴可以引用aar:compile(name:'xxx',ext:'aar')。首先需要將aar文件放入引用Mole的libs目錄下,和一般的jar文件類似。然後在gradle配置文件中把libs目錄加入依賴:?12345repositories{flatDir{dirs'libs'}}接著在gradle的依賴配置中加入compile(name:'xxx',ext:'aar')這一句,依賴即可關聯完畢。構建一下工程,在Mole的build/intermediates/exploded-aar目錄下,可以看到有一些臨時文件生成:看起來完全是引用aar的解壓版本。AndroidStudio安裝反編譯插件後,可以通過F3跟進到class文件裡面,如果你有被依賴Mole的源代碼的話,還可以AttachSource關聯源代碼查看。另外,可以很方便的查看aar中的資源文件。另外,這種依賴方式更新aar後,生成的臨時文件也會隨之變動,不用擔心改動不同步的問題。
㈡ Android:多aar打包
我使用的是網上這個 https://github.com/kezong/fat-aar-android
這個github庫。
具體配置是再跟gradle中添加:
classpath 'com.kezong:fat-aar:1.2.7'
在需要打包的地方添加:
apply plugin: 'com.kezong.fat-aar'
然後添加需要合並的包,可以是遠程包,本地aar,本地project。可以說很完整了。
例如:
怎麼看遠程依賴呢?下面這里就可以看
最後生成的aar包如下,jni和jar包都有了
反編譯看看classes.jar看看,本地項目的類都在這裡面了。
後面得看看是怎麼打包起來的了,不然後續作者不維護了就蛋疼了。
㈢ Android發布AAR包
最近有需求要發布一套SDK,這套SDK有幾個要求:
依照上面的要求我最先想到的就是AAR包了,因為以下幾個原因:
打包aar其實很簡單,只需要我們創建一個Library工程就可以了。
這個時候編譯Library就會在outputs目錄下生成一個aar文件夾,裡麵包含aar文件。
aar也是可以混淆的,方式和apk一樣。
引用aar可以有兩種方式,一種是本地引用,一種是遠端庫引用,目前我只用到了本地引用,遠端的以後會補上。首先在bulid.gradle文件中定義一個本地庫。
然後在依賴引用的地方添加依賴。
name:aar包的名字;ext:擴展名;
打包aar包的時候會自動將lib目錄下的jar打包進aar包中。
因為分層的原因,有多個library工程,這樣就會有多個aar,發布起來很麻煩,嘗試google了半天,發現目前都是一個辦法,android-fat-aar,一個gradle腳本,github地址是: https://github.com/adwiv/android-fat-aar 。不過我發現他支持gradle2.2.X之前的版本,新的3.X版本並不能執行。這塊還在繼續摸索,有知道辦法的大神請指教一下~~~~
㈣ Android Studio中編譯aar release版本簡便方法
在Android Studio中編譯aar時,通常Build之後是Debug版本。
有網友提出添加了Release選項也無濟於事:
其實,在控制台中輸入gradlew assembleRelease指令即可生成,如下圖所示,Mac上,AS的Terminal中生成aar Release包。
㈤ android aar文件怎麼使用
arr(Android Archive):名字是谷歌到的,至於中文叫什麼我也不知道。不過好像依賴都要使用這樣的包了。
首先說明我使用的android studio 版本是3.1.因為現在android studio的bug還不較多,所以你的版本能不能正常使用我就不敢說了。
如果你只是單純的想使用actionbarsherlock的話,引用是十分簡單的
dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:18.0.+'
}
然後重新編譯一下項目就行了。(ps 這兩天看見群裡面都在討論引用第三方jar包,請看我的第一行注釋,你只要新建一個libs的文件夾,然後把想要jar包復制到文件夾下,接著把注釋那句復制到build文件中,修改一下(*.aar -> *.jar)就可以了)
但是我們要是使用本地的aar文件,我谷歌了兩天總算是勉強能用了,請看我的實現過程,如果你有更好的請轉告小弟共同進步
第一步 :生成aar文件
我的方法是通過maven-android-plugin來生成的,如果你使用過actionbarsherlock以前的版本的話,這個工具應該不陌生,如果你連maven 都不知道的話,建議好好學習一下maven,雖然現在gradle很火 ,但是我還是最喜歡maven。
關於具體生成步驟不久不詳細說了,文章最後貼出幾個網址供大家學習使用,放心我按順序給你們,只要一步一步的來絕對能成功
1 把你的maven版本提升到3.1.1
2 去github上clone下來 maven-android-sdk-deployer 這個項目https://github.com/mosabua/maven-android-sdk-deployer,按照使用說明安裝android的版本
3 通過maven-android-plugin生成一個android項目
mvn archetype:generate
-DarchetypeArtifactId=android-quickstart
-DarchetypeGroupId=de.akquinet.android.archetypes
-DarchetypeVersion=1.0.11
-DgroupId=your.company
-DartifactId=my-android-application
4 修改pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lee.study.android</groupId>
<artifactId>NiMa</artifactId>
<packaging>aar</packaging>
<name>NiMa</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<platform.version> 4.1.1.4
</platform.version>
<android.plugin.version>3.8.0</android.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android.plugin.version}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<platform>16</platform>
<path>E:android_worksdk</path>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
這是我的pom,打包類型改成aar,插件改成3.8版本,添加ANDROID_HOME到path。
5 執行 mvn install ,這樣我們就得到了aar文件,和aar-class.jar文件,其實aar文件裡麵包含class.jar文件,但是我目前的版本必須手動導入到android studio中,這就是不完美之處。
第二步 導入到android studio中 創建libs文件夾,放入想要導入的文件
如果這一步你也搞定了,恭喜你就能和我一樣使用依賴了
㈥ 打包成aar的工程有第三方jar包,生成aar後,裡面的jar無法引用,怎麼解決
首先說明我使用的android studio
版本是0.4.因為現在android studio的bug還不較多,所以你的版本能不能正常使用我就不敢說了。
如果你只是單純的想使用actionbarsherlock的話,引用是十分簡單的dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:18.0.+'
}
不過官方也出了一個兼容包,也非常的不錯。so 沒必要非得要使用actionbarsherlock。
然後重新編譯一下項目就行了。(ps
引用第三方jar包,請看我的第一行注釋,你只要新建一個libs的文件夾,然後把想要jar包復制到文件夾下,接著把注釋那句復制到build文件中,修改一下(*.aar
-> *.jar)就可以了)。
但是我們要是使用本地的自定義的aar文件,請看我的實現過程,如果你有更好的請轉告小弟共同進步
第一步 :生成aar文件
我的方法是通過maven-android-plugin來生成的,如果你使用過actionbarsherlock以前的版本的話,這個工具應該不陌生,如果你連maven
都不知道的話,建議好好學習一下maven,雖然現在gradle很火 ,但是我還是最喜歡maven。
關於具體生成步驟不久不詳細說了,文章最後貼出幾個網址供大家學習使用,放心我按順序給你們,只要一步一步的來絕對能成功
1 把你的maven版本提升到3.1.1
2 去github上clone下來
maven-android-sdk-deployer 這個項目
3 通過maven-android-plugin生成一個android項目
mvn archetype:generate \
-DarchetypeArtifactId=android-quickstart \
-DarchetypeGroupId=de.akquinet.android.archetypes \
-DarchetypeVersion=1.0.11 \
-DgroupId=your.company \
-DartifactId=my-android-application