-
Technology
Industry
-
Services
- Testimonials
- "I would say that they are meeting/exceeding my expectations. They appear very capable and their high level of enthusiasm for the project is great."
- Senior QA manager
Android System Architecture
Android is a Linux-kernel mobile operation platform. In Android, to develop applications, developers can use Java as the programming language, C/C++ as the programming language through NDK, and SL4A to use other scripting languages, like python, lua, tcl, php. Moreover, some well-known programming frameworks, like Qt, Mono, have begun to support Android programming, even through MonoDroid, developers can use C# as the programming language to develop applications. In addition, Google released Android Simple language for beginners in 2009.
In Web programming language, Android development has been supported by JavaScript, ajax, HTML5, jquery, sencha, dojo, mobl, PhoneGap and etc. In Android system bottom, it uses C/C++ as development languages.
1. Application
|
- Java Development |
||
|
Android supports Java as the programming language to develop applications. Considered the efficiency and resource consumption of Java virtual machine, Google re-designed Java for Android to improve efficiency and reduce resource consumption. Hence, it differs from J2ME. Activity is equivalent to the MIDlet of J2ME. View is equivalent to Displayable of J2ME. Programmers can place UI in the window through View class and “XML Layout” file. |
||
|
- C/C++ Development |
||
|
In April 2010, Google released Android NDK to developers officially. NDK allows developers to use C/C++ as the programming language for Android applications development. The first edition of the NDK let developers see the hope of C/C++ in Android development. |
2. Middleware
The bridge between operating system and applications is divided into two layers: Library and Virtual Machine. Bionic is the modified version of libc. Android contains Webkit, which is the engine behind Apple Safari browser. Surface flinger is to show content of 2D or 3D to the screen. The tool chain Android uses is the Google-made Bionic Libc. Android adapts OpenCORE as its basic multimedia framework. It can be divided into seven parts: PVPlayer, PVAuthor, Codec, PacketVideo Multimedia Framework (PVMF), Operating System Compatibility Library (OSCL), Common and OpenMAX. Android uses skia as the core graphics engine with OpenGL/ES. Android’s multimedia database uses SQLite database system. Database is divided into a common database and private database. Users can obtain a common database through ContentResolver column. Android’s middle tier is mostly implemented with Java and adapts a special Dalvik Virtual Machine, which is a “Register Based” Java virtual machine. Variables are stored in the register, and the virtual machine instructions relatively decrease. Dalvik virtual machine can have multiple instances, and each Android application runs with its own Dalvik virtual machine to optimizing the system when running.
3. Hardware Abstraction Layer (HAL)
HAL of Android provides hardware driver modules in the form of closed source. HAL is intended to separate the Android framework from the Linux kernel, so that Android is not to over-reliance on Linux kernel. Hence, we achieve the concept of kernel independent. Meanwhile, Android framework development can process without considering driver realization. HAL stub is a concept of a proxy. Stub exists in the form of *.so file. Stub provides operations for HAL, and then Android runtime obtains operations of stub from HAL, and callback these operations. HAL contains many stubs (proxy). Runtime can get operation function as long as explaining “type”, namely module ID.
4. Kernel
Android is running on the Linux kernel rather than GNU/Linux, as most functions generally supported in GNU/Linux are not supported by Android, including Cairo, X11, Alsa, FFmpeg, GTK, Pango and Glibc and so on. What’s more, bionic replaces Glibc, Skia replaces Cairo, and opencore replaces FFmpeg. Android’s kernel header is produced by Linux kernel header, so as to keep constant, data structure and macro. At present, Android’s Linux kernel control includes Security, Memory Management, Process Management, Network Stack, Driver Model, and etc. Install Android build tools Repo to initialize the source code before downloading it. Repo is a tool to assist Git work.
5. Security Permission Mechanism
Android itself is a permission-discrete operating system, in which each application runs with a unique system identification identity (Linux user ID and group ID). Each part of the system also uses its own independent means of identification. Linux just isolates application from application, application from system like this. More system security functions are provided by permission mechanism. Permission can limit not only the specific operation of a particular process, but also the access each of URI permission to a specific data segment. The core design idea of Android security architecture is that: under the default settings, all applications don’t have permission to do the operation of great influence on other applications, systems or users, including reading and writing users’ privacy data (contacts or e-mail) and other application files, accessing the network or preventing devices from standby, and so on.
When installing the application, sign the permission mentioned in the checking program and confirmed by the user, the package installer will give application permission. An application should require reasonable permissions according to the functions itself provides. Users can also analyze an application of the necessary permissions, so that they can determine whether the application is safe simply.
- Skype: unisoft-china
- MSN: info@unisoftchina.com
Submit Request- Phone: +86 1062431711
- Fax: +86 1062431800
- E-mail: info@unisoftchina.com
- Cloud Computing and IT Outsourcing Improve Profitability
- The real limits of cloud computing
- Enough room in outsourcing for both China, India
- Apple may ‘think different’ on iCloud’s video sync featu
- Dell plots Ubuntu laptop for developers with eye on OpenStack cloud
- iOS 5.1.1 already installed on 10 percent of iOS devices
- 7 Zip – Open Source Compression Software with High Compression
Blog


