Mobile and Ubiquitous Computing Flashcards

1
Q

What are the five layers in Android Platform Architecture from bottom to top?

A

Linux Kernel
Hardware abstraction layer
Native C/C++ libraries & Android Runtime
Java API framework
System apps

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

What does the linux kernel contain?

A

Hardware drivers, security, process and memory management,
File and Network I/O,
Power Management, Binder (Inter-Process Communication)

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

What does the hardware abstraction layer do?

A

Provides standard interfaces that expose device hardware capabilities to the Java API framework, bridging the gap between the linux kernel and hardware.

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

What are the native C/C++ Libraries?

A

Pre-compiled libraries optimized for performance and used for low-level system operations. Includes Webkit (Browser engine), Media Framework (Video/Audio), OpenGL (Graphics Engine), SQLite (Relational Database engine).

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

What is Android Runtime?

A

Android Runtime is an application runtime environment used by the Android OS. Contains core libraries such as Basic Java Classes, App Lifecycle, Internet/Web Services and Unit Testing. Java Code is converted to Java bytecode, which is converted to DEX bytecode, which is the input to ART.

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

What is the Java API Framework?

A

A collection of Java classes and interfaces that define the functionality available to Android applications.

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

What are five features of the the Java API Frameworks and what do they do?

A

View System - Builds an application’s UI.
Content Provider - Enables applications to access data from other applications.
Resource Manager - Provides access to non-code resources such as graphics.
Notification Manager - Enables all applications to display customer alerts in the status bar.
Activity Manager - Manages the lifecycle of apps and provides a common navigation backstack.

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

What is application part of the android platform architecture?

A

A set of core apps that come pre installed with android such as an email client, maps and a browser.

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

What is an activity?

A

An activity provides the window in which the app draws its UI. It is the entry point for an app’s interaction with the user. One activity implements one screen and most apps have several activities. Each activity must be registered in the manifest, and as a subclass of the base Activity class.

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

What is a service?

A

A service runs in the background and performs long running operations. It allows different processes to share data and request operations.

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

What are Broadcast Receivers?

A

Broadcast Receivers are a component of the android system that allow apps to listen and respond to an event. For example system broadcasts and customized broadcasts.

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

What are Content Providers?

A

A way for an app to access data and to share data with other apps. Provides an interface between an app and its data storage.

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

What is the android manifest?

A

The Android Manifest. is an XML file that serves as a blueprint for the Android application. It provides essential information about the app to the Android system, such as its package name, version, permissions, components, and configuration details.

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

What happens when an activity is launched?

A

It goes to onCreate()

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

What happens after onCreate()?

A

onStart()

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

What happens after onStart()?

A

onResume()

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

What happens after onResume()?

A

The activity runs

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

What happens on onPause()?

A

Either the App Process is killed, it resumes with onResume(), or it goes to onStop()

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

What happens on onStop()?

A

Either the App Process is killed, it restarts with onRestart(), or it it goes on to onDestroy()

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

What happens on onDestroy()?

A

The activity is shut down

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

How is an activity restarted after the App Process is killed?

A

onCreate()

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

What is onCreate()?

A

Called when activity is created. Initializes the activity and carries out the functions super.onCreate(), set content view, retain references to views, configure views.

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

What is onStart()?

A

Called when the activity is about to become visible. Typically starts up visible only behaviours and loads persistent app state.

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

What is onResume()?

A

Called when the activity is visible and about to start interacting, will usually start foreground only behaviors.

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

What is onRestart()?

A

Called when Activity is stopped but about to be started again, and needs to handle any special processing needed.

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

What is onPause()?

A

When you are about to switch to another activity. Shuts down foreground only behaviour and saves persistent app state.

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

What is onStop?

A

When the activity is no longer visible, it will usually cache activity state. May not be called if Android kills app.

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

What is onDestroy()?

A

When it is about to be destroyed and it releases activity resources. May not be called if android kills app.

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

How do you start a new activity from an initial activity?

A

