Android

Mobile operating system developed by Google
open 4 entries with the same name
Collection
zero Useful+1
zero
Android is based on Linux Kernel (excluding GNU Freedom and Open Source Mobile operating system. Mainly used for Mobile Devices , such as Intelligent mobile phone and tablet PC , by the United States Google Company and Open Mobile Alliance Leadership and development. The Android operating system was originally developed by Andy Rubin Development, mainly supporting mobile phones. August 2005 by Google Capital injection for acquisition. In November 2007, Google and 84 hardware manufacturers, software developers and telecom operators formed an open mobile phone alliance to jointly develop and improve the Android system. subsequently Google with Apache free use And released Android's source code The first Android smartphone was released in October 2008. Android has gradually expanded to tablet computers and other fields, such as TV Digital camera , game console Intelligent Watch Etc. In the first quarter of 2011, Android market share Exceed for the first time Saipan system , ranking first in the world. In the fourth quarter of 2013, the global market share of Android phones reached 78.1%. September 24, 2013 Google Developed operating system Android is celebrating its 5th birthday, and the number of devices using this system has reached 1 billion worldwide.
On February 15, 2024, the first developer preview version of Android 15 will be released. [30]
Software name
Android
Online time
September 23, 2008
Software language
C/C++ (ground floor) Java Kotlin Etc. (application layer)
Software version
Android 15 (latest version)
founder
Andy Rubin Rich Miner [28] Nick Sears [28] Chris White [28]
System family
Unix like system Linux
Kernel Type
Macro kernel Linux kernel
Software license
Apache License GPL etc.

System Introduction

Announce
edit
The original meaning of Android is "robot", which is also Google Announced on November 5, 2007 based on Linux The name of the open source mobile operating system of the platform, which is composed of operating system middleware user interface and Application software form.
The word Android first appeared in France Science fiction published by Auguste Villiers de l'Isle Adam in 1886《 LEve Future 》( L'ève future )Medium. He named the machine that looks like a person Android.
The Android logo was designed by Ascender Company and was born in 2010. Its design inspiration came from the Graphical symbols So Brock drew a simple robot, its body is like a tin can, and there are two more on its head antenna The Android robot was born. The text in it uses the font called "Droid" specially produced by Ascender Company. Android is a green robot, and green is also the symbol of Android. PMS 376C and RGB It is drawn in hexadecimal # A4C639, which is the brand symbol of Android operating system. Sometimes, they also use plain text logos.
July 2012 American Science and Technology Blog Site BusinessInsider The ten most important electronic products in the 21st century, Android operating system and iPhone Wait to be on the list.
(Android logo related photo album Image source:)

development history

