I. Android Overview
1.1 Introduction
Android is a Linux-based free and open source operating system. It is mainly used for mobile devices, such as smartphones, tablets, TVs, and wearables, led and developed by Google and the Open Mobile Alliance.
The Android operating system was originally developed by Andy Rubin, which mainly supports mobile phones. Google launched its source code for Android in August 2005, by Google's takeover of an Apache open source license.
The first Android smartphone was released in October 2008.
1.2 Android version
Google changed its naming convention to use dessert as the code name for their system version. The dessert nomenclature began when Android 1.5 was released. The size of the dessert represented as each version becomes larger, and then follows the 26-letter sequence:
Android Version number |
Version Code |
Chinese |
API version |
Linux Kernel version |
1.5 |
Cupcake |
Paper Cupcakes |
3 |
2.6.27 |
1.6 |
Donut |
Donuts |
4 |
2.6.29 |
2.0/2.1 |
Éclair |
Muffins |
5/6/7 |
2.6.29 |
2.2 |
Froyo |
Frozen yogurt |
8 |
2.6.32 |
2.3 |
Gingerbread |
Ginger Cake |
10 |
2.6.35 |
3.0/3.1/3.2 |
Honeycomb |
Hive |
13 |
2.6.36 |
4.0 |
Ice Cream Sandwich |
Ice Cream Sandwich |
15 |
3.0.1 |
4.1/4.2/4.3 |
Jelly Bean |
Jelly Bean |
16/17/18 |
3.4.0 |
4.4 |
KitKat |
KitKat |
19 |
3.4.0 |
5.0 |
Lollipop |
Candy bar |
21st |
3.4.0 |
Current usage rates for each version:
1.3 Android Architecture
Android itself is a set of software stacks (software stack), or "Software overlay Architecture", which is divided into three layers: operating systems, middleware, applications.
Android4.1 provides core system services based on the Linux Kernel 3.4.0. For example: Security, memory management, process management, network stack, drive model. Linux kernel also acts as an abstraction layer between hardware and software, which hides specific hardware details and provides a unified service for the upper layer.
Android contains a collection of core libraries that provide most of the functionality available in the core class library of the Java programming language. Each Android application is an instance of a Dalvik virtual machine that runs in their own process. Dalvik virtual machines are designed to efficiently run multiple virtual machines on a single device. Dalvik virtual machine executable file format is. dex, the DEX format is a compression format designed for Dalvik and is suitable for systems with limited memory and processor speed. Dalvik virtual machines rely on the Linux kernel to provide basic functionality, such as threading and underlying memory management.
- Libraries
- Android consists of a collection of C + + libraries that are used by various components of the Android system. These features are exposed to developers through the Android application framework (application framework). Some of the core libraries are listed below:
- System C Library-BSD derivative of standard C system library (LIBC), tuned to embedded Linux based devices
- Media Library-Opencore based on PacketVideo. These libraries support the playback and recording of many popular audio and video formats, as well as still image files, including MPEG4, H, MP3, AAC, AMR, JPG, PNG
- Interface Management--manage access to display subsystems and seamlessly combine multiple applications in two-and three-dimensional graphics layers
- libwebcore--a new web browser engine that drives Android browsers and embedded web views
- sgl--Basic 2D Graphics engine
- 3D Library--based on the implementation of OpenGL ES 1.0 APIs. Library uses hardware 3D acceleration or contains highly optimized 3D software gratings
- freetype--bitmap and Vector font rendering
- sqlite--powerful and lightweight relational database engine that can be used by all applications
By providing an open development platform, developers can fully use the framework APIs used by the core applications. The architecture of an application is designed to simplify the reuse of components, and any application can publish his functionality and any other application can use these features (subject to the security restrictions enforced by the framework). All applications are actually a set of services and systems, including:
- View--a rich, extensible collection of views that can be used to build an application. Includes lists, grids, text boxes, buttons, and even inline web browsers
- Content Providers-Enables applications to access data from other applications (such as newsletters) or share their own data
- Resource Manager (Resource Manager)-provides access to non-code resources such as localized strings, graphics, and layout files
- Notification Manager (Notification Manager)--Enables all applications to display a custom warning in the status bar
- Activity Manager-manages the application lifecycle, providing a common navigation fallback feature
Android assembles a collection of core applications, including email clients, SMS programs, calendars, maps, browsers, contacts, and other settings. All applications are written in the Java programming language.
the following article records Android Introduction and source code compilation---Ubuntu installation and setup.
Android Introduction and source code compilation (a)