RemNote Community
Community

Study Guide

📖 Core Concepts Android OS – Linux‑kernel–based, open‑source (AOSP) but most devices ship proprietary Google Mobile Services (GMS). AOSP vs. GMS – AOSP = core code released under Apache‑2.0; GMS = closed services (Play Store, Play Services) licensed separately. Runtime – ART (ahead‑of‑time) compiles app bytecode to native code at install; replaces Dalvik (JIT) from Android 5.0. Scoped Storage – From Android 11 apps only see their own app‑specific dirs plus shared media collections; protects user data. Project Treble – Stable vendor interface separates low‑level hardware code from Android framework, enabling faster OS upgrades. Project Mainline – Core OS components are delivered as Play Store “modules,” allowing security/performance updates without full OTA. Verified Boot & dm‑verity – Chain‑of‑trust checks bootloader, kernel, system partitions; dm‑verity verifies read‑only blocks at runtime. Permission Model – Runtime permissions (Android 6.0) let users grant/deny dangerous permissions per‑app, improving privacy. --- 📌 Must Remember APK = Android application package (the only installable file type). Primary dev languages: Kotlin (preferred 2019) → Java → C/C++ (NDK). Storage types: Portable (SD card), Adoptable (merged with internal, Android 6.0), Scoped (Android 11+). Update cadence: Major release yearly; monthly security patches (since 2015 for Nexus, 2020 for all devices). Treble introduced: Android 8.0 (Oreo). Mainline introduced: Android 10. Split‑screen support: Native from Android 7.0 (Nougat). Verified Boot blocks rollback to older OS versions. --- 🔄 Key Processes Enabling Developer Options Settings → About phone → tap Build number 7× → “Developer options” appears. Unlocking Bootloader (for rooting/custom ROM) Enable OEM unlocking → reboot to fastboot → fastboot oem unlock (data erased). Scoped Storage Access Use MediaStore APIs for shared media. Use Storage Access Framework (SAF) (ACTIONOPENDOCUMENT) for user‑selected files. Project Treble update flow OEM updates vendor HAL → Android framework updated independently → OTA delivered faster. Mainline module update Google Play Services downloads updated APEX/Native modules → system applies on next reboot. --- 🔍 Key Comparisons Kotlin vs. Java – Kotlin: concise syntax, null‑safety, coroutine support; Java: legacy, more verbose. Dalvik vs. ART – Dalvik: JIT, slower start‑up; ART: AOT compile at install, better performance & battery. Portable vs. Adoptable Storage – Portable: removable, separate file system; Adoptable: encrypted, merged, unavailable to other devices. Project Treble vs. Pre‑Treble – Treble: stable vendor interface, modular updates; Pre‑Treble: monolithic codebase, each OS bump required vendor code changes. Scoped Storage vs. Legacy Storage – Scoped: app‑only view + media collections, tighter privacy; Legacy: free access to entire external storage (deprecated). --- ⚠️ Common Misunderstandings “Rooting always improves performance.” – Root can break verified boot, open security holes, and often degrades stability. “All Android devices get monthly security patches.” – Patches may be delayed or omitted by OEMs/carriers; only Google‑certified devices guarantee them. “APK files are always safe.” – Side‑loaded APKs bypass Play Protect; must verify signatures. “Project Treble eliminates fragmentation.” – It eases OS upgrades but hardware diversity still causes version spread. --- 🧠 Mental Models / Intuition Layered Onion Model – Kernel → HAL (vendor) → Android Framework → Runtime (ART) → Apps. Each layer talks only to the one beneath it; Treble locks the HAL, Mainline locks core framework modules. Permission “Gate” – Think of each dangerous permission as a door; runtime prompts are the guard that decides if the door opens. Scoped Storage “Sandbox” – Apps live in their own house; they can only peek into the shared park (MediaStore) or ask the neighbor (SAF) for a key. --- 🚩 Exceptions & Edge Cases Adoptable storage may be unavailable on low‑end devices or when the OEM disables the feature. OEM‑specific custom ROMs can bypass Mainline but lose Google certification. Verified Boot can be disabled on unlocked devices, but the device then shows a “bootloader unlocked” warning. Legacy apps targeting < Android 10 may request READEXTERNALSTORAGE to bypass Scoped Storage; Google may restrict this in future releases. --- 📍 When to Use Which Choose Kotlin for new projects – less boilerplate, official support. Use NDK only for performance‑critical code (e.g., game physics) or when reusing existing C/C++ libraries. Pick SAF when you need user‑chosen files across storage locations; use MediaStore for standard media (photos, videos). Target API level 33+ (latest) for Play Store compliance, but set minSdkVersion to the lowest Android version you must support for market reach. Enable split‑screen UI patterns only on Android 7.0+ devices; check android:resizeableActivity="true" in manifest. --- 👀 Patterns to Recognize “Permission‑prompt → user denial → fallback UI” – always code graceful degradation. “Vendor HAL → APEX module” – when a crash trace mentions an APEX file, it’s a Mainline component. “App not responding (ANR)” → long main‑thread work; move to AsyncTask, Coroutine, or background service. “Security patch level older than OS version” → device likely missed recent OTA; consider custom ROM or upgrade path. --- 🗂️ Exam Traps “All Android devices receive Google Play Services updates independently of OS.” – True for certified devices; uncertified or heavily forked ROMs may not. “Project Treble removes the need for vendor drivers.” – Incorrect; it only separates them from the framework, drivers still required. “Scoped storage eliminates need for any storage permissions.” – Wrong; apps still need READEXTERNALSTORAGE/WRITEEXTERNALSTORAGE for legacy access or specific media collections. “Android 10 ended dessert names, so version numbers are the only identifiers.” – True for Google releases, but OEMs may still use internal code names (e.g., “Redfin”). “Rooting is required to install apps from the Play Store.” – False; Play Store works on stock, non‑rooted devices. ---
or

Or, immediately create your own study flashcards:

Upload a PDF.
Master Study Materials.
Start learning in seconds
Drop your PDFs here or
or