ITE 445

Mobile Programming

TU BITM · Semester 7 · BITM curriculum and programme regulation

Requirement
elective
Credits
3
Study Guide
6 units available

Chapter notes

Authoritative study guide across 6 syllabus units

Open a unit to read its study notes.

Unit 1: Android Programming Overview· 5 LHs· ~6 marks

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)

  1. <?xml version=“1.0” encoding=“utf-8”?>
    • <manifest xmlns:android=“http://schemas.android.com/apk/res/android”
  2. 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
  3. android:allowBackup=“true”
  4. android:icon=“@mipmap/ic_launcher”
  5. android:label=“@string/app_name”
  6. android:theme=“@style/Theme.BITMApp”>
    • <!-- Entry Activity -->
    • <activity
  7. android:name=“.MainActivity”
  8. 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 runtime ActivityNotFoundException.