Saya memiliki multi-proyek (~ 10 modul) yang bangunannya memakan waktu sekitar 20-30 detik setiap kali. Ketika saya menekan Run di Android Studio, saya harus menunggu setiap waktu untuk membangun kembali aplikasi, yang sangat lambat.
Apakah mungkin untuk mengotomatiskan proses pembangunan di Android Studio? Atau apakah Anda punya saran tentang cara membuat proses ini lebih cepat?
Di Eclipse, berkat pembangunan otomatis, menjalankan proyek yang sama pada emulator membutuhkan waktu sekitar 3-5 detik.
Ini adalah file build.gradle saya (modul aplikasi):
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':libraries:SharedLibs')
compile project(':libraries:actionbarsherlock')
compile project(':libraries:FacebookSDK')
compile project(':libraries:GooglePlayServices')
compile project(':libraries:HorizontalGridView')
compile project(':libraries:ImageViewTouch')
compile project(':libraries:SlidingMenu')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
}
android
gradle
android-studio
build.gradle
froger_mcs
sumber
sumber
Jawaban:
Perangkat keras
Maaf, tetapi peningkatan stasiun pengembangan ke SSD dan berton-ton ram mungkin memiliki pengaruh yang lebih besar daripada gabungan poin di bawah ini.
Versi alat
Meningkatkan kinerja build memiliki prioritas utama untuk tim pengembangan, jadi pastikan Anda menggunakan Gradle dan Android Gradle Plugin terbaru .
File Konfigurasi
Buat file bernama
gradle.properties
di direktori apa pun yang berlaku:/home/<username>/.gradle/
(Linux)/Users/<username>/.gradle/
(Mac)C:\Users\<username>\.gradle
(Windows)Menambahkan:
Properti Gradle berfungsi secara lokal jika Anda menempatkannya di
projectRoot\gradle.properties
dan secara global jika Anda menempatkannya diuser_home\.gradle\gradle.properties
. Properti diterapkan jika Anda menjalankan tugas gradle dari konsol atau langsung dari ide:Pengaturan IDE
Dimungkinkan untuk men-tweak integrasi Gradle-IntelliJ dari GUI pengaturan IDE. Mengaktifkan "pekerjaan offline" (periksa jawaban dari yava di bawah) akan menonaktifkan permintaan jaringan nyata pada setiap "file gradasi sinkronisasi".
Asli multi-dex
Salah satu langkah paling lambat dari pembangunan apk adalah mengubah bytecode java menjadi file dex tunggal. Mengaktifkan multidex asli (minSdk 21 hanya untuk debug build) akan membantu tooling untuk mengurangi jumlah pekerjaan (periksa jawaban dari Aksel Willgert di bawah).
Ketergantungan
Lebih suka
@aar
ketergantungan daripada sub proyek perpustakaan.Cari paket aar di mavenCentral , jCenter atau gunakan jitpack.io untuk membangun perpustakaan apa pun dari github. Jika Anda tidak mengedit sumber pustaka dependensi Anda tidak harus membangunnya setiap kali dengan sumber proyek Anda.
Anti Virus
Pertimbangkan untuk mengecualikan file proyek dan cache dari pemindaian antivirus. Ini jelas merupakan pertukaran dengan keamanan (jangan coba ini di rumah!). Tetapi jika Anda sering berpindah antar cabang, antivirus akan memindai ulang file sebelum mengizinkan proses gradle untuk menggunakannya, yang memperlambat waktu pembuatan (khususnya proyek sinkronisasi AndroidStudio dengan file gradle dan tugas pengindeksan). Ukur waktu pembuatan dan proses CPU dengan dan tanpa antivirus yang diaktifkan untuk melihat apakah itu terkait.
Membuat profil bangunan
Gradle memiliki dukungan bawaan untuk membuat profil proyek . Proyek yang berbeda menggunakan kombinasi plugin dan skrip khusus yang berbeda. Menggunakan
--profile
akan membantu menemukan kemacetan.sumber
dependencies {compile 'com.android.support:support-v4:21.0.+'}
adalah solusi yang lambat? tidak yakin untuk mengertiAnda dapat mengabaikan pemeriksaan pembaruan mutakhir secara bertahap.
Untuk Windows yang menjalankan Android Studio 1.5: Pergi ke
File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image)
turun dari ~ 30 + detik hingga ~ 3 detik
sumber
gradle
dijalankan. Itu aneh.Mencari di mana-mana untuk ini dan akhirnya menemukan solusi yang bekerja untuk kita. Mengaktifkan build paralel (On OSX:)
preferences -> compiler -> gradle -> "Compile independent modules in parallel"
dan mengaktifkan 'make project secara otomatis' menurunkannya dari ~ 1 menit hingga ~ 20 detik. Terima kasih kepada / u / Covalence.http://www.reddit.com/r/androiddev/comments/1k3nb3/gradle_and_android_studio_way_slower_to_build/
sumber
Saya baru-baru ini membeli SSD baru dan beralih dari Windows ke Linux. Kali build saya sekarang lebih cepat, dan tidak lagi mengganggu.
Meskipun tidak langsung menjawab pertanyaan Anda mengapa lebih lambat dari gerhana, ini menunjukkan bahwa prosesnya terbatas pada disk dan peningkatan ke SSD mungkin merupakan solusi (agak mahal). Saya menduga akan ada orang yang menelusuri masalah ini dan berakhir di sini, yang mungkin menghargai pengalaman saya.
sumber
Mempercepat Pembuatan Gradle Di Android Studio 3.2.1
Pernah merasa seperti Anda menunggu build selesai di Android Studio selama beberapa menit? Saya juga. Dan itu sangat menjengkelkan. Untungnya, ada beberapa cara yang dapat Anda gunakan untuk meningkatkan ini. Android menggunakan Gradle untuk membangun. Versi terbaru adalah 4.6 memiliki peningkatan kinerja yang sangat besar dibandingkan versi sebelumnya (lihat Catatan rilis untuk detail)
Langkah 1: Perbarui versi Gradle Cara yang lebih mudah untuk melakukannya adalah dengan membuka: Buka Pengaturan Modul (proyek Anda)> Struktur Proyek
MEMPERBARUI
Ubah ke versi Gradle: 4.6 dan Ubah ke Versi Plugin Android: 3.2.1
Unduh Gradle Release distributive dari https://services.gradle.org/distributions/gradle-4.6-all.zip Dan salin ke folder Gradle:
Langkah terakhir adalah menambahkan distribusi Anda di Pengaturan> Gradle
Jangan lupa klik Terapkan untuk menyimpan perubahan.
Langkah 2: Aktifkan mode Offline, daemon Gradle, dan build paralel untuk proyek, mode Offline memberitahu Gradle untuk mengabaikan pemeriksaan terbaru. Gradle meminta dependensi setiap kali dan memiliki opsi ini membuatnya hanya menggunakan apa yang sudah ada pada mesin untuk dependensi. Pergi ke Gradle dari Pengaturan studio android dan klik di kotak kerja Offline.
Langkah selanjutnya adalah mengaktifkan daemon Gradle dan pembangunan paralel untuk proyek Anda. Build paralel akan menyebabkan proyek Anda dengan banyak modul (multi-proyek build in Gradle) dibangun secara paralel, yang seharusnya membuat proyek besar atau modular lebih cepat dibangun.
Pengaturan ini dapat diaktifkan dengan memodifikasi file bernama gradle.properties di direktori skrip Gradle (yaitu, ~ / .gradle / gradle.properties). Beberapa opsi ini (misalnya modul Complie secara paralel) tersedia dari Android Studio dan juga diaktifkan di sana oleh default, tetapi menempatkan mereka di file properti gradle.prop akan memungkinkan mereka ketika membangun dari terminal dan juga memastikan bahwa kolega Anda akan menggunakan pengaturan yang sama. Tetapi jika Anda bekerja dalam tim, terkadang Anda tidak dapat melakukan hal ini.
Menggunakan daemon akan membuat startup build Anda lebih cepat karena tidak harus memulai seluruh aplikasi Gradle setiap saat. Gradle Daemon tidak diaktifkan secara default, tetapi disarankan untuk selalu mengaktifkannya untuk mesin pengembang (tetapi membiarkannya dinonaktifkan untuk server integrasi berkelanjutan). FAQ tentang mode ini dapat ditemukan di sini https://docs.gradle.org/current/userguide/gradle_daemon.html . Pengaturan build paralel mungkin tidak aman untuk beberapa proyek. Syaratnya adalah semua modul Anda harus dipisahkan atau bangunan Anda bisa gagal (lihat http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects untuk perincian).
Langkah 3: Aktifkan pengaturan incxemental dexign dan tweak memori Anda dapat mempercepat build Anda dengan menyalakan incremental dexing. Dalam file build modul Anda:
Tambahkan opsi ini ke blok android Anda:
Dalam blok dexOptions Anda juga dapat menentukan ukuran heap untuk proses dex, misalnya:
Di mana "12g" adalah memori 12GB. Informasi tambahan tentang ini dapat ditemukan di sini google.github.io/android-gradle-dsl/current/ Anda juga dapat mengkonfigurasi parameter Gradle dalam file pengaturan, mis. Menambah ukuran tumpukan maksimum jika Anda memiliki proyek besar:
Lihat semua daftar parameter di sini: https://docs.gradle.org/current/userguide/userguide_single.html#sec:gradle_configuration_properties untuk detailnya.
Langkah 4: Nonaktifkan Antivirus Pertimbangkan untuk mengecualikan file proyek dan cache dari pemindaian antivirus. Ini jelas merupakan pertukaran dengan keamanan. Tetapi jika Anda sering berpindah antar cabang, antivirus akan memindai ulang file sebelum mengizinkan proses gradle untuk menggunakannya, yang memperlambat waktu pembuatan (khususnya proyek sinkronisasi Studio Android dengan file gradle dan tugas pengindeksan). Ukur waktu pembuatan dan proses CPU dengan dan tanpa antivirus yang diaktifkan untuk melihat apakah itu terkait. Saya harap ini membantu. Tinggalkan komentar jika Anda memiliki pertanyaan atau kiat lain untuk meningkatkan kinerja build.
tautan bermanfaat
sumber
Jika menggunakan layanan Google Play, tergantung hanya pada perpustakaan yang Anda butuhkan, bukannya seluruh gumpalan dapat membuat segalanya lebih cepat.
Jika yang Anda butuhkan hanyalah peta, gunakan:
dari pada:
Yang terakhir membawa 20k metode (lihat blog) ke classpath, yang mungkin memberi tip jumlah metode total lebih dari 64k.
Itu akan memaksa penggunaan proguard atau multidex bahkan untuk membangun debug. Untuk salah satu proyek saya, saya memiliki waktu pengembangan berikut
Jika dikembangkan pada sdk 21+, dimungkinkan untuk mengoptimalkan pembuatan multidex seperti yang dinyatakan dalam dokumentasi android
sumber
play-service
perpustakaan, saya dikompilasi hanyamaps
danlocations
dan menonaktifkanmultidex
. Saya merasakan perbedaan besar. Terima kasih +1Jawaban yang diterima adalah untuk versi android studio yang lebih lama dan sebagian besar masih berfungsi sampai sekarang. Memperbarui studio Android membuatnya sedikit lebih cepat. Jangan repot-repot untuk menentukan ukuran tumpukan karena akan meningkat secara otomatis dengan peningkatan Xms dan Xmx. Berikut ini beberapa modifikasi dengan VMoptions
Di folder bin ada file studio.vmtions untuk mengatur konfigurasi lingkungan. Dalam kasus saya ini adalah studio64.vmoptions Tambahkan baris berikut jika belum ditambahkan dan simpan file. Dalam kasus saya saya sudah 8GB RAM.
Mulai studio android. Pergi ke File-> Pengaturan-> Build, Eksekusi, Deployment-> Compiler
Dalam hal menggunakan mac, pada awalnya saya tidak dapat menemukan vmoptions. Pokoknya, inilah artikel yang bagus tentang bagaimana kita dapat mengubah opsi di MAC OSX . Mengutip dari artikel ini di sini.
Buka terminal Anda dan masukkan perintah ini untuk membuka vmoptions di MAC OSX:
sumber
Cukup buat file bernama gradle.properties di direktori berikut:
Tambahkan baris ini ke file:
Bagi saya, kecepatannya sekarang sama dengan Eclipse.
Sumber: https://www.timroes.de/2013/09/12/speed-up-gradle/
sumber
Anda bisa membuat proses lebih cepat, jika Anda menggunakan gradle dari command line. Ada banyak optimasi yang harus dilakukan untuk para pengembang IDE. Tetapi ini hanyalah versi awal.
Untuk informasi lebih lanjut baca diskusi ini di g + dengan beberapa devs.
sumber
Jika ada yang mengerjakan proyek yang disinkronkan melalui Subversion dan ini masih terjadi, saya pikir ini dapat memperlambat proses alur kerja di Android Studio. Misalnya jika itu berfungsi sangat lambat saat: menggulir kelas, xml dll, saat aplikasi saya masih berjalan di perangkat saya.
sumber
Pembaruan Setelah Android Studio 2.3
Semua jawaban bagus, dan saya mendorong untuk menggunakan metode itu dengan yang ini untuk meningkatkan kecepatan membangun.
Setelah merilis Android 2.2 pada September 2016, Android merilis fitur cache build eksperimental untuk mempercepat
gradle
kinerja build, yang sekarang resmi dari Android Studio 2.3 Canary. (Catatan Rilis Resmi)Ini memperkenalkan fitur cache bangunan baru, yang diaktifkan secara default, dapat mempercepat waktu membangun (termasuk build penuh, build tambahan, dan jalankan instan) dengan menyimpan dan menggunakan kembali file / direktori yang dibuat pada build sebelumnya dari Android yang sama atau berbeda. proyek.
Cara Penggunaan:
Tambahkan baris berikut di
gradle.properties
file AndaBersihkan cache:
Ada tugas Gradle baru yang meminta
cleanBuildCache
Anda untuk lebih mudah membersihkan cache build. Anda dapat menggunakannya dengan mengetik berikut ini di terminal Anda:./gradlew cleanBuildCache
ATAU Anda dapat membersihkan cache untuk Android studio 2.2 dengan menghapus semua file yang disimpan di lokasi
C:\Users\<username>\.android\build-cache
sumber
Setelah mengubah pengaturan ini, durasi kompilasi saya 10 menit berubah menjadi ~ 10 detik.
Langkah 1:
Langkah 2:
Referensi - https://www.sundoginteractive.com/blog/speed-up-gradle-in-android-studio
Kerugian:
Anda tidak akan dapat menarik versi terbaru dari dependensi yang diidentifikasi dalam file build.gradle Anda. Ini berjalan lebih cepat karena menggunakan snapshot cache dari perpustakaan yang diimpor itu.
Catatan Penting : Saat Anda menggunakan aplikasi hapus pengaturan ini & bangun dengan versi dependensi terbaru.
sumber
Tambang dipecahkan dengan
Gradle build berubah dari 8 menit menjadi 3 detik.
sumber
Inilah yang membantu programmer Android pemula ini (mantan programmer profesional, tahun lalu) dalam mempercepat Android Studio 2.2. Saya tahu ini adalah pengulangan, tetapi, hanya meringkas di satu tempat.
Pembuatan awal masih bisa sangat lambat, tetapi memulai ulang aplikasi yang sedang berjalan biasanya sangat dapat ditoleransi. Saya menggunakan PC sub-optimal: CPU AMD Quad-Core A8-7410, RAM 8MB, HD non-SSD, Win 10. (Dan, ini posting Stack Overflow pertama saya ....;)
DALAM PENGATURAN -> GRADLE:
ya untuk "Pekerjaan offline" (ini mungkin merupakan pengaturan paling impor).
DALAM PENGATURAN -> KOMPILER:
ya untuk "Kompilasi modul independen secara paralel" (tidak yakin apakah ini memang membantu menggunakan CPU multicore).
DI GRADLE SCRIPTS , "build.gradle (Module: app)":
JUGA DALAM TULISAN GRADLE , "gradle.properties (Project Properties)":
org.gradle.jvmargs = -Xmx3048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
org.gradle.parallel = true org.gradle.daemon = true
Selain itu , pengujian pada perangkat fisik bukan emulator bekerja dengan baik untuk saya; tablet kecil yang berdiri nyaman.
sumber
Hanya tip perbaikan kinerja lainnya:
Android Studio 3.0 termasuk kompiler DEX baru yang disebut D8.
"Kompilator dex sebagian besar bekerja di bawah tenda dalam pengembangan aplikasi Anda sehari-hari, tetapi secara langsung memengaruhi waktu pembuatan aplikasi Anda, ukuran file .dex, dan kinerja runtime."
"Dan ketika membandingkan kompiler D8 baru dengan kompiler DX saat ini, D8 mengkompilasi lebih cepat dan menghasilkan file .dex yang lebih kecil, sambil memiliki kinerja runtime aplikasi yang sama atau lebih baik."
D8 adalah opsional - jangan gunakan itu kita harus meletakkan ke project's gradle.properties
Informasi lebih lanjut: https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html
PS. Itu meningkatkan waktu build saya sekitar 30%.
sumber
Setup ini berjalan sangat cepat untuk saya (sekitar 2 detik build)
build.gradle
properti
PC saya:
file proyek
- Semua terletak di HD lokal
sumber
Ikuti langkah-langkah berikut.
Aktifkan mode offline: Silakan periksa di bawah layar cetak.
https://i.stack.imgur.com/RF9uG.png
Aktifkan Instant Run: Silakan periksa di bawah layar cetak.
https://i.stack.imgur.com/mvHKJ.png
Jika Anda ingin mempelajari lebih lanjut tentang lari instan, silakan kunjungi situs pengembang android.
sumber
Anda dapat mencoba membuka menu gradle di sisi kanan studio, dan hanya merakit modul yang telah Anda ubah, lalu jalankan perintah install. Ketika Anda menekan run itu merakit semua terlepas dari perubahan apa pun yang mungkin Anda buat pada kode yang dirakitnya
sumber
Saya jauh dari menjadi ahli Gradle tetapi lingkungan saya memiliki baris berikut di .gradle / init.gradle
Namun saya tidak tahu mengapa garis itu ada di sana, tetapi saya mencoba mengubahnya
dan sekarang saya akhirnya dapat bekerja tanpa bersumpah untuk skema buildind Android Studio & Gradle.
sumber
Dalam kasus khusus kami, masalahnya adalah karena memiliki retrolambda plugin , yang memaksa semua proyek dan sub-proyek untuk mengkompilasi ulang setiap kali kami mencoba meluncurkan aplikasi kami, bahkan jika tidak ada kode yang telah diubah dalam modul inti kami.
Menghapus retrolamba telah memperbaikinya bagi kami. Semoga ini bisa membantu seseorang.
sumber
Coba ini dulu. Ini adalah pengalaman pribadi saya.
Saya memiliki masalah yang sama. Apa yang saya lakukan hanyalah menonaktifkan antivirus secara permanen (Mine was Avast Security 2015). Setelah menonaktifkan antivirus, semuanya berjalan dengan baik. gradle selesai dengan sukses. Mulai sekarang dalam hitungan detik gradle selesai (Hanya butuh 5-10 detik).
sumber
Hai Saya tahu ini jawaban yang sangat terlambat tapi mungkin membantu seseorang
dalam kasus saya yang saya gunakan
dalam ketergantungan Gradle aplikasi saya
tetapi di salah satu perpustakaan saya itu
setelah mengubah semua ke versi terbaru masalah saya terpecahkan.
sumber
Mengikuti langkah-langkah akan membuatnya 10 kali lebih cepat dan mengurangi waktu pembangunan 90%
Pertama buat file bernama gradle.properties di direktori berikut:
Tambahkan baris ini ke file:
Dan periksa opsi ini di Android Studio
sumber
GUNAKAN sudo ini dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libncurses5: i386 libstdc ++ 6: i386 zlib1g: i386
Android Studio gagal membangun proyek baru, kehabisan waktu saat melakukan proses slave aapt
sumber
Perubahan sepele (ke resorpsi xml) masih membutuhkan waktu 10 menit . Seperti @rivare mengatakan dalam jawabannya, membangun baris perintah lebih cepat (mengambil ini ke 15 detik ).
Berikut adalah beberapa langkah untuk setidaknya membuat build sepele dari baris perintah untuk Windows.
Buka root proyek Anda (di mana gradlew.bat berada):
cd c: \ android \ MaskActivity
jalankan build :
gradlew assembleDebug
hapus instalan apk dari telepon secara langsung (seret untuk menghapus instalan).
Ketika build selesai, bunuh proses java BESAR menggunakan Windows Task Manager.
ATAU jika Anda memiliki alat unix pada mesin Windows Anda:
"pid" ditampilkan:
Sekarang instal apk Anda:
adb -d instal C: \ Android \ MaskActivity \ app \ build \ outputs \ apk \ app-debug.apk
sumber
Menurut dokumentasi android , tambahkan ini dalam file gradle dari modul aplikasi.
sumber
Untuk menjalankan Android envirorment pada mesin konfigurasi rendah.
Android studio memiliki 1.2 Gb default heap dapat turun menjadi 512 MB Help> Edit custom VM options studio.vmoptions -Xmx512m Performace layout akan dipercepat
Untuk Gradle salah satu komponen inti di Android studio Mkae yakin seperti sekarang 3.0beta adalah yang terbaru
Kiat di bawah ini dapat memengaruhi kualitas kode, jadi harap digunakan dengan hati-hati:
Studio berisi Power safe Mode ketika dinyalakan akan menutup operasi latar belakang yang berserat, kode komplit dan sebagainya.
Anda dapat menjalankan lintcheck secara manual saat dibutuhkan ./gradlew lint
Sebagian besar menggunakan emulator Android rata-rata mengkonsumsi 2 GB RAM jadi jika mungkin menggunakan perangkat Android yang sebenarnya ini akan mengurangi beban sumber daya Anda di komputer Anda. Atau Anda dapat mengurangi RAM emulator dan secara otomatis akan mengurangi konsumsi memori virtual pada komputer Anda. Anda dapat menemukannya di konfigurasi perangkat virtual dan pengaturan lanjutan.
Mode offline Gradle adalah fitur untuk pengguna dengan bandwidth terbatas untuk menonaktifkan pengunduhan dependensi build. Ini akan mengurangi operasi latar belakang yang akan membantu meningkatkan kinerja studio Android.
Studio Android menawarkan optimasi untuk mengkompilasi beberapa modul secara paralel. Pada mesin RAM rendah fitur ini kemungkinan akan berdampak negatif pada kinerja. Anda dapat menonaktifkannya di dialog pengaturan kompiler.
sumber