Announce
edit
In October 2003, Andy Rubin , Rich Miner, Nick Sears and Chris White founded the Android company and formed the Android team. [28]
On August 17, 2005, Google Low profile acquisition of high-tech enterprise Android and its team, which has been established for only 22 months. Andy Rubin Become the vice president of engineering department of Google, and continue to be responsible for the Android project.
On November 5, 2007, Google The company officially demonstrated the operating system called Android to the outside world, and on that day Google announced the establishment of a global alliance organization, which consists of 34 mobile phones manufacturer , Software Developers Telecom operators And chip manufacturers, and 84 hardware manufacturers, software developers and telecom operators Open Handset Alliance Open Handset Alliance )To jointly develop and improve the Android system. This alliance will support the Mobile phone operating system And applications, Google Apache Free Admission free use And released Android's source code [1]
In 2008, at the Google I/O Conference, Google proposed the Android HAL architecture diagram. On August 18 of the same year, Android obtained Federal Communications Commission (FCC) approval. In September 2008, Google officially released Android 1.0 System, which is also the earliest version of Android system.
In April 2009, Google officially launched Android 1.5 From Android 1.5, Google began to name the Android version as Dessert, and Android 1.5 as Cupcake Cup Cake )。 This system has greatly improved compared with Android 1.0.
In September 2009, Google released Android 1.6 Of Official edition And launched a mobile phone with Android 1.6 official version HTC Hero (G3), with its excellent appearance design and the new Android 1.6 operating system, HTC Hero (G3) became the most popular mobile phone in the world at that time. Android 1.6 also has an interesting dessert name, which is called Donut( doughnut )。
In February 2010, Linux kernel Developer Greg Kroah Hartman brings Android's Driver from Linux Removed from the "staging tree" of the kernel, the mainstream of Android and Linux development will diverge from each other. In May of the same year, Google officially released Android 2.2 Operating system. Google names Android 2.2 as Froyo , translated as Froyo
In October 2010, Google announced Android system Reached the first milepost , i.e Electronic market Get official on Digital authentication The number of Android applications has reached 100000, and the application of Android system has grown rapidly. In December 2010, Google officially released Android 2.3 operating system Gingerbread Gingerbread )。
In January 2011, Google said that Android devices are new every day Number of users It has reached 300000. By July 2011, the number had grown to 550000. The total number of users of Android system devices has reached 135 million. Android system has become Intelligent mobile phone The system with the highest domain share.
On August 2, 2011, Android phones have occupied the world Smart machine 48% of the market, and Asia Pacific The market occupies a dominant position, ending Symbian( Saipan system )And ranked first in the world.
In September 2011, the number of applications of Android system has reached 480000, and the share of Android system in the smartphone market has reached 43%. Continue to rank first in mobile operating systems. Google will release new Android 4.0 Operating system, which is named by Google Ice Cream Sandwich ice cream sandwich )。
January 6, 2012, Google Android Market 100000 developers have launched more than 400000 active applications, most of which application program It is free of charge. The Android Market App Store catalog broke the 400000 benchmark at the weekend of the first week of the New Year, just four months from breaking 300000 apps. In early 2011, it took four months for the Android Market to grow from 200000 to 300000 applications.
On November 1, 2013, Android 4.4 was officially released. In terms of specific functions, Android 4.4 provides various practical small functions. The new Android system is more intelligent and more Emoji Emoticons, UI Is more modern, such as the new Hello iOS 7 Translucency effect.
In the first quarter of 2014, the Android platform accounted for all Mobile advertising 42.8% of the traffic source, exceeding for the first time iOS But the operating income is lower than iOS.
In 2015, network security Zimpenium researchers warn that Android is "fatal" Security vulnerabilities The hacker can completely control the mobile phone without the user's knowledge by sending a multimedia message [2]
In October 2018, Google said that it would stop the Nearby Notifications service in the Android system on December 6, 2018, because Android users received too many nearby businesses Marketing Information Of Spam [3]
In March 2020, Google's Android security announcement mentioned that new updates have been provided CVE -2020-0069 United Development Section A Serious Security Vulnerability of Chip [4]
February 2022, Android 12L Beta 3 is released, which supports Pixel 6 and Pixel 6 Pro for the first time, as well as newer testing environment , defect repair and optimization. [10]
In February 2022, Google announced the launch of Android privacy sandbox, aiming to introduce updates and privacy Advertising solutions to limit Third party institutions Share user information without damaging Advertisers Short term benefits. Google plans to follow Beta Publish privacy sandbox together Developer Preview [12]
March 27, 2022, according to Russian Satellite News Agency It is reported that due to US sanctions, Google has stopped authenticating Android BQ Russia And the company will turn to China Huawei Hongmeng system. [15]
Beijing Time In the afternoon of May 6, 2022, it is reported that May 5 is World Password Day, Apple Google and Microsoft In a joint plan, the three technology giants announced that they would commit to creating password free login on all mobile, desktop and browser platforms under their control in the next year System. [16]
In 2022, Android will launch an app similar to Lingdong Island—— dynamicSpot [21] On October 3, the Android Smart Island App Downloads Break 1 million yuan. [22] On October 13, Google announced today that Android and Chrome The browser brings preliminary passkey support. [23]
On April 4, 2023, Google released its Android security announcement in April 2023. As usual, Google has released two patch levels, 2023-04-01 for Android systems and frameworks, and 2023-04-05 includes security patches from manufacturers. [27]
On January 12, 2024, Google announced to reshape the Android brand in September 2023. One of the highlights is that the green robot icon will become a 3D three-dimensional design; At CES 2024, Google named the new robot "The Bot". [29]
On April 30, 2024, IT House reported that the developer, Mishaal Rahman, published a blog post, saying that Google plans to introduce new features in Android 15, which can control the media output of mobile phones through the paired Pixel Watch smart watch. [31]
On May 16, 2024, Google released a press release announcing the launch of a series of new functions to protect users' devices and data security after Android phones are lost or stolen, and help thwart thieves' attempts to resell devices or profit from device data. [32]

Release version

Announce
edit

Test version

