ANDROID PROGRAMMING - INTRODUCTION
Roberto Beraldi
ANDROID PROGRAMMING - INTRODUCTION Roberto Beraldi Web resources - - PowerPoint PPT Presentation
ANDROID PROGRAMMING - INTRODUCTION Roberto Beraldi Web resources (android) Code https://developer.android.com/guide/index.html http://www.vogella.com/tutorials/android.html
Roberto Beraldi
ment_Essentials
id.pdf
components:
application software with assistance from a middleware and operating system (i.e., Android, IOs)
system components responding to the baseband radio activities
end-user
source:
games, image processing, speech processing, internet browsing, text editing, etc.
when needed Most handheld applications are graphics-intensive
storage in the form of volatile SDRAM (1-2 GB) as well as non-volatile compact storage (10+ GB)
senses incoming signals and generates interrupts for the radio interface logic of the operating system
handshake), the incoming audio, video, and other data are processed by the modem processor
drivers to present the incoming data to the user through appropriate devices (display, speaker, etc.)
by the radio OS components from memory regions populated by the device drivers.
a video captured by the camera or a position information captured by the GPS device
modem transmitter hardware
reception and transmission
desktop one, with some specific difference. In particular
activated on demand
various environmental conditions.
rotational forces along three axes. This category includes accelerometers, gravity sensors, gyroscopes, and rotational vector sensors.
parameters, such as ambient air temperature and pressure, illumination, and humidity. This category includes barometers, photometers, and thermometers.
and start time of the received signal
are adjusted when the intersection of the spheres is not unique
Wi-Fi) to get an idea of where the device is, and make that available to apps via a "Location Services" API.
magnetic field that in turn bridges the physical space between the devices.
spectrum using less than 15mA of power to communicate data over distances that are usually far less than 10 cm.
transfer data using at speeds of 106Kb/s, 212Kb/s or 424Kb/s
cards, allowing users to perform transactions such as payment or ticketing.
inexpensive NFC tags embedded in labels or smart posters.
address, email, vCard, Trigger, e..g. turn on wifi and lunch this app)
exchange information in an ad hoc fashion.
secure channel
smartphones)
2003
device platform powered by the Linux kernel
including Linux kernel
system identity (Linux UID and GID)
exploit a permission-based security mechanism
Source: http://www.windows8core.com/windows-phone-losses-03- global-market-share-january-2015-increase-android/
See also: https://en.wikipedia.org/wiki/Android_version_history
fragments,…) support libraries were developed, so that such features were also available to older versions
method or widget are deprecated (always take a look at the official documentation)
The kernel provides preemptive multitasking ,low level core system services, like Hardware Abstraction Hardware Drivers Security Settings Support for Shared Libraries Network Stack
OS via a shell
ADB Client ADB Server Developer option’s debug USB enabled RSA key sent to the device must be acknowledged USB driver
Size Used Free Blksize
458.56M 132.00K 458.43M 4096
458.56M 12.00K 458.55M 4096
458.56M 0.00K 458.56M 4096
458.56M 0.00K 458.56M 4096
1.50G 688.06M 852.85M 4096
31.46M 4.02M 27.43M 4096
245.95M 4.04M 241.90M 4096
7.83M 4.14M 3.70M 4096
31.46M 11.95M 19.51M 4096
7.83M 4.02M 3.82M 4096
49.18M 5.84M 43.33M 4096
Surface Manager: Rendering of Views 2D graphics Open GL ES 2D and 3D graphics For Embedded systems Media Framework: Manage different codec, e.g. mp3,H.264,MPEG4,etc. Rendering of Font types In process DB Web engine (Bionic)C standard library Wrapped as Java libraries
See: https://source.android.com/devices/tech/dalvik/index.html
Intent) Access to the package manager and resource manager.
management classes.
canvases.
sensor.
communication on the device.
provides access to the device’s wireless stack.
databases such as those maintained by the calendar and contact applications.
handling and date and time manipulation.
layout managers, radio buttons etc.
Application framework: Set of services in the form of managers.
color settings and user interface layouts.
available on the device such as status and subscriber information.
receive updates about location changes.
Application layer
as the server process type
that provide the user applications with the information and capabilities necessary to work.
communicate and collaborate with each other.
them, which are written in C/C++.
see: http://en.miui.com/thread-15659-1-1.html
contacts, etc), and synchronize different devices
application
Sandbox: Linux UID=1234 Application: UID 1234 DVM Resources camera android.permission.CAMERA <uses-permission> ….
http://source.android.com/devices/tech/security/#the-application- sandbox
resources
permission
manifest file and grant (all) permissions at installation time
data or modify the code of other apps installed on the system.
that even if a vulnerable app is cracked via an exploit (or a malicious app manages to get itself installed on a device), it can't be used to gain further access to other software or data stored on the device.
Sandbox: Linux UID=1234 Application: UID 1234 DVM Resource camera Application: UID 1234 DVM
are my friends, …)
User Interface
Computation
UI runs in a thread Main thread it should respond fast
Data
its own User ID)
needs to be run
process’s lifetime is not directly controlled by the application (more on this soon)
may decide to kill the process