The definitive guide to Android library development
summary
Explains why Android libraries are harder than they should be and gives concrete fixes: publish AAR + BOM to Maven, use the fat AAR plugin or publish submodules separately, run the Gradle dependencies task to find version clashes, handle okhttp version skew and protobuf java vs java‑lite collisions by excluding or repackaging, ship consumer ProGuard rules and a public.xml, enforce API stability with the binary compatibility plugin and API dumps, prefer small public surfaces and test the published artifact end‑to‑end.
AI-written summary · about
chapters (32)
- 0:00Start
- 2:36ANDROID LIBRARIES
- 3:34ANDROID STUDIO PROJECT
- 4:23RUN & TEST
- 7:07DISTRIBUTE - STEPS
- 8:17EXTERNAL DEPENDENCIES
- 11:19LIBRARY MODULARIZATION
- 12:03TEST SETUP
- 12:24LIBRARY SUBMODULE TEST
- 13:38RELEASE SUBMODULES TO MAVEN
- 14:48FAT AAR
- 16:32KOTLIN VISIBILITY MODIFIERS
- 17:56INTERNAL PACKAGE
- 18:14OBFUSCATE NON-PUBLIC CLASSES
- 19:14SINGLE MODULE SDK
- 19:27MODULARIZATION RECOMMENDATION
- 20:34TRANSITIVE DEPENDENCY CONFLICTS
- 21:09CONFLICTING DEPENDENCY VERSIONS
- 22:55CONFLICT RESOLUTION
- 23:15FORCE DEPENDENCY IN CUSTOMERAPP
- 24:57CASE STUDY: BREAKING API CHANGES
- 25:44INCOMPATIBLE TRANSITIVE DEPENDENCIES
- 26:58INCOMPATIBILITY RESOLUTION
- 28:36TRANSITIVE DEPENDENCY RECOMMENDATION
- 30:23INVESTIGATE DEPENDENCY CONFLICTS
- 32:052. LIBRARY RESOURCES - UNIQUE NAME
- 35:093. COMPATIBILITY: GRADLE PLUGIN
- 35:47MINIMIZING API SURFACE
- 37:29EXPERIMENTAL APIS
- 38:34DEPRECATION-REPLACE
- 39:05DEPRECATION - HIDE
- 39:30PROGUARD
related talks
39mThe definitive guide to Android library development
44mBuilding and Publishing Android Libraries the Missing Guide
26mArchitecting Your Android Library
37mAndroid Librarian's Guide: Building Robust Libraries a…
32mWriting Android Libraries
43mLibrary Developer Confidential
40mModularizing Android Applications
34mSuccessfully publishing a tested, upgradeable and documented Open Source Library