Logo of Android versions
Before the official release of Android, there were two Internal test Version, and named it after the famous robot name, they are Astro Boy (Android 1.0 Beta) and Clockwork Robot (Android 1.0). Later, due to the fact that copyright Problem, Google changed its naming rule to use dessert as the code name of their system version.
Dessert naming began when Android 1.5 was released. The size of desserts represented by each version becomes larger and larger, in alphabetical order: Cup Cake (Cupcake, Android 1.5), doughnuts (Donut, Android 1.6), English Muffin Lightning Puff )(Eclair, Android 2.0/2.1), Froyo (Froyo,Android 2.2), Gingerbread (Gingerbread,Android 2.3), hive Honeycomb Android 3.0 /3.1/3.2), ice cream sandwich (Ice Cream Sandwich,Android 4.0), Jelly bean Jelly Bean Android4.1/4.2/4.3), KitKat, Android 4.4 ), Lollipop, Android 5.0 /5.1), spun sugar Marshmallow Android 6.0 ), nougat, Android 7.0 /7.1), Oreo, Android 8.0 /8.1), Pie, Android 9.0 [5-6]
Starting from Android 10, Android will no longer be based on Delicious snacks Or dessert in alphabetical order, but directly Version No Naming, like Microsoft Windows and iOS equally [7] , but inside Development code Still the dessert name [24-26] Android 10 (Quince Tart, quince fruit tower, Android Q ), Android 11 Red Velvet Cake, Red velvet cake ,Android R),Android 12(Snow Cone, Shaved ice ,Android S), Android 13 (Tiramisu, Tiramisu ,Android T),Android 14(Upside Down Cake, Upside-Down Cake ,Android U),Android 15(Vanilla Ice Cream, Vanilla Ice Cream ,Android V)。

Android 1.0 Beta

Android Astro Boy released in 2007.

Android 1.0

In September 2008, Google released Android 1.0 [1]

Android 1.5

Main term: Android 1.5
Cupcake( Cup Cake ): Issued on April 30, 2009.
The main updates are as follows:
Shoot/play movies and support uploading to Youtube support stereo Bluetooth headset, while improving the automatic pairing performance; Latest adoption WebKit Technical browser, supporting copy/paste and search in the page; GPS Greatly improved performance; Provide screen virtual keyboard; Home screen added music player And photo frame widgets The application automatically rotates with the phone; SMS Gmail calendar , browser's User interface Significant improvement, for example, Gmail can delete messages in batches; camera Starting speed Faster, pictures can be directly uploaded to Picasa Caller photo display.

Android 1.6

Main term: Android 1.6
Donut: released on September 15, 2009.
The main updates are as follows:
Redesigned Android Market Gesture; support CDMA Network; Text to speech System (Text to Speech); Quick search box; New photo interface; Check the application power consumption; support Virtual Private Network VPN ); Support more Screen resolution Support OpenCore2 media engine; Add easy-to-use plug-ins for people with visual or hearing difficulties.

Android 2.1

Main term: Android 2.1
Eclair: released on October 26, 2009.
Major updates:
Optimize hardware speed; "Car Home" program; Support more screen resolutions; Improved user interface New browser user interface and HTML5 support; New contact list; Better white/black background ratio; improvement Google Maps 3.1.2; Microsoft support Exchange Support for built-in camera flash lamp support digital zoom Improved virtual keyboard; support Bluetooth 2.1 support Dynamic Desktop Design.

Android 2.2

Main term: Android 2.2
Froyo Issued on May 20, 2010.
Major updates:
The overall performance is greatly improved; 3G Network sharing Function; Flash Support; App2sd Function; New software store; More web applications API Interface development.

Android 2.3

Main term: Android 2.3
Gingerbread: released on December 7, 2010.
Major updates:
Added new garbage collection and optimization processing events; Native code can directly access input and a sensor Events, EGL/OpenGLES OpenSL ES New management window and life cycle framework; support VP8 and WebM Video format , provide AAC and AMR Wideband encoding, providing new audio Effector Support front camera SIP /VOIP and NFC Near-field communication ); Simplify the interface and improve the speed; Faster and more intuitive text input; One click text selection and copy/paste; Improved Power management system New applications management style

Android 3.0

Main term: Android 3.0
Honeycomb: released on February 3, 2011.
Major updates:
Optimize for large flat screen; Newly designed UI enhancement Web browsing Function; In app purchases function.

Android 3.1

Main term: Android 3.1
Honeycomb: released on May 11, 2011.
Major updates:
Optimized Gmail mail box Full support Google Maps Re merge Android mobile system with tablet system to facilitate developers; Task Manager Scrollable, support USB input device (keyboard, mouse, etc.); support Google TV . It can support XBOX 360 wireless handle The changes supported by widgets make it easier to customize screen widget plug-ins.

Android 3.2

Main term: Android 3.2
Honeycomb: released on July 13, 2011.
Major updates:
support SD card Supports 7-inch tablet and high pass Processor; The desktop widget zooms freely.

Android 4.0

Main term: Android 4.0
Ice Cream Sandwich: At 10:00 am on October 19, 2011, Google And Samsung Jointly in Hong Kong, China Hold a press conference to announce Android 4.0 system information
The version is mainly updated as follows:
New UI; all-new Chrome Lite Browser, offline reading, 16 tabs, invisible browsing mode, etc; screenshot Function; More powerful pictures Editing function Its own photo application is comparable Instagram , you can add a filter, a picture frame, 360 degrees Panoramic shooting , photos can also be sorted according to location; Gmail adds gesture and offline search functions to make the UI more powerful; New function People: with contact photos as the core, the interface focuses on sliding rather than clicking, integrating Twitter Linkedin Google+ And other communication tools. It is expected to support user-defined addition Third party services New traffic management tool , you can view the traffic generated by each application, limit the use of traffic, and automatically disconnect the network after reaching the set standard.