Context context = FirstActivity.this;
Class destinationActivity = SecondActivity.class;
Intent intent = new Intent (context, destinationActivity);
startActivity(intent);

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

How can you send data from one activity to another using Intent data?

A

Add the data (URI) to the intent.
For example:
Uri webpage = Uri.parse(“http://www.exeter.ac.uk”);
intent.setData(webpage);

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

How can you send data from one activity to another using Intent Extras and putExtra()?

A

Determine the key for information, then use the putExtra() methods to add <key, value> pairs.

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

How can you send data from one activity to another using Intent Extras and bundles?

A

Create a bundle then use putString() to add the key and value to the bundle. Then use putExtra(bundle) on the intent.

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

How do you receive data from another activity sent with an intent with data?

A

getIntent() to retrieve the intent. Then intent.getData() to get the data from the intent

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

How do you receive data from another activity sent with an intent with an extra?

A

getIntent() to retrieve the intent. Then intent.get**Extra() to get extra data out of the intent. For example getStringExtra for a string.

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

How do you receive data from another activity sent with an intent with a bundle of extras?

A

getIntent() to retrieve the intent. Then intent.getExtra() to get bundle out of the intent. Then bundle.getString() if it is a string.

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

How do you launch an activity to get a response from it?

A

Firstly call startActivityForResult(Intent intent, int requestCode) to call the activity. Then add data to an intent in the second activity, and use setResult(int resultCode, Intent data) to set the result, and finish() to finish the activity. Finally on the first activity, Override the onActivityResult(int requestCode, int resultCode, Intent data) method, check if resultCode = RESULT_OK, then process the data.

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

What is explicit intent?

A

An Intent that explicitly specifies the target component (e.g., activity, service) to be invoked. Usually used to call other activities.

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

What is implicit intent?

A

An Intent that does not specify the target component (e.g., activity, service) explicitly but describes the action to be performed. Used for activating components that can handle a particular action, such as opening a web page, sending an email, or sharing content.

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

What is the use of intent field named action?

A

Specifies the generic action the receiving activity should perform.

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

What is the use of the intent field named category?

A

Specifies the category of component that should handle the intent.

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

What is the use of the intent field named type?

A

It indicates the MIME type of the intent data (e.g., image/png, image/jpeg,
text/html, text/plain). If you don’t specify a MIME type, Android will infer one.

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

What is the use of the intent field named flag?

A

It specifies how the intent should be handled

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

How do you create and resolve an implicit intent?

A

To create, create an an intent with an action string. Then set any fields such as extras or type. Then use resolve activity to make sure that the system packet manager has a match for the intent, and start the activity if it does.

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

How can you handle more than one app being able to handle an intent?

A

Create a selection or chooser dialogue, and start the activity through that.

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

How can an activity receive an implicit intent?

A

By putting intent filters in the android manifest, which then are compared with the intent fields to see if they are compatible. If they are it gets the intent, gets the data/extras, performs the task, and may return data.

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

What does the <action> intent filter mean?</action>

A

It describes which actions an activity can perform.

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

What does the <data> </data>intent filter mean?

A

It describes which data types that the activity can handle.

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

What is a view?

A

The view class is a basic building block and superclass for UI components. It occupies a rectangular space on screen and has a location and dimension. There are lots of predefined views such as TextView, ImageView, ScrollView and RecyclerView.

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

What is a viewgroup?

A

ViewGroups are special types of Views that act as containers for other Views. They organize and manage the layout of child Views within them.

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

What is a layout?

A

A layout is a type of viewgroup that dictates the arrangement and organization of UI elements within an Activity or Fragment. They can be declared in XML or instantiated at runtime.

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

What is a relative layout?

A

A RelativeLayout is a type of ViewGroup in Android that arranges its child Views relative to one another or to the parent container.

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

What is a constraint layout?

A

A ConstraintLayout is a type of ViewGroup that allows the creation of flexible and dynamic layouts using a system of constraints to define the position and alignment of UI elements relative to each other and to the parent container.

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

What is an AdapterView and how does it work?

A

An AdapterView in Android displays a list of data items. It works by connecting data to views using an adapter, and populating on runtime. It can also handle user selections with OnItemClickListener.

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

What is ListView?

A

A subclass of AdapterView that has vertical scroll, horizontal row entries, and pick item.

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

What is GridView?

A

A subclass of AdapterView that displays a list of scrollable items with specifies number of rows and columns

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

What is a linear layout?

A

A linear layout arranges its child Views in a single direction, either horizontally or vertically. This is often used when views need to be organized in a linear fashion.

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

What advantages does RecyclerView have over ListView?

A
  • It supports vertical, horizontal, and grid layouts instead of only vertical.
  • It has more efficient view recycling and memory management.
  • It is more optimized for large and dynamic data sets, which improves performance.
  • Allows for dynamic data changes with notifications for item insertion and removal.
  • Built in support for custom decorations and animations.
    Easier to create complex item views and layouts.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
58
Q

What is the principle behind RecyclerView?

A

Items off screen are kept in a queue for reuse. The list items are binded with new content that can be scrolled in. Items that are scrolled out are added back into the queue.

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

What are the four components of RecyclerView and what do thet do?

A

Layout Manager: Manages the arrangement of items within the RecyclerView.

RecyclerView: The scrolling list that contains the list items.

Adapter: Binds data to the RecyclerView. Contains the ViewHolder which contains the view information for displaying one list item.

Data: Local data, a database or remote data.

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

What is a ViewHolder?

A

It describes an item view and metadata about its place. The adapter adds data to view holders. The layout is defined in xml and can contain any kind of view. It minimizes the number of views kept around and the number of views to be created when scrolling by creating more views than screen capacity, and caching and reusing views with different data as they scroll in and out.

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

Why are ViewHolders used?

A

It doesn’t need to use findViewById(), as it is better to cache the views in a view holder. Therefore you can access those views later without having to repeatedly make findViewById() calls. When it scrolls the view holders will be reused and the adapter will bind new data to them.

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

How do you implement a recycler view?

A

FIrstly add RecyclerView to the gradle file. Create an XML layout file for the individual items in the list/grid. Define a ViewHolder class that extends RecyclerView.ViewHolder. Create an adapter class that extends RecyclerView.Adapter<ViewHolder>, and override onCreateViewHolder() to inflate item layouts, onBindViewHolder() to bind data to views, and getItemCount() to return the number of items in the dataset. In the main activity give the RecyclerView a LayoutManager, instantiate the adapter and set it on the RecyclerView using setAdapter().</ViewHolder>

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

How are fragments modular?

A

Composing an Activity from several fragments offers flexibility, you can re-use fragments, and they usually have a UI.

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

How does the fragments lifecycle connect to the activity?

A

A fragment has its own lifecycle and receives its own events but is also tied to its parent activity lifecycle.

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

What are the three fragment lifecycle states and what do they mean?

A

Resumed: Fragment is visible in the containing activity.
Paused: Another activity is in the foreground (the containing
activity is in the background).
Stopped: Fragment is not visible.

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

When is onAttach in the fragment lifecycle called, and what does it do?

A

Called when the fragment is attached to its host activity, preceded by instantiation of the Fragment and followed by onCreate(). This method establishes a connection to the parent activity.

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

When is onCreate in the fragment lifecycle called, and what does it do?

A

Invoked when the fragment is being created, preceded by onAttach() and followed by onCreateView(). Initialization tasks such as setting up variables and resources are performed here.

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

When is onCreateView in the fragment lifecycle called and what does it do?

A

Responsible for creating the fragment’s view hierarchy, preceded by onCreate() and followed by onViewCreated(). Inflate the layout XML or create views programmatically within this method

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

When is onViewCreated in the fragment lifecycle called and what does it do?

A

Called after onCreateView(), indicating that the view hierarchy has been created, preceded by onCreateView() and followed by onStart(). Initialize UI elements and bind data to views here.

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

When is onStart in the fragment lifecycle called and what does it do?

A

Called when the fragment becomes visible to the user, preceded by onViewCreated() and followed by onResume(). Perform initialization tasks here when the fragment becomes visible.

71
Q

When is onResume in the fragment lifecycle called and what does it do?

A

Invoked when the fragment is visible and interactive to the user, preceded by onStart() and followed by onPause(). Set up UI updates, animations, and event listeners here.

72
Q

When is onPause in the fragment lifecycle called and what does it do?

A

Called when the fragment is about to be paused or stopped, preceded by onResume() and followed by onStop(). Pause ongoing operations here.

73
Q

When is onStop in the fragment lifecycle called and what does it do?

A

Invoked when the fragment is no longer visible to the user, preceded by onPause() and followed by onDestroyView(). Perform cleanup tasks and release resources here.

74
Q

When is onDestroyView in the fragment lifecycle called and what does it do?

A

Called when the fragment’s view hierarchy is being destroyed, preceded by onStop() and followed by onDestroy(). Perform cleanup related to views here.

75
Q

When is onDestroy in the fragment lifecycle called and what does it do?

A

Invoked when the fragment is being destroyed, preceded by onDestroyView() and followed by onDetach(). Release resources and unregister listeners here.

76
Q

When is onDetach in the fragment lifecycle called and what does it do?

A

Called when the fragment is detached from its host activity, preceded by onDestroy() and followed by the Fragment being destroyed. Release any references to the activity here.

77
Q

What are the differences between an options menu and a context menu?

A

The options menu is the primary collection of menu items for an activity, where settings and search should be. Meanwhile a context menu is a floating menu that appears on a long click that provides actions that affect the selected content or context.

78
Q

How do you create an options menu?

A

Firstly create the options menu in the xml file, then override the onCreateOptionsMenu() method to inflate the menu resource file and display the menu in the action bar. Then override the onOptionsItemSelected() method to handle menu item selection events. Perform actions based on the selected menu item’s ID.

79
Q

How do you create an context menu?

A

Firstly create the options menu in the xml file, then register the view that will trigger the context using registerForContextMenu(), inflate the menu resource using onCreateContextMenu, then handle the selection using onContextItemSelected.

80
Q

What are the four types of storage?

A

Lightweight Storage, File Storage, Database and Network

81
Q

What are the two types of Lightweight storage?

A

SharedPreferences - Store private, primitive data sets in key-value pairs, like user preferences.
DataStore - The modern substitute for SharedPreferences with better performance and safety.

82
Q

What are the two types of file storage?

A

Internal storage - Store sensitive, private data on the device’s built in storage within the app’s context. Files are removed when the app is uninstalled.
External storage - Private to an app and deleted when the app is uninstalled or public and accessible to other apps. requires read and write to external storage permissions.

83
Q

What are the two types of database?

A

SQLite Database - Store structured data in a private database. A small, fast, self-contained, high reliability database engine.
Room Database - An abstraction over SQLite for simplified management and queries.

84
Q

How does cloud storage work?

A

Allows for apps to store data on remote servers, enabling access across devices and platforms. Ideal for data synchronisation, backup, or dealing with large data.

85
Q

What are the advantages of SharedPreference over SavedInstanceState?

A

Persists across user sessions instead of just in the same session. This means that data is remembered across sessions and you can store user preferences.

86
Q

What are the three levels of preferences?

A

There is getPreferences for activity specific preferences, getSharedPreferences for application level preferences, and getDefaultSharedPreferences for system wide preferences.

87
Q

How do you implement sharedPreferences?

A

Get the preferences you want (activity, application or device), then do .edit(), and .put**(key, value) such as .putInt. then call .commit().

88
Q

How do you retrieve from sharedPreferences?

A

Get the preferences you want (activity, application or device), then do .get**(key) to get the value. .getAll() returns all key-value pairs.

89
Q

What are the limitations of sharedPreferences?

A

Main Thread Blocking - SharedPreferences’ synchronous API can block that main thread during I/O operations leading to UI performance issues.
Multi-Process Use - It is not designed for use in multi-process applications and could lead to data inconsistency.
Lack of Transaction Support - Changes are committed immediately and cannot be rolled back if there is an failure partway.

90
Q

What advantages does DataStore have over SharedPreferences?

A

DataStore has asynchronous data handling, and concurrency support.

91
Q

What are the differences between Preference DataStore and Proto DataStore?

A

Preferences is similar to SharedPreferences with key-value pairs and is used for small datasets such as preferences. Proto uses Type objects and has Type safety so can store more complex data that doesn’t fit into key-value pairs, but is more complicated to set up.

92
Q

How do you implement preferences datastore?

A

Create a DataStore<Preferences> instance, to save data you can use the .edit method inside a sav(), and to retrieve data you can use read().</Preferences>

93
Q

What makes computing mobile?

A

Computing while location changes.

94
Q

What makes computing ubiquitous?

A

When the computing is performed in accordance with the context. This usually involves a lot of sensing.

95
Q

Why is mobile ubiquitous computing volatile?

A

Because of the incremental and continuous change in the ubiquitous environment over time. For example variation between different technologies and disconnections.

96
Q

What is Throughput?

A

Throughput is a measure of how many units of information a system can process in a given amount of
time. A rather general definition can be the amount of work done per unit time.

97
Q

What is Network Bandwidth?

A

Network bandwidth is a measure of the data transfer rate or capacity of a given network. Network
bandwidth is commonly measured in bits per second (bps).

98
Q

What is Network Latency?

A

Network latency is the delay in network communication. It shows the time that data takes to transfer
across the network. Networks with a longer delay or lag have high latency, while those with fast response
times have low latency

99
Q

What is the definition of RFID?

A

Radio Frequency Identification (RFID) is a form of wireless communication that incorporates the use of
electromagnetic or electrostatic coupling in the radio frequency portion of the electromagnetic
spectrum to uniquely identify an object (carrying an RFID tag)

100
Q

What are the two types of RFID?

A

Passive which do not have their own power source and use power from the reader, and Active which have their own power source.

101
Q

What are the three implementations of RFID?

A

Ultra High Frequency (200MHz to 3GHz, 1-12m); High Frequency (3-30MHz, 1m or less); Low High Frequency (30-300kHz, 10cm).

102
Q

What is RFID typically used for?

A

Automatic identification and Data capture. For example payment systems, and access control to restricted areas.

103
Q

What is the definition of WPAN (Wireless Personal Area Network)?

A

A Wireless Personal Area Network (WPAN) interconnects technology devices, wirelessly, typically within the
range of a single user (human/machine), Small Office or Home Office (SOHO) environment, or workgroup. The most common use is bluetooth.

104
Q

What are the characteristics of WPAN?

A
  • Short range (around 10m)
  • Low energy/power consumption (100 mW to 1W)
  • Low data rate (1-3Mbps)
  • Low latency (around 40ms)
105
Q

What are the key features of Bluetooth?

A

Bluetooth is a WPAN. Has low power consumption, short range, low latency, and omni-directional communications.

106
Q

What is the definition of WLAN (Wireless Local Area Network)?

A

A Wireless Local Area Network (WLAN) interconnects technology devices, wirelessly, typically within the
range of a multiple users. It is still a small network of devices, but offers more range and connectivity.

107
Q

What are the characteristics of WLAN?

A
  • Access range usually within a single building
  • High data transmission rates
  • Moderate latency
  • Low cost installation and services.
108
Q

What are the key features of Wi Fi?

A

Has around 100m access range, 145-1103mW power consumption, bandwidth of around 54Mbps, 20-100ms latency.

109
Q

What is the definition of WNAN (Wireless Neighborhood Area Network)?

A

A Wireless Neighborhood/Metropolitan Area Network (WNAN/WMAN) interconnects technology devices,
wirelessly, typically within a larger range of a multiple users.

110
Q

What are the characteristics of WNAN?

A
  • Large access range of over 50km
  • Higher power consumption
  • High data transmission rates
  • Moderate latency
  • Works by line-of-sight, and non-line-of-sight.
111
Q

What are the key features of WiMAX?

A
  • Access range of over 50km
  • 6 to 17W per user power consumption
  • Latency of around 1ms
  • 2 operating bands
112
Q

What is the definition of WWAN (Wireless Wide Area Network)?

A

Perform over large areas over 50km, typically use licensed frequency bands, and can be maintained over large areas, such as over cities or countries, via multiple satellite or antenna sites.

113
Q

What are the characteristics of WWAN?

A

Very big access range of over 50km, moderate to high energy consumption, moderate bandwidth, but high latency.

114
Q

What are the key features of cellular networkks?

A

Implemented using satellites. Coverage area is divided into cells, with a cell transmitter node in the middle. All cell transmitters connect to a base station, which then connects to a mobile telecom switch to link cellular and wired telephone network.

115
Q

What did all the new cellular generations introduce?

A

1G: voice calls, 2.4Kbps
2G: texts, 64Kbps
3G: 2Mbps
4G: Up to 1Gbps
5G: 10Gbps, up to 1ms latency

116
Q

What are the best and worst wireless technologies for high coverage/range?

A

Best: Cellular
Worst: RFID

117
Q

What are the best and worst wireless technologies for low power consumption?

A

Best: RFIDs
Worst: Cellular

118
Q

What are the best and worst wireless technologies for high bandwidth?

A

Best: WiFi
Worst: RFIDs

119
Q

What are the best and worst wireless technologies for low latency?

A

Best: Bluetooth
Worst: Cellular

120
Q

What is a content provider?

A

A content provider is a way for other apps to access data storage in your app without having to access the storage directly.

121
Q

How do you get content from a content provider?

A

Firstly get permissions to access the app. Create an instance of a content resolver using getContentResolver(). Then call Cursor = resolver.query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder), getting the uri from the contract class. Then you need to get the information from the cursor

