1. 程式人生 > >AndroidStudio3.0與之前版本主要區別

AndroidStudio3.0與之前版本主要區別

dependencies {
  
    //3.0 之前
    compile 'com.android.support:appcompat-v7:26.1.0'
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/gson-2.3.1.jar')
    //3.0 之後
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation files('libs/gson-2.3.1.jar')
}

api: 對應之前的 compile 關鍵字,功能一模一樣。會傳遞依賴,導致 gradle 編譯的時候遍歷整顆依賴樹
implementation: 對應之前的 compile ,與 api 類似,關鍵區別是不會有依賴傳遞
compileOnly: 對應之前的 provided,依賴僅用於編譯期不會打包進最終的 apk 中
runtimeOnly: 對應之前的 apk,與上面的 compileOnly 相反
關於 implementation 與 api 的區別,主要在依賴是否會傳遞上。如:A 依賴 B,B 依賴 C,若使用api則 A 可以引用 C,而 implementation 則不能引用。

這裡更推薦用 implementation,一是不會間接的暴露引用,清晰知道目前專案的依賴情況;二是可以提高編譯時依賴樹的查詢速度,進而提升編譯速度。