Android 4.1

Main term: Android 4.1
Jelly Bean Issued on June 28, 2012.
New features:
Faster, smoother and more responsive; Special effect animation Frame rate It is increased to 60 fps, with a triple buffer; Enhanced notification bar; New search; Search will bring new UI Intelligent voice search and Google Now Three new functions; The desktop plug-in automatically resizes; Strengthen barrier free operation; Language and typewriting Expansion; New input types and functions; New connection type.

Android 4.2

Android 4.2 Jelly Bean Native System User Interface
Main term: Android 4.2
Jelly Bean Issued on October 30, 2012.
Android 4.2 continues to use the name of "jelly bean" to reflect that the latest operating system and Android 4.1 Similarity However, Android 4.2 has introduced some major new features, as follows:
Photo Sphere Panoramic photography Function; Keyboard gesture input function; improvement Lock screen Functions, including support for desktop pendant and direct opening of camera when the screen is locked; Extensible notifications allow users to open applications directly; Gmail Mail can be zoomed; Daydream Screen Saver The user can zoom in the whole display screen by clicking three times, and can rotate and zoom with two fingers, as well as voice output and gesture mode navigation functions specially designed for blind users; support Miracast Wireless display sharing function; Google Now now allows users to use Gamail as a new data sources , such as improved flight tracking function, hotel and restaurant reservation function, music and movie recommendation function, etc.

Android 4.3

Main term: Android 4.3
Jelly Bean Issued on July 25, 2013.

Android 4.4

Main term: Android 4.4
KitKat: released in the second half of 2013.
In the early morning of September 4, 2013, Google announced a new version of Android Android 4.4 KitKat (Qiqiao Chocolate) was officially released on November 1, 2013. The new 4.4 system has more integrated its own services, and strives to prevent the fragmentation and decentralization of Android system.

Android 5.0

Main term: Android 5.0
Lollipop: released on June 26, 2014.
Android 5.0 uses a new Material Design Design style. You can see some new designs from the pictures. From the picture, this set a design chart For Android system desktop icon And the transparency of the components, and various desktop widgets can also be stacked. Although adjusting the transparency of desktop components is not a new feature for Android, it adds transparency improvements. The interface adds colorful colors and smooth animation effects, presenting a fresh style. The purpose of adopting this design is to unify the appearance and use experience of Android devices, whether mobile phones, tablets or Multimedia player

Android 5.1

Main term: Android 5.1
Lollipop: released on March 10, 2015.
Android 5.1 new system is more stable than Android 5.0, and supports multiple SIM card , strengthened the device protection mechanism and enhanced the WiFi capability of the device.

Android 6.0

Main term: Android 6.0
Marshmallow: released on September 30, 2015.
The overall design style of the new system remains flat Material Design Style. Android 6.0 has greatly optimized the software experience and running performance. According to the test, Android 6.0 can make the device Endurance Increase by 30%.

Android 7.0

Main term: Android 7.0
Nougat: released on August 22, 2016 [6]
Android 7.0 provides new functions to improve performance production efficiency And security. Test your application with new system behavior to save power and memory. Make full use of multi window UI, direct reply notification and other functions.

Android 7.1

Main term: Android 7.1
Nougat: released on December 5, 2016.
The update introduces various new functions for users and developers.
You can use the new Shortcuts The function brings users directly from the initiator into the key operations of the application. The user only needs to long press the launcher icon of the application to display the shortcut of the application, and then click the shortcut to jump to the relevant operation. These shortcuts are a good way to attract users, and they allow you to demonstrate the application's functionality even before the user starts the application.
Each shortcut refers to an intention. Each intention will start a specific action or task, and you can create a shortcut for any action that can be expressed as an intention. For example, you can create intentions for sending new SMS messages, making reservations, playing videos, continuing games, loading map locations, and so on.
You can use the application program Shortcuts added to APK In resource file To create a shortcut for it statically in the Runtime Add them dynamically. Static shortcut is an ideal choice for common operations. Dynamic shortcut allows you to use it according to user preferences, behavior, location, etc highlight Operation. Up to five per application Shortcut key Note, however, that some launcher applications do not display all shortcuts that you have registered for the application.
After adding shortcuts to your app, you can use them on any initiator that supports them, such as Pixel initiator (the default initiator on Pixel devices), Now initiator (the default initiator on Nexus devices), and other initiators that provide support.
Screenshot
Any application can create shortcuts, and any initiator application can add support for shortcuts. Android 7.1 provides a API For the application to register shortcuts and for the launcher to read registered shortcuts.
7.1 Screenshot

