Android overview Flashcards

1
Q

Android vs Apple

A
  • open source
  • can run on many devices
  • easy to inspect reverse and modify Android apps
  • side load permits to test developed apps
  • easy to jailbreak.
  • can be customized by vendors (Open source, problem of security patches)
    • widespread, more interesting for research purposes
  • security problems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Languages used to write android apps

A

1- Java
2- Kotlin
3- c/c++ (useful for low level task)

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

Android APIs are used for?

A
  • for apps to interact with the “external world” (via the API)
  • for the Android framework to interact with the Android app
  • > Many java API are part of Android APIs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Can android apps be executed in non-android devices?

A

No, they can only be executed in the Android framework (phisical device or emulator).

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

Android general architecture (from lower to higher)

A

1- Linux Kernel
2- Hardware Abstraction Layer (HAL) to interact with hardware and sensors
3- Android Runtime (supports android apps runtime execution) + Native C/C++ libraries
4- Java API Framework
5- System Apps (pre-installed)

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

Android framework APIs

A
  • many, differ from features but not base framework
  • old APIs are deprecated but not removed
  • backward compatible
  • identifyed by integer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

package name

A
  • each app has a package name “com.company.app”
  • unique identifier
  • two apps cannot have the same package name (both android and playstore)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Four main components types

A
  • Activity
  • Service
  • Broadcast Receiver
  • Content Provider
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Activity

A
  • entry point
  • has an UI
  • app could have many, but one must be chosen as launcher
  • external apps can interact with activity
  • other activities in same app can interact with activity
  • has a lifecycle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Service

A
  • no UI
  • generally executed in background (in some cases foreground)
  • cannot be launched with graphical launcher
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Content providers

A
  • databases
  • used to share data between apps
  • app can query and interact with data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Intents

A
  • applications can communicate with each other through intents
  • explicit (specifies components to communicate with)
  • implicit (no target, only action type)
  • broadcast intent
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Intent filter

A
  • declaration in manifest

* necessary if anactivity can receive a certain intent

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

Manifest file

A
  • fingerprint of the app
  • hall details and key informations
    • permissions
    • intent filters
  • XML file
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Important Android tools

A
  • Android Studio
  • adb
  • sdkmanager
  • avdmanager
  • compilation with gradlew from the terminal
  • app-debug.apk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly