1MAD Introduction
1MAD Introduction
Android Stack
Android Studio Installation
MOBILE APPLICATION DEVELOPMENT
WHAT IS ANDROID STUDIO?
The android runtime (art) relies on the linux kernel for underlying
functionalities such as threading and low-level memory management.
Using a Linux kernel allows Android to take advantage of key security
features and allows device manufacturers to develop hardware drivers for
a well-known kernel.
MOBILE APPLICATION DEVELOPMENT
HARDWARE ABSTRACTION LAYER (HAL)
Provides standard interfaces that expose device hardware capabilities to the higher-
level java api framework.
The HAL consists of multiple library modules, each of which implements an interface
for a specific type of hardware component, such as the camera or Bluetooth module.
When a framework API makes a call to access device hardware, the Android system
loads the library module for that hardware component.
MOBILE APPLICATION DEVELOPMENT
NATIVE C/C++ LIBRARIES
Many core android system components and services, such as art and hal, are built
from native code that require native libraries written in c and c++.
The android platform provides java framework apis to expose the functionality of
some of these native libraries to apps. for example, you can access opengl es through
the android framework’s java opengl api to add support for drawing and manipulating
2d and 3d graphics in your app.
If you are developing an app that requires c or c++ code, you can use the android ndk
to access some of these native platform libraries directly from your native code.
MOBILE APPLICATION DEVELOPMENT
ANDROID STACK/ARCHITECTURE.
NDK libraries: C and C++ programming languages
Surface Manager-drawing different layers of the screen
-manipulating pixels and bringing the images and the videos to relevant frames and screens
OpenGL ES-can be used by the camera and video recorders.
-Animations and more graphics.
SGL-two dimensional graphics
Media Framework-Audio player, image viewer, video player (play, pause, stop, loop, repeat,…)
SQLite-Database creation and manipulation
WebKit -this take care of your Browsers
MOBILE APPLICATION DEVELOPMENT
ANDROID STACK/ARCHITECTURE.
NDK libraries: C and C++ programming languages
Run Time Libraries:
Dalvik Virtual Machine – help smaller devices like cellphones to run applications in a
limited environment where there is less memory, less CPU capabilities, limited battery.
All codes here are in form of bytecode or jar file
MOBILE APPLICATION DEVELOPMENT
JAVA API FRAMEWORK
Every android feature is available to users through apis written in java
These APIs are the building blocks of Android application development.
These APIs include:
View System: used to build an app’s UI, including lists, grids, text boxes, buttons, and even an embeddable web
browser
A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
Notification Manager that enables all apps to display custom alerts in the status bar. E.g. missed call alerts, New
unread msgs,
Activity Manager that manages the lifecycle of apps and provides a common navigation back stack, allow users
to navigate through your application
Content Providers that enable apps to access data from other apps, such as the Contacts app, or to share their own
data. location access to GPS application.
MOBILE APPLICATION DEVELOPMENT
JAVA API FRAMEWORK
Package Manager – keeps track of how many applications are running in your
emulator and how many are running, dead,… -happen to be the brain of your
application. -Application Resources are managed by Package manager.
Telephony Manager – Call management, missed calls, dialed calls
Location Manager – Google maps, GPS, Sygic
MOBILE APPLICATION DEVELOPMENT
SYSTEM APPS
THREADS
Threads are a must to android app development
MOBILE APPLICATION DEVELOPMENT
LOG CAT