Android 8.0

Android 8.0 Oreo
Main term: Android 8.0
Oreo: released on August 22, 2017.
More intelligent, faster, and more powerful. Your favorite new Android version is a cookie loved by people all over the world.
New features: Picture in Picture Notification dot Notification channel Auto fill frame Auto adjust the size of TextView Downloadable font Adaptive icon Shortcut Fixed wide gamut Color WebView function Java 8 language API Media function Multi display support Neural Networks API Android Oreo (Go version)

Android 8.1

Android 8.1 Features and APIs
Android 8.1 (API level 27) introduces various new functions for users and developers.
Android 8.1 Go is a project aimed at network user Plans to optimize the Android experience. Since Android 8.1, we have been making Android an ideal platform for entry-level devices. Functions in Android Oreo (Go version) configuration include:
  • Memory optimization. The memory usage of the entire platform is improved to ensure that applications can run efficiently on devices with less than 1GB of memory.
  • Flexible positioning options. New hardware function constants allow you to Google Play Distribute applications to normal or low memory devices.
  • Google Play。 Although all applications can be loaded Android Oreo (Go version), but Google Play will still build products for billions of users guide Show applications that have been specially optimized by developers to provide an excellent experience for billions of users.
We updated the guide of "creating products for billions of users" and added guidance on how to optimize applications for devices equipped with Android Oreo (Go version). For most developers, optimize the existing APK, or use Google Play The multi APK function of is the best way to prepare for devices equipped with Android Oreo (Go version) by positioning an APK version to a low memory device. Please note that no matter what device your audience uses, it is good for them to make the application more slim and efficient.

Android 9.0

Android 9.0 Pie
Main term: Android 9.0
Pie: released on May 9, 2018.
The style of the notice bar has changed, and more circles have been added to the overall design.
Android 9 makes use of AI technology so that your phone can help you more. Now, mobile phones become smarter, faster, and can be adjusted as you use them.

Android 10

Android 10
Main term: Android 10
Issued on September 4, 2019.
Starting from Android 10, Google began to provide System level Of Dark Mode , most interfaces and buttons such as pre installed applications, drawers, setting menus and Google Feed information flow will become mainly black, just like you macOS Mojave See the same dark interface in. New protection measures are supported to ensure user privacy and security. With high performance Codec Better Biometric technology , faster application startup speed Vulkan 1.1. NNAPI 1.2, foldable device, 5G and other more function extensions.
Google announced a major change in the Android system, not only with a new logo, but also with a new naming method Official name It's Android 10 [8]

Android 11

Android 11 LOGO
Main term: Android 11
Issued on September 9, 2020.
On October 11, 2019, according to foreign media reports, the 2019 Android Development Summit will be opened later this month, and Google announced the complete Agenda Google officially mentioned Android 11 for the first time in the agenda.
Previously, foreign media found that AOSP Google has enabled the code name "Android R". According to Android naming rules, Android R should be the next generation Android: Android 11.
Due to the epidemic situation, Google announced to cancel the offline developer conference and later the online developer conference, so Android 11 will be released in the third quarter of 2020.
Timeline of official website release
Android 11 developer preview is planned to start in February 2020 AOSP and OEM It will end when the final public version is available, and the final version is expected to be released in the third quarter of 2020. stay Development phase We will provide updates to your development and test environment for each key milestone of. Every update includes SDK Tools system image simulator API Reference and API differences. The list of milestones is as follows.
time axis
Build
type
Developer Action
February
Developer Preview 1
The early benchmark build involves new functions, API and behavior changes, focusing on developer feedback.
An important window for API feedback. Review new APIs and behavior changes and report any major issues or requests to us during this time.
March
Developer Preview 2
increment Update, involving more function, API and behavior changes.
Give us feedback when dealing with API and behavior changes. Start early application compatibility testing.
April
Developer Preview 3
Incremental updates for stability and performance.
Get the app ready for the consumer beta. Continue the compatibility test and release the update without changing the target. If there are any problems, notify the SDK and library developers.
May
Beta 1
The initial beta version provides wireless updates for those who register to try the Android beta version.
Continue the compatibility test and pay attention to the feedback of Android beta users. Start early testing for Android 11.
June
Beta 2
Platform stability milestone, providing the final API and behavior. Open Play release.
Start applying SDK Conduct final compatibility test with the library. Release a compatible version. Continue working on Android 11.
Q3
Beta 3
Candidate build.
Publish compatible updates for apps, SDKs, and libraries. Continue working on Android 11. Build applications using new features and APIs.
Q3
Final version
Release Android 11 version for AOSP and ecosystem.
Publish compatible updates for apps, SDKs, and libraries. Continue working on Android 11. Build applications using new features and APIs.

