awesome-android-performance
This is a list of awesome Android tutorials, videos and tools for performance optimization
##View ####Google Official Videos
- Double Layout Taxation Android Performance Patterns Season 3 ep8 - fix layout problems ####Others
- Infamous ViewHolder Pattern - ViewHolder pattern in ListView
- View Reduction - use Compound Drawables to increase performance
- Improving Comment Rendering on Android - Instagram's post on TextView Performance
- Custom ViewGroups - a Facebook Engineer's artcile on Custom ViewGroup to increase performance
##WebView
- Why Use Crosswalk? - use crosswalk for better performance, especiallly for android version below4.4
- Enhance webView performance - disable the WebView cache to make WebView much faster.
####Tools
- crosswalk-cordova-android — An app runtime based on Chromium/Blink.
##Graphics
- Android 3.0 Hardware Acceleration
- Debug Overdraw - debug overdraw
- Android Performance Case Study - Debug Performance use
gfxinfo
systrace andshow GPU Overdraw
HierarchyViewer
OpenGL traces
- Android Performance Case Study Follow-up - Use
OpenGL traces
and UUI problems caused by transparency - Hardware Acceleration
- Optimizing Hardware Layers
- Graphics Performance - Podcasts on Android Performance
- Hardware Acceleration Animation - Using hardware layers to improve Android animation performance,
####Tools
- Analyzing UI Performance with Systrace
- Optimizing Your UI - HierarchyViewer Usage
- Introduction to Systrace
##Bitmaps
- Loading Large Bitmaps Efficiently
- Bitmap quality, banding and dithering
- Android: bitmaps, textures and pre-multiplied pixels
- Testing Display Performance
##Memory ####Google official videos
- Memory Performance 101
- Android Performance Patterns: Tool - Memory Monitor - introducing Memory monitor and Memory heap tool
- Android Performance Patterns: Performance Cost of Memory Leaks - on memory leaks
- Garbage Collection in Android
- Memory Churn and Performance
- Avoiding Allocations in onDraw
- Android内存优化之OOM
####others
- Investigating Your RAM Usage
- The truth about Preventative Optimizations - You can find some useful things from the links.
- A small leak will sink a great ship
- LeakCanary A memory leak detection library for Android and Java.
- Android内存泄露案例分析
- Tips for Optimizing Android Application Memory Usage - Tips
- Android memory and performance optimization - Tutorial
- Building Memory-efficient Java Applications
- How to Leak a Context: Handlers & Inner Classes
- Improving Facebook's performance on Android with FlatBuffers
####Tools for improving memory performnace
- YourKit - Performance and Memory Java Profile
- MAT - Memory Analysis tool for Java
- Allocation Tracker
##Concurrency
- The Zen of IntentService. (Android Performance Patterns Season 5 ep7) - Talked about IntentServices, AsyncTasks, HandlerThread in the background thread.
##Battery
- Optimizing Battery Life - Android's official tutorial for Battery Optimization
##Others
- SMP Primer for Android
- JNI ###Network ######Google Official
- Optimizing Network Request Frequencies (Android Performance Patterns Season 4 ep2) Android Developers - push instead pull data, sync policies and so on.
- Serialization performance (Android Performance Patterns Season 4 ep14) - use Protobuffers and FlatBuffer to improve seiralization performance
- Effective Network Batching (Android Performance Patterns Season 3 ep10) ######Others
- Better Compression = Faster Networking - Colt McAnlis' talk from SF Android
- Improving UX through performance - using okhttp, Fresco,or ToFu to improve network performance ###Network Profiling Tools
- ARO - Use this free diagnostic tool to improve your app's battery life, data usage, and responsiveness
- Network Monitor in Android Studio
#Article Videos Tools and others that cover multiple topics ##Performance Test
##Articles
- Performance Tuning On Android - Venmo's experience on UI performance optimization
- Best Practices for Performance - Android Official Training on Performance
- Developing for Android - Chet Haase's series,including Memory,Storage, UI Performance
- Detect and Resolve Performance Problems on Android - Use multiple ways to detect and fix Android Performance Problems
- Performance Tips - Android's Official Perf tips
- Facebook Engineering blogs tagged android - Including many articles on performance
#Tools
- Developing for Android IXTools
- Performance Profiling Tools - Performance Tools
- StrictMode - Debug Util Class for etection for Storage, Memory and others.
- Probe - Android performance instrumentation tool, comparing application vital signs (CPU usage, memory utilization, number of threads, disk usage, etc.) across app versions, detecting performace regressions.
##Videos
- Android Performance Patterns - Google's official Video about Android Performance
- Android Performance - Udacity's Video Series
- UI Performance - Optimizing and Profiling UI Performance
##Codes
- udacity render example
- leakcanary - leakcanary source codes
##People you should follow(their work contribute to almost all of this list)
- Colt McAnlis - Instructor of the Video at Udacity and Youtube
- Chet Haase - Author of the Developing for Android series
- Romain Guy - former developer of android ui framework team
- 胡凯 - 翻译了包括Google官方视频的许多andorid性能优化的资料