Android is based onLinuxKernel (excludingGNUFreedom andOpen SourceMobile operating system.Mainly used forMobile Devices, such asIntelligent mobile phoneandtablet PC, by the United StatesGoogleCompany andOpen Mobile AllianceLeadership and development.The Android operating system was originally developed byAndy Rubin Development, mainly supporting mobile phones.August 2005 byGoogleCapital 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.subsequentlyGooglewithApachefree use And released Android'ssource code。The first Android smartphone was released in October 2008.Android has gradually expanded to tablet computers and other fields, such as TVDigital camera, game consoleIntelligent WatchEtc.In the first quarter of 2011, Androidmarket shareExceed for the first timeSaipan system, ranking first in the world.In the fourth quarter of 2013, the global market share of Android phones reached 78.1%.September 24, 2013GoogleDevelopedoperating systemAndroid 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]
The word Android first appeared inFranceScience 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 theGraphical symbolsSo Brock drew a simple robot, its body is like a tin can, and there are two more on its headantennaThe 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 andRGBIt 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 TechnologyBlog SiteBusinessInsiderThe ten most important electronic products in the 21st century, Android operating system andiPhoneWait 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,GoogleLow 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,GoogleThe 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 phonesmanufacturer, SoftwareDevelopers、Telecom operatorsAnd chip manufacturers, and 84 hardware manufacturers, software developers and telecom operatorsOpen Handset Alliance (Open Handset Alliance)To jointly develop and improve the Android system. This alliance will support theMobile phone operating systemAnd applications, GoogleApacheFree Admissionfree use And released Android'ssource 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 obtainedFederal Communications Commission(FCC) approval. In September 2008, Google officially releasedAndroid 1.0System, which is also the earliest version of Android system.
In April 2009, Google officially launchedAndroid 1.5From Android 1.5, Google began to name the Android version as Dessert, and Android 1.5 asCupcake(Cup Cake)。This system has greatly improved compared with Android 1.0.
In September 2009, Google releasedAndroid 1.6OfOfficial editionAnd launched a mobile phone with Android 1.6 official versionHTC 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 kernelDeveloper Greg Kroah Hartman brings Android'sDriverfromLinuxRemoved 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 releasedAndroid 2.2Operating system.Google names Android 2.2 asFroyo, translated asFroyo 。
In January 2011, Google said that Android devices are new every dayNumber of usersIt 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 becomeIntelligent mobile phoneThe system with the highest domain share.
On August 2, 2011, Android phones have occupied the worldSmart machine48% of the market, andAsia PacificThe 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 newAndroid 4.0Operating system, which is named by GoogleIce Cream Sandwich(ice cream sandwich )。
January 6, 2012, GoogleAndroid Market100000 developers have launched more than 400000 active applications, most of whichapplication programIt 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 moreEmojiEmoticons,UIIs more modern, such as the new HelloiOS7 Translucency effect.
In the first quarter of 2014, the Android platform accounted for allMobile advertising42.8% of the traffic source, exceeding for the first timeiOS。But the operating income is lower than iOS.
In 2015,network securityZimpenium researchers warn that Android is "fatal"Security vulnerabilitiesThe 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 businessesMarketing InformationOfSpam[3]。
In March 2020, Google's Android security announcement mentioned that new updates have been providedCVE-2020-0069United Development SectionA Serious Security Vulnerability of Chip[4]。
February 2022,Android 12LBeta 3 is released, which supports Pixel 6 and Pixel 6 Pro for the first time, as well as newertesting environment, defect repair and optimization.[10]
In February 2022, Google announced the launch of Android privacy sandbox, aiming to introduce updates andprivacyAdvertising solutions to limitThird party institutionsShare user information without damagingAdvertisersShort term benefits.Google plans to followBetaPublish privacy sandbox togetherDeveloper Preview 。[12]
March 27, 2022, according toRussian Satellite News AgencyIt is reported that due to US sanctions, Google has stopped authenticating AndroidBQ RussiaAnd the company will turn to ChinaHuaweiHongmeng system.[15]
Beijing TimeIn the afternoon of May 6, 2022, it is reported that May 5 is World Password Day,Apple、GoogleandMicrosoftIn 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 yearSystem.[16]
In 2022, Android will launch an app similar to Lingdong Island——dynamicSpot。[21]On October 3, the Android Smart Island AppDownloadsBreak 1 million yuan.[22]On October 13, Google announced today that Android andChromeThe 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 twoInternal testVersion, 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 thatcopyrightProblem, Google changed its naming rule to use dessert as the code name of their system version.
Shoot/play movies and support uploading toYoutube;supportstereoBluetooth headset, while improving the automatic pairing performance;Latest adoptionWebKitTechnical browser, supporting copy/paste and search in the page;GPSGreatly improved performance;Provide screen virtual keyboard;Home screen addedmusic player And photo framewidgets;The application automatically rotates with the phone;SMSGmail、calendar, browser'sUser interfaceSignificant improvement, for example, Gmail can delete messages in batches;cameraStarting speedFaster, pictures can be directly uploaded toPicasa;Caller photo display.
RedesignedAndroid MarketGesture;supportCDMANetwork;Text to speechSystem (Text to Speech);Quick search box;New photo interface;Check the application power consumption;supportVirtual Private Network(VPN);Support moreScreen resolution;Support OpenCore2 media engine;Add easy-to-use plug-ins for people with visual or hearing difficulties.
The overall performance is greatly improved;3GNetwork sharingFunction;FlashSupport;App2sdFunction;New software store;More web applicationsAPIInterface development.
Added new garbage collection and optimization processing events;Native code can directly access input anda sensorEvents, EGL/OpenGLESOpenSL ES;New management window and life cycle framework;supportVP8andWebMVideo format, provideAACandAMRWideband encoding, providing new audioEffector;Support front cameraSIP/VOIP andNFC(Near-field communication);Simplify the interface and improve the speed;Faster and more intuitive text input;One click text selection and copy/paste;ImprovedPower management system;New applicationsmanagement style。
OptimizedGmailmail box;Full supportGoogle Maps;Re merge Android mobile system with tablet system to facilitate developers;Task ManagerScrollable, supportUSBinput device(keyboard, mouse, etc.);supportGoogle TV. It can support XBOX 360wireless handle;The changes supported by widgets make it easier to customize screen widget plug-ins.
New UI;all-newChrome LiteBrowser, offline reading, 16 tabs, invisible browsing mode, etc;screenshotFunction;More powerful picturesEditing function;Its own photo application is comparableInstagram, you can add a filter, a picture frame, 360 degreesPanoramic 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, integratingTwitter、Linkedin、Google+And other communication tools.It is expected to support user-defined additionThird party services;New trafficmanagement 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.
Faster, smoother and more responsive;Special effect animationFrame rateIt is increased to 60 fps, with a triple buffer;Enhanced notification bar;New search;Search will bring new UIIntelligent voice searchandGoogle NowThree new functions;The desktop plug-in automatically resizes;Strengthen barrier free operation;Language andtypewritingExpansion;New input types and functions;New connection type.
Android 4.2
Android 4.2 Jelly Bean Native System User Interface
Android 4.2 continues to use the name of "jelly bean" to reflect that the latest operating system and Android 4.1SimilarityHowever, Android 4.2 has introduced some major new features, as follows:
Photo SpherePanoramic photographyFunction;Keyboard gesture input function;improvementLock screenFunctions, including support for desktop pendant and direct opening of camera when the screen is locked;Extensible notifications allow users to open applications directly;GmailMail can be zoomed;DaydreamScreen 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;supportMiracastWireless display sharing function;Google Now now allows users to use Gamail as a newdata sources , such as improved flight tracking function, hotel and restaurant reservation function, music and movie recommendation function, etc.
In the early morning of September 4, 2013, Google announced a new version of AndroidAndroid 4.4KitKat (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 uses a newMaterial DesignDesign style.You can see some new designs from the pictures.From the picture, this seta design chartFor Android systemdesktop iconAnd 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 orMultimedia player。
Android 5.1 new system is more stable than Android 5.0, and supports multipleSIM card, strengthened the device protection mechanism and enhanced the WiFi capability of the device.
The overall design style of the new system remains flatMaterial DesignStyle.Android 6.0 has greatly optimized the software experience and running performance.According to the test, Android 6.0 can make the deviceEnduranceIncrease by 30%.
Android 7.0 provides new functions to improve performanceproduction efficiencyAnd 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.
You can use the newShortcutsThe 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 theapplication programShortcuts added toAPKInresource fileTo create a shortcut for it statically in theRuntimeAdd them dynamically.Static shortcut is an ideal choice for common operations. Dynamic shortcut allows you to use it according to user preferences, behavior, location, etchighlightOperation.Up to five per applicationShortcut 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 aAPIFor the application to register shortcuts and for the launcher to read registered shortcuts.
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 PictureNotification 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 atnetwork 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 toGoogle PlayDistribute applications to normal or low memory devices.
Google Play。Although all applications can be loadedAndroid Oreo(Go version), but Google Play will still build products for billions of usersguideShow 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 useGoogle PlayThe 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.
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.
Starting from Android 10, Google began to provideSystem levelOfDark Mode, most interfaces and buttons such as pre installed applications, drawers, setting menus and Google Feed information flow will become mainly black, just like youmacOS MojaveSee the same dark interface in.New protection measures are supported to ensure user privacy and security.With high performanceCodecBetterBiometric technology, faster application startup speedVulkan1.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 methodOfficial nameIt's Android 10[8]。
On October 11, 2019, according to foreign media reports, the 2019 Android Development Summit will be opened later this month, and Google announced the completeAgenda。Google officially mentioned Android 11 for the first time in the agenda.
Previously, foreign media found thatAOSPGoogle 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 2020AOSPandOEMIt will end when the final public version is available, and the final version is expected to be released in the third quarter of 2020.stayDevelopment phaseWe will provide updates to your development and test environment for each key milestone of.Every update includesSDKToolssystem image 、simulator、APIReference 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
incrementUpdate, 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 applyingSDKConduct 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]。
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 AndroidOpen 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 technologyOperation.[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 bottomRuntimeLayers andLinux kernel layer。
application program
Android is released together with a series of core application packages, which include clients,SMSSMS program, calendar, map, browser, contact management program, etc.All applications useJAVALanguage.
Application Framework
Developers can also have full access to theAPIFrame.The architecture design of the application simplifies the reuse of components;Any application can publish itsFunction blockAnd 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 localcharacter string, drawings, and layout files.
The Notification Manager enables applications tostatus barThe 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 slaveBSDThe 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 staticimage file。Encoding formats includeMPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
*Surface Manager - pair displaySubsystemAnd provides management for multiple applications2Dand3DSeamless blending of layers.
* LibWebCore-An up-to-dateWeb browser Engine, supporting Android browser and an embeddable web view.
System structure
Announce
edit
system kernel
Android is running onLinux kernelAbove, but notGNU/Linux。Because in generalGNU/LinuxAndroid does not support most of the functions supported in, includingCairo、X11、Alsa、FFmpeg、GTK、PangoandGlibcAnd so on have been removed.Android also usesBionicReplace Glibc withSkiaReplace Cairo withopencorereplaceFFmpegwait.In order to achieve commercial applications, Android must remove theGNU GPLThe part restricted by the license, such as Android moving the driver to Userspace, makes LinuxdriverCompletely 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 constantsdata structureAnd macros.
Android Linux kernel control includes security, memory management, process management, and networkstack(Network Stack),DriverDriver Model, etc.Before downloading Android source code, first install its construction tool Repo to initialize the source code.Repo is used by Android to assistGitA tool for working.
Hardware extraction layer
AndroidHAL(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, andAndroid runtimeGet 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 thevirtual machine(Virtual Machine)。 Bionic is an improved version of libc for Android.Android also includes WebKit, the so-called WebKit is AppleSafariThe engine behind the browser.Surface flinger2DOr 3D content is displayed on the screen.Android tool chain(Toolchain)Self made Bionic Libc for Google.
Android is based on OpenCOREMultimedia framework。Open CORE can be divided into 7 parts: PVPlayer, PVAuthorCodec、PacketVideoMultimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android usageskiaAt the coreGraphics Engine, matchingOpenGL/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 SkiaGoogle ChromeThe graphics engine for.
Androidmultimedia database useSQLiteDatabase 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 onJavaImplementation with specialDalvikDalvik Virtual Machine.Dalvik virtual machine is a“RegisterFor 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), eachAndroid AppThey all run on their own Dalvik virtual machine, so that the system can be optimized when running programs.Dalvik virtual machine is not runningjava 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 eachURIPermissions for specificData segmentAccess to.
Core of Android security architecturedesign 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 orE-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 packageThe installer will grant application permissions.From the perspective of users, an Android application usually requires the following permissions:
Call, send SMS or MMS, modify/deleteSD cardContent on, reading contact information, reading schedule information, writing schedule data, reading phone status orIdentification code, accurate (based onGPS)geographical position, fuzzy (based on network acquisition) geographical location, creationBluetoothConnection, full access to the Internet, viewingNetwork status, check WiFi status and avoid mobile phonesStandbyModify 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 advertisingStand 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): forPerformance function。Service: the background running service does not provide interface rendering.radio broadcastreceiver(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 activitiesReturn valueFor 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 detectingSDThe 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 experienceonCreate() -->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.
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 allowedDirect accessOf.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 oneuriAs an independent identification, it is shaped like:content://com.xxxxx。Everything looks likeRESTIn 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 firstOpenness, the developed platform allows anymobile 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 performanceUser experience, such asMIUI,FlymeEtc.
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 affectData synchronization, or even software compatibility, as fromNOKIASymbianThe style mobile phone is changed to Apple iPhone, and the excellent software in Symbian can also be brought toiPhoneIt 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 manyNoveltySoftware 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 InternetGoogleHaving 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.
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]