Saturday, March 4, 2017

Android custom ROM Introduction

                     please like & Subscribe our youtube channel

https://www.youtube.com/playlist?list=PLQzJncZC8PUwCTcniu_akzp0N0oDx7l1n




                             Introduction






Android is Linux based operating system which is Developed by Google for android devices with java interface. Android developed for touch screen Devices like mobile and tablet. Android is also an open source Alliance. It means each user can customized android firmware according to own requirement. Generally, we see each manufacture customized android operating system or firmware according to his requirement and provide different UI to the user like Samsung and LG device has the same operating system and same version but provide the different-different User interface. This operating system takes input through touch from the user and provides solution according to input provide by the user. Touch may be resistive or capacitive. Android is popular in technology because it provides low-cost and customizable operating system for high-tech devices.
     It is the pure open source operating system, For example, an application can call any of the phone's core functionality such as making calls, sending text messages, or using the camera.
Android is built on the open source Linux Kernel. It utilizes virtual machine (Dalvik virtual machine) that was designed for optimizing memory and hardware resources in a mobile environment.
Android does not differentiate between the phone's core applications or system applications and third-party applications. They can have equal access to a phone's capabilities.
Android provides the wide range of useful libraries and tools that can be used to build applications. For example, Android enables developers to Developed access the location of the device and allows devices to communicate with one another social applications.

Mobile OS/Firmware In Market

There are a lot of operating systems available in the current market and around 70% smartphone company uses the android operating system.


BADA- It is partially java based operating system and it was used in old Samsung non-smartphone devices.

Simbian - It is partially java based operating system and it was used in old Nokia non-smartphone devices.

J2ME- It is also java based pure operating system and it was used in old Nokia,samsung and china  non-smartphone Devices.

BLACKBERRY- It also java also based operating system but partially and it is used in blackberry devices.

IOS- It is objective c based operating system and it is used in apple device like iPhone and IPAD.

Windows- It is .net based operating system and is use in Nokia smartphone.


android- It is java based operating based operating system and it is used in around 70% device like HTC, LG, Samsung, Micromax, Lemon, Carbon, Lava

Types of Android Devices

There are a lot of android devices available in the market like Smartphone, tablet, TV stick (android TV), car(Android Auto), Digital Camera, glasses. These devices are very cheap and easy to use and change the lifestyle of the human being.



Android Features

Messaging

Android provide two types of messaging SMS and MMS.SMS provide text messaging android MMS provide image audio and Video Messaging. It also provides C2DM(cloud to device messaging). It also provides push notification from server to registered device.

Web browser

Android web browser provides open source web kit.

Voice Features

Android provide the voice-based feature for text, voice, and calling.

Multi-touch

Android also provide the multi-touch feature.

Multitasking

We can do multiple tasks at a time in android, for example, we can listen to music and chat together at same time.

Calling

Android include two types of calling features audio and video.

Multiple language support

Android support multiple languages by generalization.

Bluetooth and Wifi support

Android support Bluetooth and wifi which provide communication between deferent devices. Bluetooth sends text, audio and video files between two devices and wifi provide internet data connectivity.

Wifi Hotspot

Wi-Fi Hotspot connects internet data to another device.

Media

Android provide media support also like png, jpg, Gif, BMP (image) mp3, mp4, amr.wav (audio and video) formats.

Screen Capture and Screen Recording

Android provide screen capture facility in all version and screen recording in kit-Kat and upper version.

Data Storage

Android also provide data storage facility. There is three data storage facility in android device first one os storage which contains app and system file the second one is internal data storage it provides internal memory for data storage and the third one is external storage.

Sqlite

Sqlite use data storage in android application. It is a lightweight database.



 Android versions

 



Name
Version
API  level
Alfa
1.0
1
Beta
1.1
2
Cupcake
1.5
3
Donut
1.6
4
Éclair
2.0-2.1
5,6,7
Froyo
2.2-2.2.3
8
Gingerbread
2.3-2.3.7
9,10
Honeycomb
3.0-3.2.6
11,12,13
Ice Cream Sandwich
4.0-4.0.4
14,15
Jelly Bean
4.1-4.3.1
16,17,18
Kit Kat
4.4-4.4.4
19,20
Lollipop
5.0-5.1
21,22

 Android version features


An droid 1.0 ( Alfa and API level 1 )

  • Android market
  • Web browser
  • Camera
  • Home screen
  • Gmail
  • Google contacts
  • Google map
  • Google search
  • Google talk
  • SMS and MMS
  • Media player
  • wifi
  • Bluetooth
  • YouTube
  • Alarm clock
  • Calculator
  • Dialer
  • Gallery
  • Setting

Android 1.1 ( Beta and API 2 )

  • User business search on map
  • User can attach on messages

