Notes : Introduction to Android

بِسْمِ اللّهِ الرَّحْمَنِ الرَّحِيْمِ
اللهم صل على محمد وآل محمد
السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُه

  • Android is an open source, Linux-based software stack created for a wide array of devices.

System Applications
  • Applications are the top layerin the Android architecture and this is where our apps are going to fit into.
  • Pre-installed apps in every device > SMS client app, dialer, web browser & contact manager.
Java API Framework
  • These are the blocks that our apps directly interact with.
  • The entire feature-set of Android-OS is available through APIs written in the Java language.
  • These APIs form the building blocks that needs us to create Android apps by simplifying the reuse of core, modular system components and services, which include Resource Manager, Notification Manager, Location Manager, Activity Manager, Content Providers & Telephony Manager.
Resource Manager
  • Providing access to non-code resources such as localized strings, graphics and layout files.
Notification Manager
  • Enables all apps to display custom alerts in the status bar.
Location Manager
  • Location management, using GPS or cell tower.
Activity Manager
  • Manages the lifecycle of apps and provides a common navigation back stack.
Content Providers
  • Manage data sharing between apps
Telephony Manager
  • Provides APIs for monitoring the basic phone info such as the network type & connection state, plus utilities for manipulating phone number strings.
 Dalvik Virtual Machine
  • Type of JVM used in android devices to run apps and is optimized for low processing power and low memory environments.
  • DVM doesn't run .class files, it runs .dex files instead.
  • .dex files are built from .class file at the time of compilation and provides higher efficiency in low resource environments.
  • All apk's basic source code is in Java.
  • When build, .java > .class > (dxtool convert .class to) .classes.dex
Android Runtime (ART)
  • In Lollipop DVM has been completely replaced by ART.
  • ART has Ahead of Time (AOT) compilation and improved garbage collection which boost the performance of apps significantly.
  • ART improves overall execution efficiency & reduces power consumption results to improved battery autonomy on mobile devices.
Native C/C++ Libraries
  • Written in C or C++ language and are specific for a particular hardware.
  • Media Framework > provides different media codecs allowing the recording and playback of different media formats.
  • OpenMAX AL > Android native multimedia handling is based on Khronos Group OpenMAX AL 1.0.1 API
  • OpenGL ES > Used to render 2D or 3D graphics content to the screen.
  • WebKit > browser engine used to display HTML content.
Hardware Abstraction Layer (HAL)
  • A layer of programming that allows a computer operating system to interact with a hardware device at a general or abstract level rather than at a detailed hardware level.
  • Provides standard interfaces that expose device hardware capabilities to the higher level Java API framework.
Linux Kernel
  • Interacts with the hardware and contains all the essential hardware drivers.
  • Drivers are programs that control and communicate with the hardware.
  • Also acts as an abstraction layer between hardware and other software layers.
اللهم صل على محمد وآل محمد
(Allahumma salli 'ala Muhammad wa ali Muhammad)
سُبْحَانَ اللّهِ وَ بِحَمْدِهِ ، سُبْحَانَ اللّهِ الْعَظِيمِ
(SubhanAllahi wa biHamdihi, SubhanAllahil adzim)
سبحانك اللهم وبحمدك أشهد ان لا إله إلا أنت أستغفرك وآتوب إليك
(Subhanakallahumma wabihamdika asyhadu allaailaaha illa anta astaghfiruka wa atuubu ilaika)

Post a Comment