Traditional Culture Encyclopedia - Traditional festivals - How to draw the development architecture diagram for android apps

How to draw the development architecture diagram for android apps

android application development framework is ApplicationFramework.Its system architecture consists of 5 parts, which are: LinuxKernel, AndroidRuntime, Libraries, ApplicationFramework, Applications.The second part will introduce these 5 parts in detail. The following bottom-up analysis of each layer. Android architecture 1, LinuxKernelAndroid based on Linux2.6 to provide core system services, such as: security, memory management, process management, network stack, driver model. LinuxKernel is also used as an abstraction layer between the hardware and software, which hides the specific details of the hardware and provides unified services for the upper layer. services for the upper layers. If you have studied computer networks and know OSI/RM, you will know that the advantage of layering is to use the services provided by the lower layer to provide unified services for the upper layer, shielding the differences between this layer and the following layer, when the layer and the following layer changes will not affect the upper layer. That is to say, each layer has its own role, each layer provides a fixed SAP (ServiceAccessPoint), professional point can be said to be high cohesion, low coupling. If you just do application development, you do not need to y understand the LinuxKernel layer. 2, AndroidRuntimeAndroid contains a collection of core libraries, providing most of the functions available in the core class library of the Java programming language. Each Android application is an instance of the Dalvik virtual machine, running in their own process.The Dalvik virtual machine is designed so that multiple virtual machines can be run efficiently on a single device.The Dalvik virtual machine executable file format is .dex, and the dex format is a compressed format designed specifically for Dalvik for systems with limited memory and processor speed. systems with limited memory and processor speed. Most virtual machines, including JVMs, are stack-based, while Dalvik virtual machines are register-based. There are advantages and disadvantages to both architectures; in general, stack-based machines require instructions, while register-based machines have larger instructions. dx is a set of tools that converts a Java .class into .dex format. A dex file will usually have multiple .classes. since dex must sometimes be optimized, it can increase the file size by a factor of 1-4, ending in ODEX. the Dalvik virtual machine relies on the Linux kernel to provide basic functionality, such as threading and underlying memory management. 3. LibrariesAndroid contains a collection of C/C++ libraries for the Android system components to use. These functions are exposed to developers through Android's application framework (applicationframework). Some of the core libraries are listed below: system C libraries - BSD derivatives of the standard C system libraries (libc), adapted for embedded Linux devices Media libraries - OpenCORE based on PacketVideo These libraries support playback and recording of many popular audio and video formats, as well as still image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, PNGInterface Management - manages access to the display subsystem and seamlessly combines the 2D and 3D graphics layers of multiple applicationsLibWebCore - a newer web browser engine that drives the Android browser and embedded web viewsSGL - a basic 2D graphics engine3D libraries - based on OpenGLES1.0 APIs implementation. Libraries use hardware 3D acceleration or contain highly optimized 3D software raster FreeType - bitmap and vector font rendering SQLite - all applications can use a powerful and lightweight relational database engine 4, ApplicationFramework by providing an open development platform , Android enables developers to prepare extremely rich and Android enables developers to create extremely rich and innovative applications. Developers are free to take advantage of device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more. Developers have full access to the framework APIs used by the core application; the application architecture is designed to simplify component reuse, so that any application can distribute its functionality and any other application can use it (subject to security restrictions enforced by the framework). This mechanism allows users to replace components. All applications are in fact a set of services and systems , including : View (View) - a rich , scalable collection of views that can be used to build an application . Includes include lists, grids, text boxes, buttons, and even embedded web browsers ContentProviders - enable an application to access data from other applications (such as an address book) or **** enjoy their own data ResourceManager - provides access to non-code resources such as localized strings, graphics and layout files Notification Manager (NotificationManager) - so that all applications can display a customized warning in the status bar Activity Manager (ActivityManager) - to manage the application life cycle , to provide a common navigation back to the function of 5, ApplicationsAndroid assembly of a core ApplicationsAndroid assembles a core collection of applications, including e-mail clients, SMS programs, calendars, maps, browsers, contacts and other settings. All applications are written in the Java programming language. Richer applications are yet to be developed! From the above we know that Android's architecture is layered, very clear, and the division of labor is very clear. Android itself is a set of software stack (SoftwareStack), or known as the "software iterative architecture", iterative layer is mainly divided into three layers: the operating system, middleware, applications. From the above we also see the power of open source, a familiar open source software here to contribute their own share of power.