Android 12

Main term: Android 12
Issued on October 5, 2021.
In the early morning of May 19, 2021, Google announced the official arrival of Android 12, and the beta version is now available for download [9]

Android 13

Main term: Android 13
Issued on August 16, 2022.
On February 11, 2022, Google released the first Android 13 developer preview version, which will be released in June. [11]
On May 12, 2022, Google held the I/O 2022 developer conference and officially released Android 13. [17]
On August 16, 2022, Google today pushed the official version update of Android 13 for Pixel devices, and uploaded the source code to Android Open source project (AOSP)。 [19]

Android 14

Main term: Android 14
In September 2022, Hiroshi Lockheimer, Senior Vice President of Google Platform and Ecosystem, announced a new message on the social platform: Android 14 will support satellite communication technology Operation. [20]

Android 15

In March 2023, the informant Mishaal Rahman found the development code of Android 15 in AOSP, namely Vanilla Ice Cream, sweet. [26]

Architecture

Announce
edit

Introduction to architecture

Android architecture
The system architecture of Android, like its operating system, adopts a layered architecture. According to the architecture diagram, Android is divided into four layers, namely, the application layer, the application framework layer, and the system from the top to the bottom Runtime Layers and Linux kernel layer

application program

Android is released together with a series of core application packages, which include clients, SMS SMS program, calendar, map, browser, contact management program, etc. All applications use JAVA Language.

Application Framework

Developers can also have full access to the API Frame. The architecture design of the application simplifies the reuse of components; Any application can publish its Function block And any other application can use the released function blocks (but must follow the security of the framework). Similarly, the application reuse mechanism also allows users to easily replace program components.
Hidden behind each application is a series of services and systems, including;
Rich and extensible views can be used to build applications, including lists, grids, Text Box (Text boxes), buttons, and even embedded web browsers.
Content Providers enable applications to access the data of another application (such as the contact database), or share their own data
Explorer (Resource Manager) provides access to non code resources, such as local character string , drawings, and layout files.
The Notification Manager enables applications to status bar The customized prompt information is displayed in.
The Activity Manager is used to manage the application lifecycle and provide common navigation fallback functions.

System runtime

Android contains some C/C++libraries that can be used by different components in the Android system. They provide services for developers through the Android application framework. The following are some core libraries:
*System C library - a slave BSD The inherited standard C system function library Libc is specially customized for embedded linux based devices.
*Media library - based on PacketVideo OpenCORE; The library supports playback and recording of a variety of commonly used audio and video formats, as well as static image file Encoding formats include MPEG4 , H.264 , MP3 , AAC , AMR , JPG , PNG
*Surface Manager - pair display Subsystem And provides management for multiple applications 2D and 3D Seamless blending of layers.
* Lib WebCore -An up-to-date Web browser Engine, supporting Android browser and an embeddable web view.

System structure

Announce
edit

system kernel

Android is running on Linux kernel Above, but not GNU /Linux。 Because in general GNU/Linux Android does not support most of the functions supported in, including Cairo X11 Alsa FFmpeg GTK Pango and Glibc And so on have been removed. Android also uses Bionic Replace Glibc with Skia Replace Cairo with opencore replace FFmpeg wait. In order to achieve commercial applications, Android must remove the GNU GPL The part restricted by the license, such as Android moving the driver to Userspace, makes Linux driver Completely separate from the Linux kernel. Bionic/Libc/Kernel/is not a standard Kernel header files. The Android kernel header is generated from the Linux kernel header by using tools. This is to preserve constants data structure And macros.
Android Linux kernel control includes security, memory management, process management, and network stack (Network Stack), Driver Driver Model, etc. Before downloading Android source code, first install its construction tool Repo to initialize the source code. Repo is used by Android to assist Git A tool for working.

Hardware extraction layer

Android HAL (Hardware extraction layer) can provide hardware driver module in the form of closed source code. The purpose of HAL is to separate the Android framework from the Linux kernel, so that Android will not rely too much on the Linux kernel, so as to achieve the concept of kernel independent, and enable the development of the Android framework to develop without considering the driver implementation.
HAL stub is an agent( Proxy )Stubs exist in the form of *. so files. Stub "provides" operation functions to HAL, and Android runtime Get the operations of Stub from HAL, and then call back these operation functions. HAL contains many Stubs (agents). The Runtime can obtain the operation function as long as it describes the "type", that is, the Module ID.

Intermediary software

