caraterbaru atau Solusi mengatasi loading aplikasi atau memulai android terus menerus, ini bisa di atasi dengan cara hard riset atau wipe data. Di video ini
Proses latar belakang dapat menggunakan banyak memori dan daya baterai. Misalnya, siaran implisit dapat memulai banyak proses latar belakang yang telah mendaftar untuk memantau siaran tersebut, meskipun proses itu mungkin tidak begitu berguna. Hal ini dapat berdampak besar pada performa perangkat dan pengalaman pengguna. Untuk mengatasi masalah ini, Android API level 24 menerapkan pembatasan berikut Aplikasi yang menargetkan Android API level 24 dan yang lebih tinggi tidak menerima siaran CONNECTIVITY_ACTION jika aplikasi tersebut mendeklarasikan penerima siarannya di manifes. Aplikasi akan tetap menerima siaran CONNECTIVITY_ACTION jika mendaftarkan BroadcastReceiver dengan dan konteks tersebut masih valid. Aplikasi tidak dapat mengirim atau menerima siaran ACTION_NEW_PICTURE atau ACTION_NEW_VIDEO. Pengoptimalan ini memengaruhi semua aplikasi, tidak hanya yang menargetkan Android API level 24. Jika aplikasi Anda menggunakan salah satu intent ini, Anda harus menghapus dependensi pada intent tersebut sesegera mungkin agar dapat menargetkan perangkat yang menjalankan Android atau yang lebih tinggi dengan tepat. Framework Android menyediakan beberapa solusi untuk mengurangi kebutuhan akan siaran implisit ini. Misalnya, JobScheduler dan WorkManager yang baru menyediakan mekanisme andal untuk menjadwalkan operasi jaringan jika kondisi tertentu terpenuhi, misalnya koneksi ke jaringan tidak berbayar. Sekarang Anda juga dapat menggunakan JobScheduler untuk merespons perubahan pada penyedia konten. Objek JobInfo membuat enkapsulasi parameter yang digunakan JobScheduler untuk menjadwalkan tugas Anda. Saat kondisi tugas terpenuhi, sistem akan mengeksekusi tugas ini di JobService aplikasi Anda. Di halaman ini, kita akan mempelajari cara menggunakan metode alternatif, seperti JobScheduler, untuk menyesuaikan aplikasi Anda dengan pembatasan baru ini. Larangan yang diinisialisasi pengguna Di halaman Penggunaan baterai dalam setelan sistem, pengguna dapat memilih dari opsi berikut Tidak dibatasi Mengizinkan semua pekerjaan di latar belakang, yang mungkin menggunakan lebih banyak daya baterai. Dioptimalkan default Mengoptimalkan kemampuan aplikasi untuk melakukan pekerjaan di latar belakang, berdasarkan cara pengguna berinteraksi dengan aplikasi. Dibatasi Mencegah aplikasi berjalan di latar belakang sepenuhnya. Apl mungkin tidak berfungsi dengan benar. Jika aplikasi menunjukkan beberapa perilaku buruk yang dijelaskan dalam Android vitals, sistem mungkin meminta pengguna untuk membatasi akses aplikasi tersebut ke resource sistem. Jika sistem mendeteksi bahwa aplikasi menggunakan terlalu banyak resource, pengguna akan diberi tahu dan diberi opsi untuk membatasi tindakan aplikasi. Perilaku yang dapat memicu pemberitahuan ini meliputi Penguncian layar saat aktif yang berlebihan 1 penguncian layar saat aktif parsial ditahan selama satu jam saat layar nonaktif Layanan latar belakang yang berlebihan Jika aplikasi menargetkan level API di bawah 26 dan memiliki layanan latar belakang yang berlebihan Pembatasan pasti yang diberlakukan ditentukan oleh produsen perangkat. Misalnya, pada build AOSP yang menjalankan Android 9 API level 28 atau yang lebih tinggi, aplikasi yang berjalan di latar belakang dalam status "dibatasi" memiliki batasan berikut Tidak dapat meluncurkan layanan latar depan Layanan latar depan yang ada dihapus dari latar depan Alarm tidak terpicu Tugas tidak dijalankan Selain itu, jika aplikasi menargetkan Android 13 API level 33 atau yang lebih tinggi dan berada dalam status "dibatasi", sistem tidak akan mengirimkan siaran BOOT_COMPLETED atau siaran LOCKED_BOOT_COMPLETED hingga aplikasi dimulai untuk alasan lain. Pembatasan spesifik tercantum dalam Pembatasan pengelolaan daya. Pembatasan penerimaan siaran aktivitas jaringan Aplikasi yang menargetkan Android API level 24 tidak menerima siaran CONNECTIVITY_ACTION jika sudah mendaftar untuk menerima siaran tersebut dalam manifesnya. Semua proses yang bergantung pada siaran ini tidak akan dimulai. Hal ini dapat menimbulkan masalah pada aplikasi yang ingin memproses perubahan jaringan atau menjalankan aktivitas jaringan massal saat perangkat tersambung ke jaringan tidak berbayar. Beberapa solusi untuk mengatasi pembatasan ini sudah disediakan dalam framework Android, tetapi pemilihan solusi yang tepat bergantung pada apa yang Anda ingin aplikasi capai. Catatan BroadcastReceiver yang terdaftar pada akan terus menerima siaran ini saat aplikasi berjalan. Menjadwalkan tugas jaringan pada koneksi tidak berbayar Saat menggunakan class untuk membuat objek JobInfo, terapkan metode setRequiredNetworkType dan teruskan sebagai parameter tugas. Contoh kode berikut menjadwalkan layanan untuk berjalan saat perangkat tersambung ke jaringan tidak berbayar dan mengisi daya Kotlin const val MY_BACKGROUND_JOB = 0 ... fun scheduleJobcontext Context { val jobScheduler = as JobScheduler val job = MY_BACKGROUND_JOB, ComponentNamecontext, MyJobService .setRequiredNetworkType .setRequiresChargingtrue .build } Java public static final int MY_BACKGROUND_JOB = 0; ... public static void scheduleJobContext context { JobScheduler js = JobScheduler JobInfo job = new MY_BACKGROUND_JOB, new ComponentNamecontext, .setRequiredNetworkType .setRequiresChargingtrue .build; } Saat kondisi tugas terpenuhi, aplikasi Anda akan menerima callback untuk menjalankan metode onStartJob dalam yang ditetapkan. Untuk melihat contoh penerapan JobScheduler, lihat aplikasi sampel JobScheduler. Alternatif baru untuk JobScheduler adalah WorkManager, sebuah API yang memungkinkan Anda menjadwalkan tugas latar belakang yang membutuhkan penyelesaian terjamin, terlepas dari apakah proses aplikasi tersebut aktif atau tidak. WorkManager memilih cara yang tepat untuk menjalankan tugas tersebut baik secara langsung di thread dalam proses aplikasi Anda maupun menggunakan JobScheduler, FirebaseJobDispatcher, atau AlarmManager berdasarkan faktor-faktor seperti API level perangkat. Selain itu, WorkManager tidak memerlukan layanan Play dan menyediakan beberapa fitur lanjutan, seperti merangkai tugas bersama-sama atau memeriksa status tugas. Untuk mempelajari lebih lanjut, lihat WorkManager. Memantau konektivitas jaringan selagi aplikasi berjalan Aplikasi yang sedang berjalan masih dapat memproses CONNECTIVITY_CHANGE dengan BroadcastReceiver yang terdaftar. Namun, ConnectivityManager API menyediakan metode yang lebih andal untuk meminta callback hanya jika kondisi jaringan tertentu terpenuhi. Objek NetworkRequest mendefinisikan parameter callback jaringan dari segi NetworkCapabilities. Anda membuat objek NetworkRequest dengan class Selanjutnya, registerNetworkCallback meneruskan objek NetworkRequest ke sistem. Saat kondisi jaringan terpenuhi, aplikasi akan menerima callback untuk menjalankan metode onAvailable yang ditentukan di class Aplikasi akan terus menerima callback hingga aplikasi keluar atau memanggil unregisterNetworkCallback. Di Android API level 24, aplikasi tidak dapat mengirim atau menerima siaran ACTION_NEW_PICTURE atau ACTION_NEW_VIDEO. Pembatasan ini membantu mengurangi dampak performa dan pengalaman pengguna saat beberapa aplikasi harus aktif untuk memproses gambar atau video baru. Android API level 24 memperluas JobInfo dan JobParameters untuk menyediakan solusi alternatif. Memicu tugas saat URI konten berubah Untuk memicu tugas saat URI konten berubah, Android API level 24 memperluas JobInfo API dengan metode berikut Melakukan enkapsulasi parameter yang diperlukan untuk memicu tugas saat URI konten berubah. Meneruskan objek TriggerContentUri ke JobInfo. ContentObserver akan memantau URI konten yang dienkapsulasi. Jika terdapat beberapa objek TriggerContentUri yang terkait dengan tugas, sistem akan memberikan callback meskipun perubahan yang dilaporkan hanya menyangkut salah satu URI konten. Tambahkan flag untuk memicu tugas jika ada turunan dari perubahan URI yang ditentukan. Flag ini berkaitan dengan parameter notifyForDescendants yang diteruskan ke registerContentObserver. Catatan TriggerContentUri tidak dapat digunakan bersama setPeriodic atau setPersisted. Untuk terus memantau perubahan konten, jadwalkan JobInfo baru sebelum JobService aplikasi selesai menangani callback terbaru. Kode contoh berikut menjadwalkan tugas yang akan dipicu saat sistem melaporkan perubahan pada URI konten, MEDIA_URI Kotlin const val MY_BACKGROUND_JOB = 0 ... fun scheduleJobcontext Context { val jobScheduler = as JobScheduler val job = MY_BACKGROUND_JOB, ComponentNamecontext, MediaContentJob .addTriggerContentUri .build } Java public static final int MY_BACKGROUND_JOB = 0; ... public static void scheduleJobContext context { JobScheduler js = JobScheduler builder = new MY_BACKGROUND_JOB, new ComponentNamecontext, new } Saat sistem melaporkan perubahan dalam URI konten yang ditentukan, aplikasi Anda akan menerima callback dan objek JobParameters diteruskan ke metode onStartJob dalam Menentukan otoritas konten yang memicu tugas Android API level 24 juga memperluas JobParameters agar aplikasi Anda dapat menerima informasi berguna tentang URI dan otoritas konten yang memicu tugas Uri[] getTriggeredContentUris Menampilkan array URI yang memicu tugas. Array ini akan bernilai null jika tidak ada URI yang memicu tugas tersebut misalnya, tugas terpicu karena batas waktu atau alasan lain, atau jumlah URI yang berubah lebih dari 50. String[] getTriggeredContentAuthorities Menampilkan array string otoritas konten yang memicu tugas. Jika array yang ditampilkan tidak bernilai null, gunakan getTriggeredContentUris untuk mengambil detail URI mana yang telah berubah. Kode contoh berikut mengganti metode dan mencatat URI dan otoritas konten yang memicu tugas Kotlin override fun onStartJobparams JobParameters Boolean { StringBuilder.apply { append"Media content has changed\n" { authorities -> append"Authorities ${ "}\n" append } ? append"No content" toString } return true } Java Override public boolean onStartJobJobParameters params { StringBuilder sb = new StringBuilder; content has changed\n"; if != null { "; boolean first = true; for String auth { if first { first = false; } else { "; } } if != null { for Uri uri { } } } else { content"; } return true; } Mengoptimalkan aplikasi Anda lebih jauh Mengoptimalkan aplikasi agar berjalan di perangkat bermemori rendah, atau dalam kondisi memori rendah, dapat meningkatkan performa dan pengalaman pengguna. Menghapus dependensi pada layanan latar belakang dan penerima siaran implisit yang terdaftar di manifes dapat membuat aplikasi Anda berjalan lebih baik di perangkat tersebut. Meskipun Android API level 24 mengambil langkah untuk mengurangi sebagian masalah ini, sebaiknya Anda mengoptimalkan aplikasi agar berjalan tanpa menggunakan proses latar belakang ini sepenuhnya. Perintah Android Debug Bridge ADB berikut dapat membantu Anda menguji perilaku aplikasi dengan proses latar belakang yang dinonaktifkan Untuk menyimulasikan kondisi saat siaran implisit dan layanan latar belakang tidak tersedia, masukkan perintah berikut $ adb shell cmd appops set RUN_IN_BACKGROUND ignore Untuk mengaktifkan kembali siaran implisit dan layanan latar belakang, masukkan perintah berikut $ adb shell cmd appops set RUN_IN_BACKGROUND allow Anda dapat melakukan simulasi pengguna yang menempatkan aplikasi Anda dalam status "dibatasi" untuk penggunaan baterai di latar belakang. Setelan ini mencegah aplikasi Anda berjalan di latar belakang. Untuk melakukannya, jalankan perintah berikut di jendela terminal $ adb shell cmd appops set RUN_ANY_IN_BACKGROUND deny TipsAndroid untuk mengoptimalkan memori internal - Selama ini, cukup banyak pengguna perangkat Android yang mengeluhkan betapa kecilnya memori internal yang dimiliki perangkat mereka.. Karena hal tersebut, maka cukup sering muncul peringatan low internal memory sehingga pengguna tidak bisa lagi menginstal aplikasi tambahan. Waktu build yang lama memperlambat proses pengembangan. Halaman ini menyediakan beberapa teknik untuk membantu mengatasi kendala pada kecepatan build. Proses yang biasa dilakukan untuk meningkatkan kecepatan build aplikasi Anda adalah sebagai berikut Mengoptimalkan konfigurasi build dengan menjalankan beberapa langkah yang langsung memberikan manfaat pada sebagian besar project Android Studio. Membuat profil build untuk mengidentifikasi dan mendiagnosis beberapa kendala rumit yang mungkin berlaku spesifik pada project atau workstation Anda. Saat mengembangkan aplikasi, lakukan deployment ke perangkat yang menjalankan Android API level 24 atau versi lebih tinggi, jika memungkinkan. Platform Android versi baru menggunakan mekanisme yang lebih baik untuk mendorong update ke aplikasi Anda, seperti Android Runtime ART dan dukungan native untuk beberapa file DEX. Catatan Setelah membuat clean build pertama, Anda mungkin merasa bahwa build selanjutnya, baik clean maupun inkremental, berperforma jauh lebih cepat bahkan tanpa menggunakan pengoptimalan apa pun yang dijelaskan pada halaman ini. Hal ini dikarenakan daemon Gradle memiliki periode "pemanasan" untuk meningkatkan performa—serupa dengan proses JVM lainnya. Mengoptimalkan konfigurasi build Anda Ikuti tips berikut untuk meningkatkan kecepatan build project Android Studio Anda. Menjaga alat Anda agar selalu terupdate Alat Android menerima pengoptimalan build dan fitur baru dengan hampir setiap update. Beberapa tips pada halaman ini diberikan dengan asumsi bahwa Anda menggunakan versi terbaru. Untuk memanfaatkan pengoptimalan terbaru, selalu update Android Studio dan SDK Tools Plugin Android Gradle Menghindari kompilasi resource yang tidak perlu Hindari mengompilasi dan memaketkan resource yang tidak sedang Anda uji seperti pelokalan bahasa tambahan dan resource kepadatan layar. Sebaliknya, hanya tentukan satu resource bahasa dan kepadatan layar untuk ragam "dev", seperti yang ditunjukkan pada contoh berikut Groovy android { ... productFlavors { dev { ... // The following configuration limits the "dev" flavor to using // English stringresources and xxhdpi screen-density resources. resourceConfigurations "en", "xxhdpi" } ... } } Kotlin android { ... productFlavors { create"dev" { ... // The following configuration limits the "dev" flavor to using // English stringresources and xxhdpi screen-density resources. resourceConfigurations"en", "xxhdpi" } ... } } Bereksperimen dengan menempatkan Portal Plugin Gradle di akhir Di Android, semua plugin berada dalam repositori google dan mavenCentral. Namun, build Anda mungkin memerlukan plugin pihak ketiga yang di-resolve menggunakan layanan gradlePluginPortal. Gradle menelusuri repositori sesuai urutan yang dideklarasikan, sehingga performa build akan meningkat jika repositori yang tercantum pertama kali berisi sebagian besar plugin. Oleh karena itu, lakukan eksperimen dengan entri gradlePluginPortal dengan menempatkannya terakhir di blok repositori dalam file Anda. Pada umumnya, hal ini meminimalkan jumlah penelusuran plugin yang berlebihan dan meningkatkan kecepatan build Anda. Untuk informasi selengkapnya tentang cara Gradle menjelajahi beberapa repositori, lihat Mendeklarasikan beberapa repositori dalam dokumentasi Gradle. Menggunakan nilai konfigurasi build statis dengan build debug Anda Selalu gunakan nilai statis untuk properti yang dimasukkan ke file manifes atau file resource untuk jenis build debug Anda. Penggunaan kode versi dinamis, nama versi, resource, atau logika build lain yang mengubah file manifes memerlukan build aplikasi lengkap setiap kali Anda ingin menjalankan perubahan, meskipun perubahan sebenarnya mungkin hanya memerlukan hot swap. Jika konfigurasi build Anda memerlukan properti dinamis semacam itu, pisahkan properti tersebut ke varian build rilis Anda dan pertahankan nilai statis untuk build debug, seperti yang ditampilkan pada contoh berikut ... // Use a filter to apply onVariants to a subset of the variants. onVariantsselector.withBuildType"release" { variant -> // Because an app module can have multiple outputs when using multi-APK, versionCode // is only available on the variant output. // Gather the output when we are in single mode and there is no multi-APK. val mainOutput = { == } // Create the version code generating task. val versionCodeTask = VersionCodeTask { } // Wire the version code from the task output. // map will create a lazy Provider that // 1. Runs just before the consumers, ensuring that the producer VersionCodeTask has run // and therefore the file is created. // 2. Contains task dependency information so that the consumers run after the producer. { { } } } ... abstract class VersionCodeTask DefaultTask { getOutputFile abstract val outputFile RegularFileProperty TaskAction fun action { } } Lihat urutan langkah setVersionsFromTask di GitHub untuk mempelajari cara menetapkan kode versi dinamis dalam project Anda. Menggunakan versi dependensi statis Saat mendeklarasikan dependensi dalam file hindari penggunaan nomor versi dinamis yang memiliki tanda plus di bagian akhir, seperti ' Menggunakan nomor versi dinamis dapat menyebabkan update versi yang tidak terduga, kesulitan mengatasi perbedaan versi, dan build lebih lambat yang disebabkan oleh pemeriksaan update oleh Gradle. Sebagai gantinya, gunakan nomor versi statis. Membuat modul library Temukan kode dalam aplikasi Anda yang dapat diubah menjadi modul library Android. Memodulasi kode dengan cara ini memungkinkan sistem build untuk hanya mengompilasi modul yang Anda ubah, dan meng-cache output tersebut untuk build mendatang. Modularisasi juga membuat eksekusi project paralel jadi lebih efektif saat Anda mengaktifkan pengoptimalan tersebut. Membuat tugas untuk logika build kustom Setelah membuat profil build, jika profil build menunjukkan bahwa sebagian besar waktu build yang lama dihabiskan di fase **Mengonfigurasi Project**, periksa skrip dan cari kode untuk disertakan dalam tugas Gradle kustom. Dengan memindahkan beberapa logika build ke dalam tugas, Anda akan membantu memastikan bahwa tugas hanya berjalan jika diperlukan, hasilnya dapat di-cache untuk build selanjutnya, dan logika build tersebut dapat dijalankan secara paralel jika Anda mengaktifkan eksekusi project paralel. Guna mempelajari lebih lanjut tentang tugas untuk logika build kustom, baca dokumentasi Gradle resmi. Tips Jika build Anda menyertakan banyak tugas kustom, Anda mungkin perlu memecah file dengan membuat class tugas kustom. Tambahkan class Anda ke direktori project-root/buildSrc/src/main/groovy/; Gradle secara otomatis menyertakan class tersebut dalam classpath untuk semua file di project Anda. Mengonversi gambar ke WebP WebP adalah format file gambar yang memberikan kompresi lossy seperti JPEG serta transparansi seperti PNG. WebP dapat memberikan kompresi yang lebih baik daripada JPEG atau PNG. Mengurangi ukuran file gambar tanpa perlu menjalankan kompresi waktu build dapat mempercepat build, terutama jika aplikasi Anda menggunakan banyak referensi gambar. Namun, Anda mungkin akan melihat sedikit peningkatan penggunaan CPU perangkat saat melakukan dekompresi gambar WebP. Gunakan Android Studio untuk mengonversi gambar ke WebP dengan mudah. Menonaktifkan pemrosesan PNG Jika tidak mengonversi gambar PNG ke WebP, Anda tetap dapat mempercepat build dengan menonaktifkan kompresi gambar otomatis setiap kali mem-build aplikasi. Jika Anda menggunakan plugin Android atau yang lebih tinggi, pemrosesan PNG dinonaktifkan secara default hanya untuk jenis build "debug". Guna menonaktifkan pengoptimalan ini untuk jenis build lainnya, tambahkan kode berikut ini ke file Anda Groovy android { buildTypes { release { // Disables PNG crunching for the "release" build type. crunchPngs false } } } Kotlin android { buildTypes { getByName"release" { // Disables PNG crunching for the "release" build type. isCrunchPngs = false } } } Karena jenis build atau ragam produk tidak menentukan properti ini, Anda perlu menyetel properti ini secara manual ke true saat membuat versi rilis aplikasi Anda. Bereksperimen dengan pembersih sampah memori paralel JVM Performa build dapat ditingkatkan dengan mengonfigurasi pembersih sampah memori JVM optimal yang digunakan oleh Gradle. Meskipun JDK 8 dikonfigurasi untuk menggunakan pembersih sampah memori paralel secara default, JDK 9 dan yang lebih tinggi dikonfigurasi untuk menggunakan pembersih sampah memori G1. Untuk meningkatkan performa build, sebaiknya uji build Gradle Anda dengan pembersih sampah memori paralel. Di tetapkan hal berikut Jika ada opsi lain yang telah ditetapkan di kolom ini, tambahkan opsi baru -XX+UseParallelGC Untuk mengukur kecepatan build dengan konfigurasi yang berbeda, lihat Membuat profil build Anda. Meningkatkan ukuran heap JVM Jika Anda mengamati proses build berjalan lambat, terlebih jika pembersihan sampah memori menghabiskan lebih dari 15% waktu build di hasil Build Analyzer , Anda harus meningkatkan ukuran heap Java Virtual Machine JVM. Dalam file tetapkan batas ke 4, 6, atau 8 gigabyte seperti yang ditunjukkan pada contoh berikut Kemudian, lakukan pengujian untuk meningkatkan kecepatan build. Cara termudah untuk menentukan ukuran heap yang optimal adalah dengan meningkatkan batas dalam jumlah kecil, lalu mengujinya untuk memastikan peningkatan kecepatan build sudah memadai. Jika Anda juga menggunakan pembersih sampah memori paralel JVM, seluruh baris akan terlihat seperti ini -XX+HeapDumpOnOutOfMemoryError -XX+UseParallelGC -XXMaxMetaspaceSize=1g Anda dapat menganalisis error memori JVM dengan mengaktifkan flag HeapDumpOnOutOfMemoryError . Dengan melakukan tindakan ini, JVM akan menghasilkan heap dump saat memori habis. Menggunakan class R non-transitif Gunakan class R non-transitif agar build untuk aplikasi dengan beberapa modul dapat menjadi lebih cepat. Cara ini membantu mencegah duplikasi resource dengan memastikan bahwa class R setiap modul hanya berisi referensi ke resource-nya sendiri, tanpa mengambil referensi dari dependensinya. Dengan demikian, build akan menjadi lebih cepat dan Anda dapat menghindari kompilasi terkait. Ini adalah perilaku default di plugin Android Gradle dan yang lebih tinggi. Mulai dari Android Studio Bumblebee, class R non-transitif untuk project baru akan diaktifkan secara default. Untuk project yang dibuat dengan Android Studio versi sebelumnya, update project agar dapat menggunakan class R non-transitif dengan membuka Refactor > Migrate to Non-Transitive R Classes. Untuk mempelajari resource aplikasi dan class R lebih lanjut, lihat Ringkasan resource aplikasi. Menggunakan class R non-konstanta Gunakan kolom class R non-konstanta dalam aplikasi dan pengujian untuk meningkatkan inkrementalitas kompilasi Java dan memungkinkan penyingkatan resource yang lebih tepat. Kolom class R selalu non-konstanta untuk library, karena resource diberi nomor saat memaketkan APK untuk aplikasi atau pengujian yang bergantung pada library tersebut. Ini adalah perilaku default di Plugin Android Gradle dan yang lebih tinggi. Menonaktifkan flag Jetifier Sebagian besar project menggunakan library AndroidX secara langsung. Oleh karena itu, Anda dapat menghapus flag Jetifier untuk performa build yang lebih baik. Untuk menghapus flag Jetifier, tetapkan dalam file Anda. Build Analyzer dapat melakukan pemeriksaan untuk memeriksa apakah flag dapat dihapus dengan aman agar project Anda memiliki performa build yang lebih baik dan dapat bermigrasi dari Android Support library yang tidak dikelola. Untuk mempelajari Build Analyzer lebih lanjut, lihat Memecahkan masalah performa build. Menggunakan cache konfigurasi eksperimental Cache konfigurasi adalah fitur eksperimental yang memungkinkan Gradle mencatat informasi grafik tugas build dan menggunakannya kembali dalam build berikutnya sehingga tidak perlu mengonfigurasi ulang seluruh build. Untuk mengaktifkan cache konfigurasi, ikuti langkah-langkah berikut Periksa apakah semua plugin project kompatibel. Gunakan Build Analyzer untuk memeriksa apakah project Anda kompatibel dengan cache konfigurasi. Build Analyzer menjalankan urutan build pengujian untuk menentukan apakah fitur ini dapat diaktifkan untuk project. Lihat masalah 13490 untuk daftar plugin yang didukung. Tambahkan kode berikut ke file Use this flag carefully, in case some of the plugins are not fully compatible. Jika cache konfigurasi diaktifkan, output build akan menampilkan Calculating task graph as no configuration cache is available for tasks saat pertama kali Anda menjalankan project. Selama eksekusi berikutnya, output build akan menampilkan Reusing configuration cache. Untuk mempelajari cache konfigurasi lebih lanjut, lihat postingan blog Mendalami cache konfigurasi dan dokumentasi Gradle tentang cache konfigurasi. Dokumenini menjelaskan beberapa tindakan yang dapat dilakukan untuk mengoptimalkan aplikasi Android Anda untuk perangkat Chrome OS.LihatJuga : 7 Cara Menghapus Memori Internal Android. 6. Menghapus aplikasi yang tidak pernah digunakan. 6. Hapus aplikasi yang tidak digunakan. RUDI DIAN ARIFIN. Anda tidak perlu mempertahankan aplikasi yang sekiranya tidak dibutuhkan. Memasang banyak aplikasi tanpa melihat kebutuhan dapat menyebabkan HP OPPO lemot.
CaraMengatasi Android Memulai Mengoptimalkan Aplikasi; Cara Mengatasi Aplikasi Keluar Sendiri; Cara Jaringan Seluler Tidak Tersedia di HP Android; Akhir Kata. Namun, jika masalah belum selesai dengan cara di atas, Anda ada tiga pilihan lain yaitu: Selanjutnya plugin Android Gradle akan menghapus resource yang tidak digunakan. Untuk informasi selengkapnya tentang penyingkatan kode dan resource, serta cara lain Android Studio membantu Anda mengurangi ukuran APK, lihat Menyusutkan, meng-obfuscate, dan mengoptimalkan aplikasi Anda. PHzMyO. 354 31 182 191 144 145 359 291 28