13/12/2020
IS457
Mobile Applications
Lecture 2
Mobile Framework
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
Android Platform
• ‘android’ signifies “being human”.
• Open, free designed primarily for touch screen devices.
• Designed in 2003, by Rich Miner, Nick Sears, and Chris White, in Palo Alto,
California.
• In 2005, Android was purchased by Google.
• Operating system based on the Linux 2.6 kernel
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
1
13/12/2020
Android Framework
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
2
13/12/2020
Android Framework
• Linux kernel
• The foundation of the Android platform is the Linux kernel.
• 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.
• Where does Android platform security come from?
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
Android Framework
• Hardware Abstraction Layer (HAL)
• Provides standard interfaces that expose device hardware capabilities to the
higher-level Java API framework.
• 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.
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
3
13/12/2020
Android Framework
• Android Native Libraries
• All are written in C/C++
• Media Framework: media library and media codes (playback of audio and
video media)
• OpenMAX Al: performing multimedia output work with Android NDK.
• SQLite: database support
• OpenGL | ES: graphics libraries for 2D and 3D graphics
• Libc: C++ library support work with Android NDK.
• WebKit: kernel for web browser and Internet security.
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
Android Framework
• Android Runtime
• Android Runtime (ART): To run multiple virtual machines on low-memory
devices.
• Prior to Android version 5.0 (API level 21), Dalvik was the Android runtime.
If your app runs well on ART, then it should work on Dalvik as well, but the
reverse may not be true.
• There are two approaches to test applications: virtual machine and the real
device. Which one is better and why?
• Core Libraries: provides the functionality of the Java Programming
Language.
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
4
13/12/2020
Android Framework
• Java API Framework
• Written in …………………?
• View System: to build an app’s UI, including lists, grids, text boxes, buttons.
• 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.
• Activity Manager: that manages the lifecycle of apps and provides a
common navigation back stack.
• Content Providers: that enable apps to access data from other apps, such as the
Contacts app, or to share their own data. Any other examples?
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
Android Framework
• System Apps
• Core apps included with the platform have no special status among the apps
the user chooses to install.
• email, SMS messaging, calendars, internet browsing, contacts, and more.
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
5
13/12/2020
Android Versions
• Alpha and beta were the earliest versions of Android. Then, when Google
bought Android, it was decided to use a code name for each new version based
on dessert items in alphabetical order.
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
Android SDK
• Android Software Development Kit (SDK) is a set of development tools that
allows developers to build, test, and debug applications for the Android
platform.
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
6
13/12/2020
Android NDK
• The Native Development Kit (NDK) is a set of tools that allows you to use C
and C++ code with Android.
• Provides platform libraries you can use to manage native activities and access
physical device components, such as sensors and touch input.
• Not be appropriate for most novice Android programmers.
• Squeeze extra performance out of a device to achieve low latency or run
computationally intensive applications, such as games or physics simulations.
• Examples apps use NDK
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
SDK and NDK
• Similarities…..
• Differences…..
• Programming language
• Performance
• Features
COMPUTER INFORMATION SYSTEM DEPARTMENT ASS.LEC. ZAINAB H. ALFAYEZ
7