122
Q

What is a contract class?

A

Stores all the URIs of the content provider of an app. This exposes information about it’s content provider to other apps.

123
Q

How do you create a content provider?

A

Create a class that extends from the ContentProvider, and register it in the manifest. Create URI’s and add them to the contract class. Use the UriMatcher class to match URIs to specific operations and tables within the content provider.
On create initialize the content provider. Add the insert, query, update and delete functions. Add getType to return the MIME type of the content.

124
Q

What is the definition of an embedded system?

A

Computing systems designed to perform specific functions within a larger system, typically with real-time constraints and resource limitations.

125
Q

What are the Characteristics of Embedded Hardware?

A

Domain-specific: Tailored to serve a specific domain.
Energy-efficient: prioritized over raw performance.
Power constraints: May have cooling requirements or power supply limits.
Cost: Balance cost of production, and cost of design.
Programmability: Flexible or not for reprogrammability once manufactured.
Design complexity: Different complexities depending on requirements.

126
Q

What are the Characteristics of Embedded Software?

A

Real-time: Timing constraints set by physical environment.
Reactive: Response to physical environment.
Concurrency: Physical environment in not sequential.
Dependability: Impact on physical environment.
Reliability: Fixing bugs may be hard once deployed.
Efficiency: Manual optimisation required.
Lack of abstraction: Exposure of underlying hardware to programmer.