The bridge between the operating system and the application program. The application is divided into two layers: the function layer (Library) and the virtual machine (Virtual Machine)。 Bionic is an improved version of libc for Android. Android also includes WebKit, the so-called WebKit is Apple Safari The engine behind the browser. Surface flinger 2D Or 3D content is displayed on the screen. Android tool chain( Toolchain )Self made Bionic Libc for Google.
Android is based on OpenCORE Multimedia framework Open CORE can be divided into 7 parts: PVPlayer, PVAuthor Codec PacketVideo Multimedia Framework( PVMF )、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android usage skia At the core Graphics Engine , matching OpenGL /ES。 Skia has the same function as Linux Cairo, but compared with Linux Cairo, the function of skia is still embryonic. In 2005, Skia was acquired by Google. At the beginning of 2007, the source code of Skia GL was disclosed. So was Skia Google Chrome The graphics engine for.
Android multimedia database use SQLite Database system. Database is divided into shared database and private database. Users can obtain the shared database through the ContentResolver class (Column).
Android's middle tier is mostly based on Java Implementation with special Dalvik Dalvik Virtual Machine. Dalvik virtual machine is a“ Register For a Java virtual machine of type "Register Based", the variables are stored in the register, and the instructions of the virtual machine are relatively reduced.
Dalvik virtual machine can have multiple instances( Instance ), each Android App They all run on their own Dalvik virtual machine, so that the system can be optimized when running programs. Dalvik virtual machine is not running java bytecode (Bytecode). Instead, it runs a file called. dex format.

Security permission mechanism

Android itself is an operating system with separate permissions. In such operating systems, each application runs as a system identity (Linux user ID and group ID). Each part of the system also uses its own independent identification mode. This is how Linux separates applications from applications and applications from systems.
More security functions of the system are provided through the permission mechanism. Permissions can limit specific operations of a specific process, or limit each URI Permissions for specific Data segment Access to.
Core of Android security architecture design idea Yes, by default, all applications do not have permission to perform operations that greatly affect other applications, systems or users. This includes reading and writing user privacy data (contacts or E-mail ), read and write other application files, access the network or prevent the device from standby.
When installing applications, after checking the permissions mentioned in the program signature and being confirmed by the user, software package The installer will grant application permissions. From the perspective of users, an Android application usually requires the following permissions:
Call, send SMS or MMS, modify/delete SD card Content on, reading contact information, reading schedule information, writing schedule data, reading phone status or Identification code , accurate (based on GPS geographical position , fuzzy (based on network acquisition) geographical location, creation Bluetooth Connection, full access to the Internet, viewing Network status , check WiFi status and avoid mobile phones Standby Modify system global settings, read synchronization settings, start automatically, restart other applications, terminate running applications, set preference applications, vibration control, take pictures, etc.
An application should require reasonable permissions according to the functions it provides. Users can also analyze the permissions required by an application to simply determine whether the application is secure. For example, an application without advertising Stand alone version , and there is no additional content to download, so it is suspicious that it requires access to the network.

Application component

Announce
edit

Component Introduction

The four components of Android development are: activities( Activity ): for Performance function Service: the background running service does not provide interface rendering. radio broadcast receiver (BroadcastReceiver): used to receive broadcasts. Content Provider Content Provider ): Support storing and reading data in multiple applications, equivalent to a database.

activity

In Android, Activity is the root of all programs. All program processes run in Activity. Activity is the most frequently encountered by developers and one of the most basic modules in Android. In Android programs, Activity generally represents a screen on the phone screen. If a mobile phone is compared to a browser, then Activity is equivalent to a web page. Some buttons, check boxes and other controls can be added to the activity. You can see that the concept of Activity is quite similar to that of Web pages.
Generally, an Android application is composed of multiple activities. These multiple activities can jump to each other. For example, after pressing a Button button, they may jump to other activities. Slightly different from webpage jump, it is possible to jump between activities Return value For example, if you jump from Activity A to Activity B, when Activity B finishes running, it may give Activity A a return value. This is quite convenient in many cases.
When a new screen is opened, the previous screen will be set to the pause state and pushed into the history stack. The user can return to the previously opened screen through the fallback operation. You can selectively remove some unnecessary screens, because Android will save each screen from the beginning of each application to the current in the stack.
(Image source of Android application atlas:)

service

