SlideShare a Scribd company logo
Pentingnya Performa pada
Aplikasi Android
Ahmad Arif Faizin
Google Associate Android Developer, Curriculum Developer Dicoding
#PerfMatters
Report
● User akan uninstall ketika:
○ 36% karena baterai boros
○ 50.6 % karena menghabiskan memori
○ 62 % karena ada crash error
● User akan blame aplikasinya + juga brand company-nya
https://www.dotcominfoway.com/blog/infographic-why-users-uninstall-your-app/#gref
Basic Performance Test
● Test Umum:
Tes oleh diri sendiri dan internal
● User perception :
Tanyakan ke user (early adopter/beta tester) dan tanyakan bagaimana
pendapatnya
● Coba di low-end devices :
Dengan spesifikasi dan RAM paling minimum
● Monkey testing :
Coba dengan random input dan behaviour untuk tahu apakah aplikasi akan
crash
User Expectation
● Loadingnya Cepat
● Animasinya smooth
● Nggak boros baterai
● Lancar nggak ada crash
Frame Rate
60 FPS Rule
1000 ms / 60 frames = 16.666 ms/frame
Nge-lag?
Jika >16 ms
Enable GPU Rendering
1. Settings
2. Developer Options
3. Monitoring
4. Profile GPU Rendering
5. On screen as bars.
6. Buka aplikasi yang ingin
dilihat.
Bagaimana Tahu > 16 ms
Hasil GPU Rendering
● Makin tinggi makin lambat
● Batas 16 ms ada di garis hijau
● Setiap warna merupakan
rendering stages
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Rendering Problem and Solution
Enable GPU Overdraw
1. Settings
2. Developer Options
3. Hardware accelerated rendering
4. Debug GPU Overdraw
5. On screen as bars.
6. Buka aplikasi yang ingin dilihat.
GPU Overdraw Color
● Hapus background yang tidak digunakan.
○ Di ImageView.
○ Di Root Layout
● Flattening View Hierarchy dengan ConstraintLayout
● Pakai Clip custom view.
● Kurangi penggunaan transparansi (alpha rendering) pada view.
● Minimalisir overlap.
Minimize Overdraw
Layout Inspector
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
● Thread Management
● Data Structure
● Algorithm
Tips Computing
Android Profiler
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Stack Memory & Heap Memory
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Garbage Collection (GC)
Memory Leaks
● Unregister broadcast receiver / listener di onStop setelah register di onStart.
● Jangan reference View objects:
○ Dari luar UI thread
○ Di async callbacks
○ Dari static objects
● Jangan alokasikan objek di inner loop
● Jangan alokasikan objek di onDraw
● Gunakan Application Context di Singleton, daripada Activity Context.
● Jangan gunakan inner class di Activity/Fragment.
Avoid Memory Leak
LeakCanary
● Tambah dependency
dependencies {
...
debugImplementation
'com.squareup.leakcanary:leakcanary-
android:2.4'
}
● Jalankan aplikasi, kemudian
keluar ke home dan masuk lagi.
● Jika ada memory leak, akan
muncul notifikasi dan
menganalisis memorinya
LeakCanary Result
● Nama Activity yang leak akan
muncul di atas
● Jika statusnya UNKNOWS, di sini
lah awal mula leak muncul
● Biasanya di akhir point, Leak
Canary akan ngasih solusi di mana
suatu object harus dibersihkan.
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
● Offline-first architecture. Simpan data ke lokal dulu jika memungkinkan.
● Jangan sering-sering sinkron ke server, Gunakan FCM (Firebase Cloud
Messaging untuk kasih tau ke device kalau ada update di server.
● Gunakan Wakelock/Timer seperlunya.
● Gunakan sensor yang dibutuhkan saja.
● Lakukan koneksi yang yang lama hanya ketika terhubung ke Wi-Fi, seperti
download film atau backup foto.
● Jangan langsung eksekusi, jika bisa ditunda.
Battery Best-Practice
Battery Historian
https://www.youtube.com/playlist?list=
PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE
Static Analysis Tool
Contact:
@arif_faizin
THANKS!
Follow us: @dicoding

More Related Content

PPTX
Fundamental android application development
PDF
Petunjuk Penggunaan Tablet Android Advan I7A
ODP
Menguji BlankOn di Awan
PDF
Software testing management
DOCX
Cara membuat simulasi lcd running text dengan menggunakan proteus
DOCX
Tutorial training revisi
PPTX
Review jurnal plc julita 222010006
ODP
Pemanfaatan Teknologi Android
Fundamental android application development
Petunjuk Penggunaan Tablet Android Advan I7A
Menguji BlankOn di Awan
Software testing management
Cara membuat simulasi lcd running text dengan menggunakan proteus
Tutorial training revisi
Review jurnal plc julita 222010006
Pemanfaatan Teknologi Android

Similar to Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android (9)

PDF
Pertemuan_Ke_3_Pengujian_Perangkat_Lunak.pdf
DOCX
Pemrograman Bergerak Diskusi 4.docx
PPTX
02 Activity - Intents - Fragment.pptx
PPT
Redistributable Intro to Scrum
PDF
Pengantar Android
PPTX
PANDUAN CBT 2022.pptx
PPTX
Smart trash can using arduino uno with lab view
PPTX
Smart Trash Can using Arduino Uno with LabVIEW
DOCX
Tutorial Form login menggunakan MVC
Pertemuan_Ke_3_Pengujian_Perangkat_Lunak.pdf
Pemrograman Bergerak Diskusi 4.docx
02 Activity - Intents - Fragment.pptx
Redistributable Intro to Scrum
Pengantar Android
PANDUAN CBT 2022.pptx
Smart trash can using arduino uno with lab view
Smart Trash Can using Arduino Uno with LabVIEW
Tutorial Form login menggunakan MVC
Ad

More from DicodingEvent (20)

PDF
Developer Coaching #114.pdf
PDF
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
PPTX
tantangan menjadi developer di abad 21
PDF
Mengenalkan augmented reality (ar) pada snapchat
PDF
Membangun Aplikasi Serverless di Platfrom AWS
PDF
IDCamp X Madrasah: Pengenalan Computational Thinking
PDF
Membuat Produk Digital Terbaik ala Startup Unicorn
PDF
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
PDF
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
PDF
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
PDF
Potensi karier menjadi ios developer di masa depan
PDF
Id camp x dicoding live : persiapan jadi software engineer hebat 101
PDF
Tips sukses berkarir sebagai developer dan programmer 2021
PPTX
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
PDF
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
PDF
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
PDF
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
PDF
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
PDF
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
PDF
Dicoding Developer Coaching #33: Android | Depedency Injection dengan Dagger,...
Developer Coaching #114.pdf
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
tantangan menjadi developer di abad 21
Mengenalkan augmented reality (ar) pada snapchat
Membangun Aplikasi Serverless di Platfrom AWS
IDCamp X Madrasah: Pengenalan Computational Thinking
Membuat Produk Digital Terbaik ala Startup Unicorn
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Potensi karier menjadi ios developer di masa depan
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Tips sukses berkarir sebagai developer dan programmer 2021
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #33: Android | Depedency Injection dengan Dagger,...
Ad

Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android