127
Q

What are real time embedded systems?

A

A special class of embedded systems, distinguished from the rest of Embedded Systems by its
requirement to respond to external events in timely manner. Temporal correctness is as important as logical correctness.

128
Q

What are HARD Real time embedded systems?

A

Where completion of a logically correct operation after its deadline is unacceptable. Operation may cause a critical failure in system and expose end users to hazardous situations. For example in planes on power plants.

129
Q

What are SOFT Real time embedded systems?

A

Lower strictness as compared to hard real-time systems. Violation of timing constraints does not make produced logically correct outputs useless or hazardous. System can continue to operate even if deadlines of most operations are missing. Consequences of missing deadline smaller than cost of meeting them. Cellular phones are an example.

130
Q

What are FIRM Real time embedded systems?

A

An intermediate between hard and soft real time systems. Only a predefined ratio of deadline miss is allowed.

131
Q

What are the high level challenges of embedded system design?

A

How much Hardware, How to meet deadlines, How to minimize power, Multi-objective optimisation in a vast space.

132
Q

What are the five design steps for an embedded system?

A

Requirements Analysis
System Specifications
Architecture Definition
Components
System Integration

133
Q

What is done in the requirement analysis stage of embedded system design?

A

Functional requirements: Output as a function of input
Non-Functional requirements: Time to compute, size, weight, power consumption, reliability.