Pictures of different versions of Android
Service is a component in the Android system. It is at the same level as Activity, but it cannot run on its own, only in the background, and can interact with other components. A service is a long life cycle code without an interface. Service is a program that can run for a long time, but it has no user interface. It's boring to say so. Let's take an example. Open a music player program. If you want to surf the Internet at this time, open the Android browser. Although you have entered the browser program at this time, the song playing does not stop, but continues to play one song after another in the background. In fact, the playback is controlled by the music playing service. Of course, the music playing service can also be stopped. For example, when all the songs in the playlist end, or the user presses the shortcut key to stop music playing, etc. Service can be used in many applications. For example, when the user starts other activities while playing multimedia, the program should continue to play in the background, such as detecting SD The change of files on the card, or the change of geographical information location recorded in the background, etc. In short, the service is always hidden behind.
There are two ways to start a service:
(1) Context. startService(): The service will go through onCreate ->onStart (if the service is not running yet, android calls onCreate() first and then onStart(); If the service is already running, only onStart() will be called, so the onStart method of a service may be called repeatedly); When StopService is stopped, onDestroy is directly used. If the caller exits without calling StopService, the service will always run in the background. After the caller of the service starts up again, he can close the service through stopService. Note that multiple calls to Context. startservice() will not be nested (even if the corresponding onStart() method is called), so no matter how many times the same service is started, once Context. stopService() or StopSelf() is called, it will be stopped. Supplementary note: The Intent object passed to StartService (0) will be passed to the onStart() method. The calling order is: onCreate -->onStart (can be called multiple times) -->onDestroy.
(2) Context. bindService(): Service will experience onCreate () -->onBind(), onBind will return an IBind interface instance to the client. IBind allows the client to call back methods of the service, such as getting the running status of the service or other operations. At this time, the caller (Context, such as Activity) will be bound to the Service. When the Context exits, the Service will call onUnbind -->onDestroyed to exit accordingly. The so-called binding together will co-exist.

Broadcast receiver

In Android, Broadcast is a widely used mechanism for transferring information between applications. BroadcastReceiver is a kind of component that filters, accepts and responds to the sent Broadcasts. BroadcastReceiver can be used to make the application respond to an external event. This is very interesting. For example, when the external event of incoming calls comes, you can use BroadcastReceiver to process it. For example, when downloading a program successfully, you can still use BroadcastReceiver for processing. BroadcastReceiver cannot generate UI, that is to say, it is not transparent to users and cannot be seen by users. BroadcastReceiver notifies users of these events through the Notification Manager. BroadcastReceiver can be registered in AndroidManifest.xml or in the runtime code using Context.registerReceiver. As long as it is registered, when an event comes, even if the program is not started, the system will start the program when needed. Various applications can also broadcast their own Intent Broadcasts to other applications by using Context.sendBroadcast.

Content provision

Content Provider It is provided by Android Third party applications Data access scheme.
In Android, the data protection is very strict. Except for the data in the SD card, the database, files and other contents held by an application are not allowed Direct access Of. Android certainly won't really make every application an island. It has a window for all applications. This is the Content Provider. The data that the application wants to provide externally can be encapsulated into a Content Provider by deriving the Content Provider class. Each Content Provider uses one uri As an independent identification, it is shaped like: content://com.xxxxx Everything looks like REST In fact, it is more flexible than REST. Similar to REST, uris can also be of two types, one with an id and the other with a list. However, the implementer does not need to follow this pattern, and the uri with an id can also return data of a list type. As long as the caller understands, it is OK not to demand the so-called REST.

Platform advantages

Announce
edit

Openness

In terms of advantages, the Android platform is its first Openness , the developed platform allows any mobile terminal Manufacturers join the Android Alliance. Remarkable openness can enable it to have more developers. With the increasing abundance of users and applications, a new platform will soon become mature.
For the development of Android, openness is conducive to the accumulation of popularity, which includes consumers and manufacturers. For consumers, the biggest benefit is rich software resources. The open platform will also bring greater competition, so that consumers will be able to buy their favorite mobile phones at a lower price. At the same time, some third-party optimized systems can also be used to achieve better performance User experience , such as MIUI Flyme Etc.

Rich hardware

This is also related to the openness of the Android platform. Due to the openness of Android, many manufacturers will launch a variety of products with different features and functions. Functional differences and features will not affect Data synchronization , or even software compatibility, as from NOKIA Symbian The style mobile phone is changed to Apple iPhone, and the excellent software in Symbian can also be brought to iPhone It is more convenient to transfer information such as user information and contact information.

Convenient development

Android platform provides a very broad and free environment for third-party developers, which will not be hindered by various rules and regulations. We can imagine how many Novelty Software will be born. But there are also two sides. How to control bloody, violent and erotic programs and games is one of the problems left to Android.

Google App

On the Internet Google Having gone through 10 years of history, from the search giant to comprehensive Internet penetration, Google services such as maps, email, search, etc. have become an important link between users and the Internet, and Android platform phones will seamlessly integrate these excellent Google services.

Related Systems

Announce
edit
Magic UI 6.0 system, first launched in January 2022, is enabled by Magic Live intelligent engine Artificial intelligence operating system [14] (carried on Glory Magic4 Series) [13]

Related reports

Announce
edit
On May 18, 2022, according to 9to5 Google, Google has been seeking to improve the security and privacy of its mobile operating system. Google recently launched the "Protected by Android" brand, and it seems that the brand is ready for wider promotion. [18]