6
CHAPTER 1: System
Handling running virtual devices can also be done by various command-line tools; see
Chapter
18
for more information.
The SDK
The software development kit (SDK) is, in contrast to Android Studio, a loosely coupled
selection of tools that are either essential for Android development
and as such directly
used by Android Studio or at least helpful for a couple of development tasks. They can all be
started from within a shell and come with or without their own GUI.
In case you don’t know where the SDK was installed during the installation of Android
Studio, you can easily ask Android Studio: select
File
➤
Project Structure
➤
SDK location
from the menu.
The command-line tools that are part of the SDK are described in Chapter
18
.
Caution
Virtual devices do not emulate all hardware supported by real devices. Namely, in the
first quarter of 2018, the following are not supported:
WiFi before API level 25
Bluetooth
NFC
SD card eject and insert
Headphones
attached to the device
USB
You must thus take precautions inside your app for these not to be present if you want to use the
emulator.
7
© Peter Späth 2018
P. Späth,
Pro Android with Kotlin
,
https://doi.org/10.1007/978-1-4842-3820-2_2
Chapter
2
Application
An Android app consists of components such as
activities
,
services
,
broadcast receivers
,
and
content providers
, as shown in Figure
2-1
. Activities are for interacting with device
users, services are for program parts that run without
a dedicated user interface, broadcast
receivers listen for standardized messages from other apps and components, and content
providers allow other apps and components to access a certain
amount and kind of data
provided by a component.
Figure 2-1.
An app in the Android OS
Components get started by the
Android Runtime
, or execution engine if you like, either
by itself or on behalf of other components that create start triggers.
When a component
gets started depends on its type and the meta-information given to it. At the end of the
lifecycle, all running components are subject to removal from the process execution list
either because they have finished their work or because the Android OS has decided that