134
Q

What is done in the system specification stage of embedded system design?

A

What should the system include, often done using UML

135
Q

What is done in the system integration stage of embedded system design?

A

Everything is put together, and functional and nonfunctional testing.

136
Q

What are common design practices nowadays in embedded systems?

A

Reuse in design, using pre designed hardware module. Platform based design that focuses on IP-centric design and reuse.

137
Q

What is edge computing?

A

Edge computing is a distributed IT architecture in which client data is
processed at the periphery of the network, as close to the originating source
as possible.

138
Q

What is cloud computing?

A

Huge, highly scalable deployment of compute and storage resources at one of several distributes locations.

139
Q

What is fog computing?

A

Puts compute and storage resources ‘within’ the vicinity of data but not necessarily at the data source. Used when edge deployment might be too resource limited.

140
Q

What is Task Offloading?

A

The transfer of resource-intensive computational tasks to an external platform such as Cloud, Fog or Edge Computing. Taskas may be split into local and offloaded computation and are combined at the end. Advantages of this include boosted performance, and battery lifetime.

141
Q

What is Service Migration?

A

Service Migration ties to find the best possible way to migrate services between edge services, taking into account the task size, user’s mobile needs and existing workload.

142
Q

What is Edge Caching?

A

Edge caching stores popular content closer to the user on the edge server. This reduces latency as it is quicker to retrieve. ML/AI can be used to determine which content gets cached.

