Android-Resources
This repository serves as a curated collection of valuable resources related to Android development. It aims to provide developers with a centralized hub to discover and explore informative content on various Android-specific topics, including, internals of android, performance optimization, architectural patterns, testing methodologies, popular libraries and tools, and best practices.
Table of Contents
Internals
Android
- The internals of Android APK build process — Article
- Bytecode analysis for everyone!
- Desugaring in Android
- Dalvik, ART, JIT, and AOT in Android
- Updating Android UI from Worker Threads
Android View
- Android Custom View Level 3 View Life-Cycle
Jetpack Compose
- Understanding Jetpack Compose — part 1
- Understanding Jetpack Compose — part 2
Kotlin
- How to make kotlin compile 2x faster on a super large project?
- Advanced Kotlin Flow Cheat sheet (for Android Engineer)
- inline, noinline, crossinline — What do they mean?
- Exploring the Power of Kotlin Contracts for Better Code Quality
Popular Libraries
Coroutines
- Coroutines Mastery: Tips, Best Practices, and Real-world Insights
ViewModel
- How Android ViewModel works under the hood to survive to configuration change
- How Android ViewModel works under the hood to survive to configuration change - 2
Performance
Video
- Unblocking The Main Thread: Solving ANRs and Frozen Frames
- 🔍 LeakCanary Masterclass with Pierre-Yves Ricau - Unraveling Android Memory Leaks 🐦 #LiveTechT
- Perfetto Your App for Perfect Performance
- Android Performance Patterns
Blog
- Mastering Android App Performance: Analyzing Bottlenecks with Perfetto 🚦
- Weak Soft and Phantom references in Java and why they matter
- Android App Performance In a Nutshell
- Using Java AspectJ tool to profile your Android Application performance
- Top 10 Android Memory Leak Causes
- The real size of Android objects
- How we reduced our ANR by three times
- How I Fell in Kotlin’s RunBlocking Deadlock Trap, and How You Can Avoid It
Baseline Profiles
- Making apps blazing fast with Baseline Profiles
- Make your app faster with Baseline Profiles Perfetto and more - Rahul Ravikumar
- Improve Your Android App Performance With Baseline Profiles
Startup Profiles
Build Tools
- Creating Different Build Variants in Android
Gradle
R8
- What is R8 and how we enabled it
- ProGuard — Everything You Need to Know
Tools
ADB
- What if ADB does not have to be that complicated?
-
[PRACTICAL ADB USAGE TO ENHANCE YOUR LIFE! - Benjamin Kadel Droidcon Italy 2023 Talk](https://youtu.be/KFnqoze9nZc)
Debugging
System Design
- Grokking the Mobile System Design interview
- Mobile System Design Interviews (iOS and Android)
- An App Developer’s Guide to Mobile System Design Interviews
- Mobile System Design Exercise: Image Library
How to Contribute
We welcome contributions from the community! Here are some ways you can contribute:
Reporting Issues
If you encounter any issues or have suggestions for improvements, please open an issue on GitHub. Provide as much detail as possible to help us understand and address the problem.
Suggesting New Resources
If you have come across valuable resources related to Android development that are not included in this repository, feel free to suggest them. You can do this by opening an issue or submitting a pull request with the details of the resource.
Submitting Pull Requests
We encourage you to contribute to this repository by submitting pull requests. Here are the steps to follow:
- Fork the repository.
- Create a new branch for your contribution.
- Make your changes and commit them with clear and descriptive commit messages.
- Push your changes to your forked repository.
- Open a pull request, providing a detailed description of your changes.
Code of Conduct
Please note that we have a code of conduct in place to ensure a welcoming and inclusive environment for all contributors. We expect all contributors to adhere to this code of conduct. You can find the code of conduct here.