Aplikasi Android berperan penting dalam mengubah penampilan komputasi modern di layar lebar. Meskipun demikian, hanya menjalankan aplikasi seluler di Chromebook saja tidak akan memberikan pengalaman terbaik bagi pengguna. Halaman ini menjelaskan beberapa cara yang dapat Anda lakukan untuk menyesuaikan pengalaman aplikasi Anda dengan perangkat laptop dan perangkat berfaktor bentuk konvertibel. Lihat daftar lengkap pengujian untuk mempelajari lebih lanjut cara menguji kompatibilitas aplikasi di perangkat ini. Memanfaatkan dukungan untuk multi-jendela dengan format bebas Implementasi aplikasi Android di Chrome OS meliputi dukungan multi-jendela dasar. Alih-alih selalu menggunakan layar penuh, Android merender aplikasi di Chrome OS ke dalam penampung jendela dengan format bebas yang lebih sesuai untuk perangkat ini. Pengguna dapat mengubah ukuran jendela yang berisi aplikasi Android Anda, seperti yang ditunjukkan pada gambar 1. Untuk memastikan jendela dengan format bebas tersebut diubah ukurannya secara halus dan dapat menampilkan seluruh kontennya kepada pengguna, baca panduan di Pengelolaan Jendela. Gambar 1. Jendela aplikasi yang dapat diubah ukurannya Anda dapat meningkatkan pengalaman pengguna saat aplikasi berjalan di Chrome OS dengan mengikuti praktik terbaik berikut Tangani siklus proses aktivitas dengan benar dalam mode multi-jendela dan pastikan Anda terus mengupdate UI meskipun aplikasi Anda bukan jendela yang paling fokus. Pastikan bahwa aplikasi Anda menyesuaikan tata letaknya dengan tepat setiap kali pengguna mengubah ukuran jendela. Sesuaikan dimensi awal jendela aplikasi dengan menentukan ukuran peluncurannya. Orientasi aktivitas root aplikasi memengaruhi semua jendelanya. Perhatikan aturan aktivitas root. Untuk informasi selengkapnya, baca tentang pengelolaan jendela. Menyesuaikan warna kolom atas Chrome OS menggunakan tema aplikasi untuk mewarnai kolom atas yang ditampilkan di bagian atas aplikasi, yang muncul saat pengguna menahan kontrol jendela dan tombol kembali. Untuk membuat aplikasi tampak menarik dan dapat disesuaikan untuk Chrome OS, tentukan nilai colorPrimary dan colorPrimaryDark jika memungkinkan di tema aplikasi Anda. Nilai yang terakhir digunakan untuk mewarnai kolom atas. Jika hanya colorPrimary yang ditentukan, Chrome OS akan menggunakan versi yang lebih gelap di kolom atas. Untuk mengetahui informasi selengkapnya, lihat Menggunakan tema material. Mendukung keyboard, trackpad, dan mouse Semua Chromebook memiliki keyboard fisik dan trackpad, dan sebagian juga memiliki layar sentuh. Beberapa perangkat bahkan bisa berubah dari laptop menjadi tablet. Semua aplikasi untuk Chrome OS harus mendukung mouse, trackpad, dan keyboard, serta dapat digunakan tanpa layar sentuh. Banyak aplikasi yang sudah mendukung mouse dan trackpad tanpa memerlukan pekerjaan tambahan. Namun, sebaiknya sesuaikan perilaku aplikasi untuk mouse dengan tepat, dan Anda harus mendukung serta membedakan antara input mouse dan sentuhan. Baca dukungan mouse lebih lanjut pada Kompatibilitas input untuk Chromebook. Anda harus memastikan bahwa Semua target dapat diklik dengan mouse Semua permukaan sentuh yang dapat di-scroll akan melakukan scroll setiap kali roda mouse digulir. Perilaku saat kursor diarahkan diimplementasikan dengan tujuan dan pertimbangan terbaik guna meningkatkan visibilitas UI tanpa membingungkan pengguna. Gambar 2. Men-scroll dengan roda mouse Gambar 3. Perilaku saat kursor diarahkan pada tombol Jika perlu, Anda harus membedakan antara input mouse dan sentuh. Misalnya, menekan lama item dapat memicu UI multi-pilihan, sementara mengklik kanan item yang sama dapat memicu menu opsi. Kursor khusus Aplikasi harus menyesuaikan kursor mouse untuk menunjukkan elemen UI apa yang dapat digunakan dan bagaimana caranya. Anda dapat menetapkan PointerIcon agar digunakan saat pengguna berinteraksi dengan tampilan dengan memanggil metode setPointerIcon. Aplikasi akan menampilkan Pointer I-beam untuk teks. Tuas pengubah ukuran pada tepi lapisan yang dapat diubah. Kursor tangan terbuka/tangan tertutup untuk konten yang dapat digeser atau ditarik melalui gestur klik dan tarik. Indikator lingkaran berputar saat sedang memproses. Class PointerIcon memberikan konstanta yang dapat Anda gunakan untuk mengimplementasikan kursor kustom. Pintasan keyboard dan navigasi Karena setiap Chromebook memiliki keyboard fisik, Anda harus menyediakan tombol cepat hotkey untuk memungkinkan pengguna menjadi lebih produktif. Misalnya, jika aplikasi mendukung pencetakan, Anda bisa menggunakan Control + P untuk membuka dialog cetak. Demikian pula, semua elemen UI yang penting juga harus ditangani oleh navigasi tab. Hal ini sangat penting untuk aksesibilitas. Namun, untuk memenuhi standar aksesibilitas, semua permukaan UI harus memiliki status yang jelas dan berfokus pada kepatuhan aksesibilitas. Gambar 4. Penggunaan tombol Tab secara transversal Gambar 5. Mengganti gestur geser dengan kontrol yang muncul saat kursor diarahkan Anda juga harus memastikan untuk mengimplementasikan alternatif keyboard atau mouse ke fitur inti yang tersembunyi di bawah interaksi khusus sentuhan, seperti menekan lama, menggeser, atau gestur multi-sentuh lainnya. Contoh solusinya adalah dengan menyediakan tombol yang muncul di permukaan saat kursor diarahkan. Meningkatkan input pengguna lebih lanjut Agar mencapai fungsi tingkat desktop untuk aplikasi Anda, pertimbangkan input tambahan berikut ini yang berorientasi pada produktivitas. Gambar 6. Menu konteks yang muncul pada klik kanan Menu konteks Android, yaitu akselerator lain untuk mengarahkan pengguna ke fitur aplikasi Anda, dapat dipicu dengan mengklik tombol sekunder mouse atau trackpad, atau melalui tekan lama pada layar sentuh. Tarik lalu lepas Gambar 7. Tarik lalu lepas pada antarmuka hierarki file Membuat interaksi tarik lalu lepas dapat menghadirkan fungsi produktivitas yang efisien dan intuitif ke aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat Tarik lalu lepas. Dukungan stilus Dukungan stilus sangat penting untuk aplikasi menggambar dan mencatat. Berikan dukungan yang ditingkatkan untuk Chromebook dan tablet yang dilengkapi stilus dengan menerapkan interaksi yang disesuaikan untuk penggunaan input stilus. Pertimbangkan potensi variasi hardware stilus yang berbeda saat merancang interaksi stilus Anda. Untuk mengetahui uraian API stilus, lihat Kompatibilitas input untuk Chromebook. Menjadikan tata letak Anda responsif Gambar 8. Model tata letak responsif di layar ponsel dan ukuran desktop Aplikasi Anda harus memanfaatkan luas layar yang tersedia, terlepas dari status visualnya layar penuh, potret, lanskap, jendela. Beberapa contoh penggunaan ruang yang baik meliputi, tetapi tidak terbatas pada Menampilkan arsitektur aplikasi. Membatasi panjang teks dan ukuran gambar hingga lebar maksimum. Memanfaatkan ruang layar dengan optimal di toolbar aplikasi. Meningkatkan penempatan atribut UI, dengan mengadaptasinya ke penggunaan mouse, bukan penggunaan sentuh. Mengoptimalkan ukuran layar untuk video dan gambar, menetapkan set tinggi dan lebar maksimum untuk semua media, serta memaksimalkan keterbacaan dan keterpindaian. Menerapkan sistem kolom responsif. Untuk mengetahui informasi selengkapnya, lihat UI Responsif. Mengubah ukuran dan memodifikasi UI saat diperlukan menggunakan sistem kolom, dan menghindari pembukaan jendela baru jika memungkinkan. Menghapus atau mengurangi kepentingan komponen scroll horizontal. Menghindari UI modal layar penuh. Gunakan UI inline, seperti indikator progres dan pemberitahuan, untuk semua tindakan yang tidak penting Menggunakan komponen UI yang disempurnakan, seperti alat pilih waktu dan tanggal, kolom teks, serta menu drop-down, yang dirancang untuk mouse, keyboard, dan layar yang lebih besar. Menggunakan edit langsung, seperti kolom tambahan atau UI modal, daripada aktivitas baru untuk fitur edit kecil dan menengah. Menghapus atau memodifikasi tombol tindakan mengambang FAB untuk navigasi keyboard yang lebih baik. Secara default, FAB diposisikan terakhir dalam urutan penggunaan tombol Tab transversal. Ini harus dilakukan terlebih dahulu karena merupakan tindakan utama atau harus diganti oleh atribut lain dengan tingkat yang lebih tinggi. Mengubah pola navigasi Seiring aplikasi semakin disesuaikan untuk lingkungan laptop, pertimbangkan untuk beralih ke pola navigasi yang tidak mengutamakan tombol kembali. Aplikasi harus dapat menangani tumpukan historinya sendiri dengan menyediakan tombol kembali dalam aplikasi, breadcrumb, atau rute keluar lainnya seperti tombol tutup atau batalkan sebagai bagian dari UI layar yang besar. Tombol kembali level sistem adalah pola yang dibawa dari root perangkat Android, yang tidak cocok seperti dalam konteks desktop. Anda dapat mengontrol apakah aplikasi menampilkan tombol kembali di jendelanya atau tidak dengan menyetel preferensi di dalam tag . Setelan true akan menyembunyikan tombol kembali Menyelesaikan masalah dengan gambar pratinjau kamera Masalah kamera dapat muncul jika aplikasi hanya dapat berjalan dalam orientasi potret, tetapi pengguna menjalankannya di layar lanskap. Dalam hal ini, pratinjau, atau hasil yang diambil, bisa salah dirotasi. Mode kompatibilitas mengubah cara sistem menangani peristiwa, seperti perubahan orientasi, di Chrome OS. Ini membantu mencegah masalah saat kamera digunakan dalam mode orientasi yang salah. Untuk mengaktifkan mode kompatibilitas Targetkan minimal Android API level 24. Anda masih bisa memilih tingkat SDK minimum yang lebih rendah. Izinkan ukuran aplikasi dapat diubah. Menangani setelan perangkat Ubah volume Perangkat Chrome OS adalah perangkat dengan volume tetap. Aplikasi yang memutar suara harus memiliki kontrol volumenya sendiri. Ikuti panduan untuk Menangani perangkat volume tetap. Mengubah kecerahan layar Anda tidak dapat menyesuaikan kecerahan perangkat di Chrome OS. Panggilan ke system settings dan akan diabaikan. Materi belajar tambahan Guna mempelajari lebih lanjut cara mengoptimalkan aplikasi Android untuk Chromebook, lihat referensi berikut Baca postingan Membawa Aplikasi Android Anda ke Chromebook di Blog Developer Android. Tonton sesi Aplikasi Android untuk Chromebook dan Perangkat Berlayar Besar dari Google I/O 2017.
SpeedBooster menjadi salah satu aplikasi game booster Android yang bisa Anda manfaatkan untuk mengoptimalkan kinerja smartphone Android Anda. Tidak hanya meningkatkan performa saat bermain game, aplikasi ini juga bisa mempercepat kecepatan saat browsing, serta membersihkan cache dan menghapus file sampah. 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 Lalulakukan optimalisasi RAM Android dengan menghapus aplikasi-aplikasi "sampah" tersebut. Selain melegakan RAM, media penyimpanan ponsel juga akan lebih lega pula. Ok, itu tadi beberapa cara mengoptimalkan RAM Android yang bisa kita lakukan supaya Android kita berjalan lebih cepat. Jika masih lambat juga, ya silahkan coba memakaiAdasolusi yang jauh lebih sederhana yang akan memakan waktu satu menit. Di konsol google play, pilih Manajemen rilis-> Penandatanganan aplikasi; Pilih opsi pertama, yang dengan Hasilkan kunci pribadi terenkripsi dengan Android Studio (atau sesuatu seperti itu; saya tidak dapat kembali untuk melihat halaman itu lagi)
Singkatnya cara Menghapus Aplikasi Bawaan Oppo adalah sebagai berikut: Buka aplikasi Pengaturan di ponsel Android Anda dan masukkan "Aplikasi". Gulir ke bawah ke bagian bawah daftar dan pilih "hapus aplikasi". Pilih aplikasi yang ingin Anda hapus dan klik Hapus. Namun tentu saja tetap ada langkah-langkah yang harus dilakukan agardqo9oo.