ANDROID DEVELOPMENT – INTRODUCTION
• Overview of Android OS:
- Built on Linux kernel
- Open-source (AOSP), maintained by Google
- Market share & ecosystem
• Language Choices:
- Java vs Kotlin (preferred)
- Interoperability, coroutines, null safety
• Android Studio:
- Based on IntelliJ IDEA
- Layout Editor (Design/Text)
- APK Analyzer, Profiler, Emulators
- Plugins and templates
• Build System:
- Gradle: build.gradle (Project vs Module)
- Build variants, flavors, signing configs
- Dependency management (Maven Central, JitPack)
ANDROID ARCHITECTURE LAYERS
1. Linux Kernel:
- Drivers, power management, security
2. HAL (Hardware Abstraction Layer):
- Interfaces for camera, audio, sensors
3. Android Runtime:
- ART (Ahead-of-Time compilation)
- Dalvik (legacy, JIT)
4. Framework & Libraries:
- View system, Resource Manager, Notification Manager
- SQLite, WebKit, OpenGL
5. Application Layer:
- Pre-installed apps, third-party apps
PROJECT STRUCTURE & RESOURCES
• Manifest (AndroidManifest.xml):
- Application components, permissions, metadata
• Java/Kotlin Source:
- src/main/java or src/main/kotlin
• Resources:
- res/layout, res/drawable, res/values (strings, styles)
- resource qualifiers: hdpi, xlarge, night mode
• Gradle Scripts:
- build.gradle (module): configurations, plugins
- settings.gradle: module inclusion
APK vs AAB
• APK (Android Package):
- Single-file installable package
- Larger size, less optimized for device
• AAB (Android App Bundle):
- Contains multiple configurations
- Google Play generates optimized APK per device
- Benefits: smaller downloads, on-demand features
KEY TAKEAWAYS
• Kotlin is now the first-class language
• Android Studio’s profilers help optimize performance
• Understanding build variants improves release workflows