Android 1.5: ( cupcake and API 3 )

  • Support third party keyboard
  • Video recording
  • Pairing in Bluetooth
  • Copy and paste in web Brower
  • Use picture in contact
  • Attach date time in call log
  • Auto rotation
  • New stock boot animation
  • Ability to upload videos to YouTube

Android 1.6: ( Donut and API 4 )

  • Voice and text entry to search
  • Speech synthesis
  • Easier searching
  • Advance gallery and camera
  • Text to speech engine
  • Support for WVGA screen resolution
  • Expand gesture framework

Android 2.0-2.1: ( Eclair and API 5 , 6 , 7 )

  • Expand account sync
  • Bluetooth 2.1 support
  • Ability to tap a contact and select call  SMS and email
  • Improve camera like flash support, digital zoom, scene mode
  • Improve typing speed of virtual keyboard
  • Browser UI with thumbnail
  • Optimize hardware speed
  • Support more screen size and resolution
  • Improve Google map
  • Live wallpaper

Android 2.2-2.2.3: ( Froyo and API 8 )

  • Enhance speed and memory
  • Add javascript to browser
  • Add c2dm
  • Improved launcher app
  • Add wifi tethering and wifi hotspot
  • User can disable data access
  • Add multiple keyboard facility
  • Improved Bluetooth
  • Add password facility
  • Enhance app memory
  • Adobe flash support
  • Add zoom gesture with gallery


Android 2.3-2.3.7: ( Gingerbread and API 9,10 )

  • Updated user interface
  • Add WXGA screen resolution
  • Faster and improve virtual keyboard
  • Add copy/paste function
  • Support NFC
  • New download manager
  • Add front and back end camera
  • Improved power management
  • Improve native development code
  • Improve audio graphics and input
  • Increase performance
  • Add more sensors
  • Add new API
  • Add Google talk
  • Add lib support for peripheral device
  • Improve network performance
  • Improve Gmail app
  • Improve camera
  • Improve battery efficiency
  • Add Google wallet

Android 3.0-3.2.6: ( Honeycomb and API 11,12,13 )

  • Add new holographic user interface
  • Add system bar
  • Add action bar
  • Add multitasking
  • Redesign keyboard, fast typing
  • More function into copy/paste
  • Add multiple tabs in browser
  • New function in camera like focus flash zoom
  • Hardware acceleration
  • Support multiple core process
  • Add ability to encrypt data
  • Add secondary memory
  • Add recent app list
  • Resizable home screen
  • Support external keyboard
  • High-performance wifi lock
  • Improve hardware support
  • Ability to access app to sd card
  • Add new function to display
  • Improve android market
  • Improve Google book
  • Improve adobe flash

Android 4.0-4.0.4: ( Ice Cream Sandwich and API 14,15 )

  • Add holo interface
  • Separation of widget in a new tab
  • Improve visual voicemail
  • Pinch to zoom function in calendar
  • Add screenshot capture
  • Add lock screen
  • Improve copy paste
  • Improve voice integration
  • Add face lock feature
  • Enable and disable data
  • Ability to close recent app
  • Improve camera app
  • Built-in photo editor
  • New gallery layout
  • Add NFC
  • Hardware acceleration of the UI
  • Numerous bug fix and optimization
  • Improve to graphics, database,spell-checking
  • New API for developer
  • Improve calendar app
  • Improve camera app add QVGA
  • Better camera performance
  • Smooth screen rotation
  • Improve phone no reorganization


Android 4.1-4.3.1: ( Jelly Bean 16,17,18 )

  • Blue tooth low energy support
  • Add ability to transfer audio/video to Bluetooth
  • OpenGL support
  • Dial paid auto complete
  • Volume for incoming call
  • Rework camera UI
  • Smoother UI
  • Improve accessibility
  • Expandable notification
  • Ability to turn off notification
  • Shortcut and rearrange widget
  • Bluetooth data transfer for beam
  • Improve camera app
  • Multichannel audio
  • USB audio
  • Ability to add another launcher
  • Lock home screen rotation support
  • Lock screen improve
  • Notification power Control
  • Screensaver
  • Multiple user accounts
  • New clock app
  • Group messaging
  • Fixed Bluetooth audio streaming bug
  • Quick setting
  • New download notification
  • New alert for low battery
  • New gallery app animation
  • USB debug whitelist
  • Bugfix and improvement
  • Improve security
  • System-level support for geofencing and wifi scanning API
  • Add support more language
  • Change DRM API
  • Clock display in status bar

Android 4.4-4.4.4: ( Kit Kat and API 19,20 )

  • Improve clock app
  • Ability to app to trigger translucency
  • Ability to use app in immersive mode
  • Menu button always visible
  • Improve performance
  • Wireless printing
  • Improve web view
  • Expand notification listener service
  • New framework UI
  • Audio tunneling and audio monitoring
  • Screen recording feature
  • Native infrared blaster API
  • Bluetooth message access profile support
  • Improve autofocus
  • Better app compatibility
  • Camera app can load google+ photo
  • Bugfix
  • Refreshed dialer app interface
  • Release smart watches
  • UI updates for Google map navigation and alarm
  • Offline playback
  • GPS support