143
Q

What are the challenges of Edge Caching?

A

Limited caching capacity, not all content can be cached. User position and requests dynamically change.

144
Q

What is Software Security?

A

Protecting against System and Application software issues which can cause security threats. For example lack of encryption, bad code re use or lack of testing.

145
Q

What is Hardware Security?

A

Hardware security involves protecting processing, storage, I/O, and peripheral devices from threats. This includes ensuring a trusted execution environment, addressing memory-level security, access vulnerabilities, and timing issues. Measures such as authentication and privacy preservation are crucial for safeguarding against malware and covert channels.

146
Q

What is Cloud, Fog and Edge Security?

A

Protecting against attacks on cloud fog and edge computing. For example DoS attacks, cloud malware injection and side and covert channels.

147
Q

What is availability?

A

Accessibility of data when the user or system need it. Assets are accessible to authorized
parties at appropriate times.

148
Q

What is integrity?

A

Integrity means data is trustworthy,
complete, and has not been
accidentally or deliberately altered by an
unauthorized user

149
Q

What is Confidentiality?

A

Confidentiality refers to protecting
information from unauthorized access.

150
Q

What is Accountability?

A

Accountability refers to the traceability
of actions by various authorized users. Actions are recorded and can be traced
to the party responsible.

151
Q

What is Authentication?

