Mobile Software Engineering I - Unit 2 Flashcards

(29 cards)

1
Q

What general layers exist in the Android architecture?

A
  • applications
  • Java application framework
  • android runtime / system libraries
  • hardware abstraction layer
  • linux kernel
  • hardware layer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a kernel?

A

The software that creates the environment on which all applications will later run on.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What environmental features does the linux kernel provide?

A
  • virtual execution space
  • file system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are Wakelocks in regard to Android? How do they operate?

A

A method to control if the device will stay “awake” or will “sleep”. Wakelocks provide a flag value. The kernel constantly tries to “sleep”, however a true wakelock flag will prevent this.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are some alternatives to wakelocks in Android?

A
  • download manager
  • sync adapters
  • job scheduler
  • firebase cloud messaging
  • companion device manager
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is Binder in regard to Android?

A

An inter-process communication that manages the way that the Android system handles memory pressure and wakelocks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does the ashmem module do in the Android kernel?

A

Allows unrelated processes to share memory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the purposes of the hardware abstraction layer?

A
  • layer of native code inbetween the Java code and the driver code
  • abstraction layer for the device’s functionalities
  • allows over-the-air updates
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the main purpose of the android runtime environment?

A

To convert code from high-level languages into binary or machine code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What features does the android runtime environment offer over its predecessor Dalvik?

A
  • ahead-of-time compilation
  • garbage collection
  • debugging improvements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are some examples of native C or C++ libraries included in the Android architecture?

A
  • OpenGL
  • WebKit
  • media frameworks
  • SSL
  • SQLite
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What primary examples of building blocks in the Java API Framework for Android exist?

A
  • view system
  • notification manager
  • location manager
  • activity manager
  • content providers
  • resource manager
  • core
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Within the Android stack, where are security measures implemented?

A

In each layer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What main categories of security issues exist in the Android stack?

A
  • hardware
  • operational
  • application
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the concept of verified boot?

A

Ensuring that the kernel and android system are loaded from a secure location.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the StrongBox Keymaster in Android?

A

A hardware security module, implemented in tamper-resistant hardware to handle cryptographic keys.

17
Q

What is the concept of application sandboxing?

A

Applications are loaded and executed in their own process, with individual memory space and a section of the file system they can access. They are isolated from other processes that are simultaneously running.

18
Q

What does SE Linux define that improved the security of Android?

A

Security Enhanced Linux determines a set of policies with enforcement rules.

19
Q

What are the main cryptographic components in the Android system?

A
  • KeyStore: storage for cryptographic certificates and keys applicable to specific modules
  • KeyChain: storage for credentials applicable to the entire system
20
Q

What is the meaning of the following security recommendations as it pertains to Android:

  • control permissions given to apps
  • use Google Play Protect
  • enforce safe browsing
  • two-factor authentication
  • screen lock and smart lock
  • location settings
  • encryption
  • software update
  • unsecure connections
  • additional security
A
  • control permissions given to apps
  • use Google Play Protect: scans phone for misbehaving or malicious apps
  • enforce safe browsing: gives the user a warning when materials from a suspicious website are downloaded or opened
  • two-factor authentication
  • screen lock and smart lock: smart lock allows the device to remain unlocked in trusted situations or places
  • location settings
  • encryption
  • software update
  • unsecure connections
  • additional security
21
Q

What are the most important features of Google Play Protect?

A
  • scanning apps installed from Google Play
  • erasing remote location or device data
  • warning about suspicious websites
  • continuous monitoring of applications
22
Q

What important security considerations exist when communicating through a network?

A
  • minimize transmission of sensitive data
  • set restrictions (only trust certain certificate authorities)
  • use SSL
23
Q

What Android class controls the connectivity to different networks?

A

ConnectivityManager

24
Q

What different states can exist in the ConnectivityManager in regard to network state?

A
  • connected
  • connecting
  • disconnected
  • disconnecting
25
What different types of network connections exist in the `ConnectivityManager`?
* `TYPE_WIFI` * `TYPE_MOBILE` * `TYPE_BLUETOOTH`
26
What Java package is used to make HTTP requests?
`java.net`
27
What main web services can be used in Android systems?
* **re**presentational **s**tate **t**ransfer (REST) * **s**imple **o**bject **a**ccess **p**rotocol (SOAP) * remote procedure calls (XML-RPC)
28
What java classes can be used to make phone calls directly from an application?
`TelephonyManager` and `PhoneStateListener`
29
What Java class can be used to send SMSs?
`SMSManager`