Android architecture and android Architecture
In the Android operating system, the architecture is divided into four layers: Application, Application Framework, and Library) linux Kernel ).
1. Application Layer)
The application layer is a number of applications developed using the Java language, such as map software, contact management, Email connection, and browsers, many developed programs (such as music players and address books) are also
Run on the application layer.
2. Application Framework)
The application framework layer is mainly a class library (API framework) supported by some operations released by Google. developers can use these class libraries for program development, however, the framework development principles must be observed during development. In the application framework
A large number of components. Introduction:
Activity Manager
Window Manager)
Contact Providers)
View System)
Notification Manager)
Package Manager)
Telephony Manager)
Resource Manager)
Location Manager)
XMPP Service)
3. Libraries)
When the Android framework was used for development, the Android operating system automatically uses some C/C ++ library files to support various components used, so that it can better serve the program. The following components are included in the system Runtime Library layer.
Surface Manager)
Media Framework)
Relational Database Service (SQLite)
3D support library (Open GL/ES)
Free Type Library
Web browser engine (WebKit)
SGL Library
SSL (Secure Sockets Layer)
Libc library
Android Runtime)
4. Linux Kernel layer (Linux Kernel)
The Android operating system is mainly based on the Linux2.6 kernel. Program security, drivers, and process management are all provided by the Linux kernel. The Linux kernel layer includes the following components.
Display Driver)
Camera Driver)
Bluetooth Driver)
Flash Memory Driver)
Binder (IPC) Driver
USB Driver)
KeyBoard Driver)
WIFI Driver)
Audio Driver)
Power Driver)
Android Architecture
1) minimum layer X-loader + uboot
2) LInux kernel;
3) android framework layer;
What are the differences between virtual machines in the Android platform architecture and those in JAVA?
Primary differences between Dalvik and standard Java Virtual Machine (JVM)
Dalvik is based on registers, while JVM is based on stacks. Register-based virtual machines take less time to compile larger programs.
Differences between Dalvik and Java runtime Environments
1: Dalvik is mainly used to complete object lifecycle management, stack management, thread management, security and exception management, as well as garbage collection and other important functions.
2: Dalvik is responsible for process isolation and thread management. Each Android Application corresponds to an independent Dalvik Virtual Machine instance at the underlying layer, and its code can be executed under the interpretation of the virtual machine.
3: Unlike java bytecode running on java virtual machines, Dalvik virtual machines run their proprietary file format Dex
4: The dex file format reduces the size of the entire file and improves the Class search speed for I/o operations.
5: odex is used to further improve the performance of the dex file during running.
6: All Android Application threads correspond to a Linux thread. Therefore, virtual machines can rely more on the thread scheduling and management mechanism of the operating system.
7: there is a special Virtual Machine Process Zygote, which is the incubator of Virtual Machine instances. It is generated when the system is started. It completes VM initialization, Library Loading, pre-made class libraries, and initialization operations. If the system needs a new Virtual Machine instance, it will quickly replicate itself and provide the fastest data to the system. For some read-only system libraries, All VM instances share a memory area with Zygote.
8: Dalvik was written by Dan Bornstein and its name came from the small fishing village where his ancestor once lived in dalvík. The village is located in Iceland.