A

Authentication refers to the ability to
accurately identify the user or origin of
data being produced.

152
Q

What is an Adversary?

A

An entity that attacks, or is a threat to, a system.

153
Q

What is an Asset/System Resource?

A

Data, a service provided by a system, a system capability, an item of system equipment, a facility that
houses system operations and equipment.

154
Q

What is Risk?

A

An expectation of loss expressed as the probability that a particular threat will exploit a particular
vulnerability with a particular harmful result.

155
Q

What is Vulnarability?

A

Flaw or weakness in a system’s design, implementation, or operation and management that could be
exploited to violate the system’s security policy.

156
Q

What is Threat?

A

Capability to exploit any of the vulnerabilities. A potential for violation of security, which exists when there is a circumstance, capability, action, or
event that could breach security and cause harm.

157
Q

What is an Attack?

A

A threat being carried out. An assault on system security that derives from an intelligent threat; a deliberate attempt to evade
security services and violate security policy of a system.

158
Q

What is a Countermeasure?

A

An action, device, procedure, or technique that reduces a threat, a vulnerability, or an attack by
eliminating or preventing it, by minimizing the harm it can cause, or by discovering and reporting it so
that corrective action can be taken.

159
Q

What is an Interception attack?

A

Where a malicious actor can access confidential information without authorization. For example eavesdropping attacks.

