1. 程式人生 > >jar和aar的區別及使用方法

jar和aar的區別及使用方法

使用Android Studio對工程進行編譯後,會同時生成jar與aar檔案

其位置分別位於: jar:/build/intermediates/bundles/debug(release)/classes.jar arr:/build/outputs/aar/libraryname.aar

兩者的區別: jar中只包含class檔案與清單檔案 aar中除了包含jar中class檔案還包含工程中使用的所有資源,class及res資原始檔全部包含。如果只是一個簡單的類庫那麼使用生成的.jar檔案即可;如果你的是一個UI庫,包含一些自己寫的控制元件佈局檔案以及字型等資原始檔那麼就只能使用.aar檔案。

使用方式:: jar拷貝到libs目錄,並在gradle檔案中新增

dependencies{
  compile fileTree(include:['*.jar'],dir:'libs')  
}

aar有兩種方式: 1.本地使用 拷貝到libs目錄,並在gradle檔案中新增

repositories{
  flatDir{
     dirs 'libs'
  }
}
dependencies{
  compile(name:'genius',ext:'aar')
}

2.網路載入 將aar釋出到mavenCentral倉庫,在gradle檔案中新增

repositories{
  maven{
    url "http://maven.dev.sh.ctripcorp.com:8801/nexus/content/groups/public"
} } dependencies { classpath 'net.sf.proguard:proguard-gradle:5.2.1' }

多層Module依賴本地aar Android Studio多層Module依賴本地aar,在編譯的時候發生錯誤,找不到aar(ModuleA libs中有c.aar,ModuleB依賴ModuleA) 此時需要在ModuleB的build.gradle中新增

repositories {
    flatDir {
        dirs '../ModuleA/libs','libs'
    }
}

同時在dependencies中新增aar名稱:

compile(name:'c', ext:'aar')