Android 5.0-5.1.1: ( Lollypop and API 21,22 )

  • Support 64 bit CPU
  • OpenGL ES 3.1
  • Add material design
  • Refreshed lock screen
  • Refreshed notification
  • Quick search
  • Lock screen with shortcut
  • Audio and video input with USB
  • The third party can read and modify sd card data
  • Recent app remembered after reboot
  • Web view receiver update through Google play
  • Add 15 new languages
  • flashlight style app include
  • add the smart lock
  • few bug fix
  • quick control on wifi and Bluetooth from setting
  • support multiple sim cards
  • device protection
  • high definition voice call
  • improve notification priority
  • fix memory leak issue


 Android  Architecture 




The Android operating system architecture is a stack of software components of applications, an operating system, run-time environment, middleware, services, and libraries. In this architecture, each layer communicates with another layer for execution of any process.

This is the android architecture, it has five layer and it work from bottom to top.


Android ROM Architecture
Android ROM Architecture

Application Layer

This is the most upper layer in android architecture. This layer contains all Applications of devices. There are two types of applications in android, first types are system applications like phone contact, SMS, call and second types are third party applications which are installed externally or from play store. System application cannot be Uninstall but Third party application can uninstall by a user from the device.

Application framework

This is the second layer of the android structure. This layer contains set of services which is required for android activity and reuses by other applications like that if we want to perform calling so we will have to need telephony manager service to perform this task. So there are lot of another services just like activity manager perform activity task and lifecycle task, window manager perform system UI, content provider manage shared set of data of device like contact and message, system view manage application widget, package manager manage all install application packages, Resource manager manage another resource like String, color, and layout, location manager manage map related functions, notification manager manage system notification like battery, message, location.

Libraries

This layer divides into two parts one is android libraries and second is android runtime. Libraries contain java based libraries and C/C++ libraries. Java libraries contain a lot of libraries.




Java libraries

android.app- this library has fully model of an android application.
Android.view-this library provide the user interface to the user.
android.widget-this library provide user interface component for an application like button, edit text etc.
android.webkit-this library contains all classes regarding web server.
android.os-this library contains all classes for os just like message passing between activity messaging.
android.media-this library contains media classes.
android.openGL- this library contains 3D graphic classes.
Android.provider- this library provides classes for the shared set of database or predefined database.
android.content- this library contains all classes to use transfer data from one activity to other activity.
android.database-this library contains all classes to use store data of any application.
android.graphics-this library contains all classes for graphic 2D and 3D.
android.hardware-this library contains all classes to interact with hardware like a sensor.
android.net-this library contains app classes for network programming.
android.util-this library contains all classes for string data conversion and collection framework.

C/C++ libraries

This library contains slandered libraries of C/C++. This libraries communicate between the android driver and android libraries because all drivers developed with C/C++ libraries. This library also used for NDK (native development kit).

Android Runtime

It is a type of JVM used in android devices to run apps and optimized for low processing power and low memory environments. Android runtime contains core libraries which communicate with the kernel. JVM provides the environment for multitasking execution. Each task executes directly by the kernel in android.

Linux kernel

The fourth layer of android architecture is Linux kernel which provides communication between hardware and software. The whole Android OS is built on top of the Linux Kernel. Kernel means the core of Operating System. Linux kernel that interacts with the hardware and it contains all the essential hardware drivers.
Drivers are programs that communicate with the hardware. For example, all devices have a Bluetooth hardware in it. Therefore the kernel must include a Bluetooth driver to communicate with the Bluetooth hardware.

Android drivers

This is the fifth layer of the android architecture. This layer provides all drivers which are necessary for android device. Android drivers communicate between hardware and Linux kernel. Drivers recognize the hardware and perform talk with software or we can say that it perform exactly what we want with hardware, for example, suppose we want to extend out device memory for this task we will need flash memory driver which recognize external memory then process to software.

Android hardware

This is the last layer of android architecture which contains device hardware. We can easily understand by this diagram

Flow of android execution
Flow of android execution
From above Diagram, we can easily understand that the execution of any task done from bottom to top. For example, supposes we want to perform any action on our device then firstly we will have to intact with device hardware by touchscreen or any other hardware. then screen recognize what action  you want to perform and hardware interact with the driver according to your requirement for example if you want to play music then will go to the audio driver or if want to use wifi it goes to wifi driver. Then driver interacts with libraries by Linux kernel then the process will be forward to Native libraries Because Native libraries used to develop android operating system files, then it forwards to java and android libraries to execute the process. java libraries contain core libraries android libraries predefined classes just like calling messaging etc. then finally application perform the task.

1 comment:

  1. Very well explained. This blog post is a complete Android Custom ROM Development tutorial. Definitely going to share this.

    ReplyDelete