Topic 1: Introduction
Introduction to Mobile Computing & Android Development Environment
• Mobile Computing: Study of mobile devices, wireless networks, and portable applications.
• Android Development Environment: Tools and setup required to develop Android apps,
including Android Studio, SDK, emulators, and basic programming languages like Java or Kotlin.
Topic 2: Factors in Developing Mobile Applications
• Mobile Software Engineering: Principles of designing, developing, testing, and maintaining
mobile apps.
• Frameworks and Tools: Use of Android SDK, IDEs, libraries, and third-party tools.
• Generic UI Development: Designing user interfaces that adapt to various screen sizes and
orientations.
• Android User: Understanding user behavior, UX principles, and accessibility considerations.
Topic 3: Intents and Services
• Android Intents: Mechanism to facilitate communication between components (activities,
services, broadcast receivers).
• Services: Background components that perform long-running operations without UI (e.g., music
playback, network access).
• Characteristics of Mobile Applications: Considerations like resource constraints, connectivity
variability, and user context.
• Successful Mobile Development: Best practices, user engagement, performance optimization.
Topic 4: Storing and Retrieving Data
• Synchronization and Replication: Ensuring data consistency between device and server.
• Getting the Model Right: Designing effective data models for mobile apps.
• Android Data Storage: Using SQLite databases, SharedPreferences, files.
• Content Providers: Abstraction layer for data sharing between apps and system resources.
Topic 5: Communications Via Network and the Web
• State Machine & Correct Communication Model: Managing connection states, retries, and
error handling.
• Android Networking and Web: Using APIs like HTTP, REST, WebSocket; libraries like Retrofit or
Volley for network operations.
Topic 6: Telephony
• Deciding Scope of an App: Determining whether telephony features are necessary.
• Wireless Connectivity & Mobile Apps: Utilizing Wi-Fi, 3G/4G/5G, Bluetooth, NFC.
• Android Telephony: Accessing telephony features such as calls, SMS, device info, and managing
permissions.
Putting It All Together
• Packaging and Deploying: Building APKs, app signing, distribution via Google Play Store.
• Performance Best Practices: Optimizing battery, memory, and responsiveness.
• Android Field Service App: Example application demonstrating real-world use.
Security and Hacking
• Active Transactions: Securing data transmission (SSL/TLS).
• More on Security & Hacking Android: Protecting against threats, securing data, preventing
unauthorized access.
• Hacking Android Platforms: Common vulnerabilities, penetration testing, ethical hacking
techniques.
Platforms and Additional Issues
• Development Process: Planning, designing, coding, testing, deploying.
• Architecture & Design: Modular, scalable, and maintainable app architecture.
• Technology Selection: Choosing appropriate tools, libraries, and frameworks.
• Development Hurdles & Testing: Dealing with device fragmentation, testing on multiple
devices, debugging.
Sample MCQs on Mobile Computing and Android Development
1. Which of the following is the primary programming language used for Android app development?
a) Swift
b) Java
c) Kotlin
d) Both b and c
Answer: d) Both b and c
2. What is the purpose of an Intent in Android?
a) To start a new activity or communicate between components
b) To store data persistently
c) To handle user interface layout
d) To manage network connections
Answer: a) To start a new activity or communicate between components
3. Which tool is primarily used for Android app development?
a) Xcode
b) Visual Studio
c) Android Studio
d) Eclipse
Answer: c) Android Studio
4. Which component runs in the background without a user interface?
a) Activity
b) Service
c) Fragment
d) Broadcast Receiver
Answer: b) Service
5. Which of the following is a common data storage option in Android?
a) SharedPreferences
b) SQLite Database
c) Files
d) All of the above
Answer: d) All of the above
6. What does the Content Provider in Android do?
a) Manages the UI layout
b) Facilitates data sharing between applications
c) Handles network requests
d) Manages background tasks
Answer: b) Facilitates data sharing between applications
7. Which API is commonly used for network operations in Android?
a) WebView
b) Retrofit
c) MediaPlayer
d) SensorManager
Answer: b) Retrofit
8. The Android permission required to read SMS messages is:
a) ACCESS_FINE_LOCATION
b) RECEIVE_SMS
c) READ_CONTACTS
d) INTERNET
Answer: b) RECEIVE_SMS
9. Which component is responsible for handling user interactions in Android?
a) Service
b) Activity
c) Broadcast Receiver
d) Content Provider
Answer: b) Activity
10. Which protocol is most commonly used for secure web communication?
a) HTTP
b) HTTPS
c) FTP
d) SMTP
Answer: b) HTTPS
11. What is the main purpose of the AndroidManifest.xml file?
a) To define app permissions and components
b) To layout the UI elements
c) To store user data
d) To handle network connections
Answer: a) To define app permissions and components
12. Which Android component is best suited for long-running background tasks?
a) Activity
b) Service
c) Fragment
d) Broadcast Receiver
Answer: b) Service
13. Which of the following is NOT a valid Android UI layout?
a) LinearLayout
b) RelativeLayout
c) FrameLayout
d) WindowLayout
Answer: d) WindowLayout
14. What is the purpose of the 'onCreate()' method in an Activity?
a) To initialize the activity when it is first created
b) To handle user clicks
c) To pause the activity
d) To destroy the activity
Answer: a) To initialize the activity when it is first created
15. Which class is used to make HTTP requests in Android?
a) HttpUrlConnection
b) HttpClient
c) OkHttpClient
d) Both a and c
Answer: d) Both a and c
16. In Android, which component can receive broadcast messages from the system or other apps?
a) Service
b) Broadcast Receiver
c) Fragment
d) Content Provider
Answer: b) Broadcast Receiver
17. Which storage method is ideal for storing small amounts of key-value data?
a) SQLite database
b) SharedPreferences
c) Files
d) External Storage
Answer: b) SharedPreferences
18. What is the main benefit of using Kotlin for Android development?
a) Faster execution speed
b) Concise and expressive syntax
c) Better hardware access
d) None of the above
Answer: b) Concise and expressive syntax
19. Which component is responsible for handling user interface and user interaction?
a) Activity
b) Service
c) Broadcast Receiver
d) Content Provider
Answer: a) Activity
20. Which of the following is NOT a typical feature of mobile applications?
a) Offline capabilities
b) High resource consumption
c) Context-aware interactions
d) Small screen UI adaptation
Answer: b) High resource consumption
21. Which network protocol is primarily used for real-time communication in Android apps?
a) FTP
b) WebSocket
c) SMTP
d) DNS
Answer: b) WebSocket
22. To optimize app performance, developers should:
a) Avoid multithreading
b) Use efficient data structures and algorithms
c) Maximize memory usage
d) Use high-resolution images without compression
Answer: b) Use efficient data structures and algorithms
23. Which Android component is best suited for handling system-wide broadcast messages like device
boot?
a) Activity
b) Broadcast Receiver
c) Service
d) Fragment
Answer: b) Broadcast Receiver
24. Which of these is a best practice for Android app security?
a) Storing passwords in plain text
b) Using HTTPS for network communication
c) Disabling app permissions
d) Avoiding data encryption
Answer: b) Using HTTPS for network communication
25. Which framework is used for building reactive UI in Android?
a) RxJava
b) Dagger
c) Retrofit
d) Room
Answer: a) RxJava
26. The process of converting an Android app into a package file is called:
a) Compilation
b) Packaging
c) Deployment
d) Deployment and signing
Answer: d) Deployment and signing
27. Which permission is required to access the device camera?
a) CAMERA
b) RECORD_AUDIO
c) READ_CONTACTS
d) ACCESS_FINE_LOCATION
Answer: a) CAMERA
28. Which class is used to display web content in Android?
a) WebView
b) WebClient
c) WebPage
d) BrowserView
Answer: a) WebView
29. Which type of storage is suitable for large files or media?
a) Internal storage
b) External storage
c) SharedPreferences
d) SQLite
Answer: b) External storage
30. What is the main purpose of the onResume() lifecycle method?
a) To initialize components when activity starts
b) To handle activity becoming visible again after pause
c) To save persistent data
d) To destroy the activity
Answer: b) To handle activity becoming visible again after pause
31. Which component is responsible for displaying a list of items in Android?
a) ListView or RecyclerView
b) Button
c) TextView
d) ImageView
Answer: a) ListView or RecyclerView
32. Which architecture pattern is recommended for Android app development?
a) MVC
b) MVVM
c) MVP
d) All of the above
Answer: d) All of the above
33. Which Android feature allows apps to access device hardware like GPS, camera, or sensors?
a) Permissions
b) Hardware Abstraction Layer (HAL)
c) Content Providers
d) Services
Answer: b) Hardware Abstraction Layer (HAL)
34. Android's 'Gradle' is used for:
a) Building and managing dependencies
b) Managing user permissions
c) Designing UI layouts
d) Handling network requests
Answer: a) Building and managing dependencies
35. Which of these is a common method for improving app performance?
a) Lazy loading resources
b) Avoiding background threads
c) Keeping the app always active
d) Reducing app size to minimum
Answer: a) Lazy loading resources
36. Which component is used to perform background tasks that require network access?
a) AsyncTask (deprecated, use alternatives like WorkManager)
b) Service
c) Broadcast Receiver
d) Fragment
Answer: b) Service
37. Which Android version introduced Kotlin as an officially supported language?
a) Android 4.4 (KitKat)
b) Android 5.0 (Lollipop)
c) Android 7.0 (Nougat)
d) Android 3.0 (Honeycomb)
Answer: c) Android 7.0 (Nougat)
38. Which method is called when an activity is destroyed?
a) onStop()
b) onDestroy()
c) onPause()
d) onFinish()
Answer: b) onDestroy()
39. Which layout arranges UI components in a vertical or horizontal sequence?
a) RelativeLayout
b) LinearLayout
c) ConstraintLayout
d) FrameLayout
Answer: b) LinearLayout
40. Which Android component is used for handling a background task that can continue even if the user
switches to another app?
a) Activity
b) Service
c) Fragment
d) View
Answer: b) Service
41. The Android 'Room' library is used for:
a) UI design
b) Database access
c) Networking
d) Media playback
Answer: b) Database access
42. Which permission is needed to access the user's location?
a) ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION
b) READ_CONTACTS
c) INTERNET
d) CAMERA
Answer: a) ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION
43. In Android, which class is used to manage notifications?
a) NotificationManager
b) NotificationBuilder
c) NotificationCenter
d) NotificationService
Answer: a) NotificationManager
44. Which data storage method is most suitable for relational data?
a) SharedPreferences
b) SQLite database
c) Files
d) Content Provider
Answer: b) SQLite database
45. Which Android component can be used to run code in response to system events such as device
boot?
a) Service
b) Broadcast Receiver
c) Activity
d) Content Provider
Answer: b) Broadcast Receiver
46. Which is NOT an Android UI component?
a) Button
b) TextView
c) RecyclerView
d) MaterialDesign
Answer: d) MaterialDesign
47. Which lifecycle method is called when an activity becomes visible after being paused?
a) onStart()
b) onResume()
c) onCreate()
d) onPause()
Answer: b) onResume()
48. Which security feature ensures data transmitted over the network is encrypted?
a) SSL/TLS
b) VPN
c) WPA2
d) Firewall
Answer: a) SSL/TLS
49. Which component is responsible for handling user input and presenting data?
a) Activity
b) Service
c) Content Provider
d) Broadcast Receiver
Answer: a) Activity
50. Which testing method is recommended for verifying Android app functionality across multiple
devices?
a) Unit testing only
b) Manual testing on a single device
c) Automated testing with emulators and real devices
d) No testing is necessary
Answer: c) Automated testing with emulators and real devices