160
Q

What are Modification attacks?

A

Where an attacker intercepts communication between sender and receiver and tampers with information. This is a threat to integrity.

161
Q

What are Fabrication attacks?

A

Where an intruder injects false data or creates a false trail into a system. This affects data integrity.

162
Q

What are Interruption Attacks?

A

o Interruption attacks are any situation where an attacker
cause information/data to become unavailable or unusable
for the receiver on a temporary or permanent basis. For example DoS or virus/trojans.

163
Q

What are Side Channel Attacks?

A

Where an attacker uses leakage of information from physical and logical parameters of main computation function. For example timing attacks, power attacks, electromagnetic attacks.

164
Q

What are Covert-Channel Attacks?

A

Covert-Channel attacks are any situation where an attacker creates a capability to transfer information/data between any processes that are not supposed to be allowed to communicate with each other.

165
Q

How can Cache feature be exploited?

A

Attackers use access latency to observe cache state, they can use mapping to derive the main memory access behavior via cache accesses, and can use cache conflicts to capture the cache accesses of the victim.

166
Q

What is a Flush and Reload attack?

A

A flush and reload attack is a side-channel attack that exploits CPU caching mechanisms to leak sensitive information. By repeatedly flushing cache lines and measuring the time it takes to reload them, attackers can infer which memory addresses were accessed by a victim process, potentially revealing cryptographic keys or other sensitive data

167
Q

What are the encryption and decryption functions of RSA, and what would an attacker try find?

A

m^e mod n and c^d mod n. The attacker would want to find d.

168
Q

What is the ML Workflow?

A

Data Collection & Labelling
System Design and Learning
Performance Evaluation
Deployment and Operation

169
Q

What is Data Collection and Labelling in AI/ML and what are the issues?

A

Getting a dataset and creating labels. Unrealistic data can lead to a misestimation of an approaches capabilities, which is called sampling bias. There is also label inaccuracy which is when the labels are inaccurate, unstable, or erroneous.

170
Q

What is System Design and Learning in AI/ML and what are the issues?

A

Data is pre-processed to extract meaningful features and building an effective learning model. Issues are that the learning model may pick up spurious correlations, and have biased parameter selection.

171
Q

What is Performance Evaluation in AI/ML and what are the issues?

A

An evaluation of the system’s performance. The issues are that you can get unfair comparisons and biased results in the evaluation. For example a large class imbalance can lead to an overestimation of performance as it will more frequently guess that class.

172
Q

What is Deployment and Operation in AI/ML and what are the issues?

A

Deployment of the machine learning based solution. Issues can occur when it has only been evaluated in a laboratory setting, and the security has not been considered.

173
Q

How can AI/ML be used in networking?

A

Incorporating ML tools into a network can help predict traffic flows, generate smarter analytics, monitor network
health, tighten security measures and more.

174
Q

How can AI/ML be used in Cloud, Fog, and Edge Computing?

A

AI/ML optimizes Cloud, Fog, and Edge Computing by automating resource management, enabling real-time analytics, and enhancing decision-making for IoT devices, reducing latency and improving efficiency.