Part 1: Core Concepts (2 Marks)
- Android OS: An open-source, Linux-based mobile operating system developed by Google and the Open Handset Alliance, designed primarily for touchscreen mobile devices.
- Android Runtime (ART) vs. Dalvik: Legacy Dalvik utilized Just-In-Time (JIT) compilation at runtime; ART uses Ahead-Of-Time (AOT) compilation during app installation combined with profile-guided JIT, significantly improving execution velocity and battery life.
- Android App Bundle (AAB): Google’s publishing format that includes all compiled code and resources, deferring APK generation and signing to Google Play to deliver dynamic, device-optimized smaller downloads.
- Cross-Platform Framework: A development framework (e.g., Flutter, React Native) that allows engineers to write a single codebase and deploy native-performing applications across both Android and iOS.
Part 2: Structural Frameworks (10 Marks)
Android 5-Layer Software Architecture Stack
APPLICATIONS LAYER
- (Contacts, Phone, Browser, Custom BITM App)
- ^
- APPLICATION FRAMEWORK LAYER
- Activity Manager, Window Manager, Content Providers
- View System, Notification Manager, Resource Manager
- ^
- NATIVE LIBRARIES (C/C++) | ANDROID RUNTIME (ART)
- OpenGL ES, WebKit, SQLite | - Ahead-Of-Time (AOT) Comp.
- FreeType, Media Framework | - Core Java Class Libraries
- ^
- HARDWARE ABSTRACTION LAYER (HAL)
- (Camera, Bluetooth, Audio, Sensors, Biometrics)
- ^
- LINUX KERNEL LAYER
- (Device Drivers, Memory Management, Process Control)
Part 3: Distinction Tables
| Basis of Comparison | Native Mobile Development (Kotlin/Swift) | Cross-Platform Development (Flutter/Dart) |
|---|---|---|
| Codebase Count | Two separate codebases (Android & iOS) | Single shared codebase |
| Hardware Access | Direct access to all latest OS APIs and sensors | Dependent on community plugins or platform channels |
| Execution Performance | Optimal native performance | Near-native with custom rendering engine (Skia) |
| Development Cost | High (requires separate engineering teams) | Economical; faster time-to-market |
Part 4: Worked Problems & Exam Traps
Core Android Manifest Architecture (AndroidManifest.xml)
- <?xml version=“1.0” encoding=“utf-8”?>
- <manifest xmlns:android=“http://schemas.android.com/apk/res/android”
- package=“np.edu.tu.bitmapp”>
- <!-- Essential Runtime Hardware & Network Permissions -->
- <uses-permission android:name=“android.permission.INTERNET” />
- <uses-permission android:name=“android.permission.ACCESS_FINE_LOCATION” />
- <application
- android:allowBackup=“true”
- android:icon=“@mipmap/ic_launcher”
- android:label=“@string/app_name”
- android:theme=“@style/Theme.BITMApp”>
- <!-- Entry Activity -->
- <activity
- android:name=“.MainActivity”
- android:exported=“true”>
- <intent-filter>
- <action android:name=“android.intent.action.MAIN” />
- <category android:name=“android.intent.category.LAUNCHER” />
- </intent-filter>
- </activity>
- </application>
- </manifest>
TU Exam Trap: Every Android Activity, Service, and Content Provider MUST be declared in
AndroidManifest.xml! Launching an undeclared Activity triggers an immediate runtimeActivityNotFoundException.