Introduction and architecture Flashcards

1
Q

What is Android?

A

Googles open and free software stack that includes:
- OS Kernel
- System Libraries
- Application Framework
- Key applications for use on Android mobile devices

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

What is the Android SDK?

A

Android Software Development Kit contains the tools and packaged for creating android applications.

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

From innermost to outermost, what are the 5 layers of the Android platform architecture?

A

Linux Kernel
HAL
C/C++ Libraries and Android Runtime Environment
Java API Framework
System Applications

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

What is the role of the Linux Kernel in Android?

A

Security; process and low level memory management; File and network IO; Hardware drivers; Power Management.

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

What is the role of the Hardware Abstraction layer (HAL) in Android?

A

Interfaces the hardware components to the Java API Framework. Each hardware component has 1 interface, and each interface is implemented by one or more libraries. Thus, enabling developers to interact with the hardware. For example, Audio, Camera, Sensors etc.

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

What type of processes are native C libraries used for? What are some of the responsibilities that Android Runtime takes care of?

A

Used for intensive, computationally heavy processes. Native C libraries include Webkit, OpenGL, SQLite.
Android Runtime is the android runtime environment that includes classes, app lifecycle, unit testing etc.

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

What is the role of the Java API Framework layer in Android?

A

Promotes and enables the reuse of system components and services.

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

What is the role of the System Applications layer in Android?

A

Any of the core applications that android provides. For example, calendar, email, browser, camera etc.

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

How does Android Runtime work?

A
  1. Program is written in Java
  2. Java code is converted to Bytecode
  3. Bytecode is converted to DEX Bytecode files
  4. DEX Bytecode files are input into the Android Runtime Environment
  5. ART outputs the executable files, which are specifically optimised for devices with constraints on memory and speed.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Where are the application resources kept within the project strcture?

A

In the res folder

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

What is the R class? What is it an ancestor to?

A

Exists solely to link resources to the Java code.
It is an ancestor of all files in the res folder.

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

How does accessing valued of the R class differ between the doing so in Java code and doing so through XML?

A

R.string.hello -> Java code
@string/hello -> XML

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

What are the 4 application components?

A

Activity, Service, Broadcast Receiver, Content Provider.

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

Define the Activity component…What must be done before they can be used?

A

Provides points of interaction for the user.
Each activity is a subclass of Activity.
GUI widgets are implemented within Activities.
They must be registered with the Applications manifest before they are used.

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

Define the Services component…

A
  • Consists of long running processes that take place in the background.
    For example, playing music or the reminders app.
  • Services usually run on their hosting processes thread.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Define the Broadcast Receivers component…

A
  • A dormant component that listens to system wide broadcast events and intents. System wide meaning across all applications on the device.
  • Each broadcast receiver must register with a broadcast event. Thus, the receiver is notified when that broadcast occurs.
  • System broadcasts include low battery, power connected etc.
  • Custom broadcasts are used to notify other apps
17
Q

Define the Content Provider…

A
  • Component that enables and facilitates secure interaction with the applications central repository of data.
  • Provides a client object that external or internal components can interact with. This objet the carries out transactions onto the central data repository based on requests.
  • For example, a Task App would use a Content Provider to add and remove tasks from the application.
  • Provide an abstraction layer that other applications or inter-application components have to interact in order to access the data.
18
Q

Give an advantage of Android using a Linux Kernel?

A

Linux is widely used, thus it’s easy for manufacturers to develop for.

19
Q

Explain the role of the Hardware Abstraction Layer…

A

Provides interfaces that expose hardware components to the Java API Framework. The HAL contains library modules, each of which implements one of the interfaces of a hardware component.

20
Q

When a call to a hardware component is made, which library module is called?

A

The library model that implements the HAL interface for that hardware component.

21
Q

What change was made in Android 5 regarding the Android Runtime Environment when an application is run?

A

Each Application was given its own instance of the Android Runtime Environment.

22
Q

What is the purpose of native C/C++ libraries in the platform architecture?

A

Many core components of the Android System are built in C and C++. For example, Android Runtime Environment and the Hardware Abstraction Layer are build in C based languages.

The Java API Framework exposes the functionality of these native libraries.

23
Q

What is the Manifest file?

A

A document at the root of the project structure. The Manifest contains vital application information such as components used, permissions, hardware and software requirements.

The Manifest acts as the system-wide face of your application. The Android System uses the manifest to locate your app, search your app and communicate with your app.