若是你是 Android 開發人員,那麼你將花費大量時間查看屏幕並等待 gradle 構建完成。在新的 Android Studio 中,它比之前的版本要快得多,但仍然有不少空間能夠解決它因此讓咱們快速經過在 Android Studio 中作一些快速修復。在 Google I/O 2017 Google 團隊專一於此,這篇文章是從那裏提取的。android
老是使用最新的 ** Android Gradle Plugin** -Android 工做室逐步提升新 gradle 版本的性能,所以建議使用最新版本。目前最新的 gradle 插件是 3.1.2;在這個版本中,studio 已將其編譯器 DEX 更改成 D8。默認狀況下,Android Studio 如今使用名爲 D8 的新 DEX 編譯器。默認狀況下,Android Studio 如今使用 D8(你也能夠禁用它)。DEX 編譯是將 .class
字節碼轉換 .dex
爲 Android Runtime(或 Dalvik,適用於舊版 Android)的字節碼 的過程 。與以前的編譯器(稱爲 DX)相比,D8 編譯速度更快,輸出更小的 DEX 文件,同時具備相同或更好的應用程序運行時性能。這個較新的插件版本將致使高達25%的構建時間縮短。緩存
若是您使用命令行進行構建,請避免遺留 Multidex - 若是咱們的應用程序超過64k方法參考限制,咱們必須使用 Multidex。當在 gradle 文件中咱們有 minSdkVersion <21 時,咱們使用 Legacy Multidex 構建速度要慢不少。若是您正在使用 Android studio > 2.3 版本並使用運行按鈕進行構建,那麼若是鏈接的設備版本大於21,它將自動使用本機 multidex,若是版本是 <21,則將自動使用遺留。若是您使用命令行進行構建而後在開發風格內設置 minSdkVersion 21.這將致使最多減小10%的構建時間。bash
Disable Multiple apk for development- 咱們可使用拆分塊爲特定設備配置建立多個 apk,它能夠減小發布版本中的應用程序大小,但在開發中不須要。經過禁用它咱們能夠進一步減小10%的構建時間。讓咱們看看如何作到這一點。app
android {
if(project.hasProperty('devBuild')){
// 開發中禁用 Split apk
splits.abi.enable = false
splits.density.enable =false
}
}
複製代碼
productFlavors {
development {
minSdkVersion 21
resConfigs ("en","xxhdpi")
}
}
複製代碼
android {
if(project.hasProperty('devBuild')){
// 開發中禁用 Split apk
splits.abi.enable = false
splits.density.enable =false
// 禁用 PNG 運算
aaptOptions.cruncherEnabled = false
}
}
複製代碼
即時運行 - 即時運行會產生不少問題,直到 Android Studio 3.0,如今它穩定而且在設備上工做 sdkVersion≥21。它也會應用更改,直接反映更改直接進入實時進程,而不是從新啓動應用程序。jvm
正確使用 Crashlytics -默認狀況下,crashlytics 始終在每一個構建時生成惟一的構建 ID。您能夠爲調試環境禁用 crashlytics,也能夠爲開發構建禁用此構建 ID。ide
apply plugin: 'io.fabric'
android {
buildTypes {
debug {
// 禁用 Crashlytics 構建 ID
ext.alwaysUpdateBuildId = false
}
}
}
複製代碼
#配置後,Gradle將以孵化並行模式運行。
#此選項僅應與分離的項目一塊兒使用。
org.gradle.parallel = true
#設置爲true時,Gradle守護程序用於運行構建。對於本地開發者構建,這是咱們最喜歡的屬性
#開發人員環境針對速度和反饋進行了優化,所以咱們幾乎老是使用守護程序運行Gradle做業。
org.gradle.daemon = true
複製代碼
啓用 gradle 緩存 - Caching gradle 將緩存來自任何位置的任何先前構建的任務輸出。在 gradle.properties 文件中設置 org.gradle.caching = true 以啓用緩存。模塊化
多模塊項目 - 模塊化還經過並行構建模塊來增長 gradle 構建時間。工具
經過使用全部這些技術,您能夠在此處改進gradle構建時間post
愉快的寫代碼!!! 另外,檢查Android P中的最新Android運行時改進以及Android Studio中的編譯器改進。性能