There are two main parts of porting:
Linux driver
Android system hardware abstraction layer
The driver in Linux works in the kernel space, and the Android system hardware abstraction layer works in the user space. With the combination of these two parts, the huge Android system can run on a specific hardware platform.
The main work of Android porting is shown in Figure 1.
Figure 1 Main tasks of Android porting
After having a specific hardware system, it is usually necessary to implement its driver in Linux. These drivers are usually standard Linux drivers and are basically the same on the Android platform and other Linux platforms. The main implementation aspect is the Hardware Abstract Layer in the Android system. The Hardware Abstract Layer calls the driver in Linux downwards and provides an interface upwards for other parts of the Android system (usually the Android local framework layer) to call.
Tip: The interface of the Android hardware abstract layer is the interface of the local porting layer, which is not a standard API and has no forward or backward compatibility.
The content that needs to be ported in the Android system mainly includes the following parts:
Display part (Display)
includes framebuffer driver + Gralloc module (optional implementation)
User input part (Input)
includes Event driver + EventHub (Android standard content)
Multimedia codec (Codec)
includes hardware Codec driver + Codec plug-in (such as OpenMax)
3D accelerator part (3D Accelerator)
includes hardware OpenGL driver + OpenGL plug-in
Audio part (Audio)
includes Audio driver + Audio hardware abstraction layer
Video output part (Video Out)
includes video display driver + Overlay hardware abstraction layer
Camera part (Camera)
includes Camera driver (usually v4l2) + Camera hardware abstraction layer
Phone part (Phone)
Modem driver + RIL library
Global positioning system part (GPS)
includes GPS driver (usually serial port) + GPS hardware abstraction layer
Wireless LAN part (WIFI)
includes Wlan driver and protocol + WIFI adaptation layer (Android standard content)
Bluetooth part (Bluetooth ) Tooth
includes BT driver and protocol + BT adaptation layer (Android standard content)
Sensor part (Sensor)
includes Sensor driver + Sensor hardware abstraction layer
Vibrator part (Vibrator)
includes Vibrator driver + Vibrator hardware abstraction layer (Android standard content)
Backlight part (Light)
includes Light driver + Light hardware abstraction layer
Alarm part (Alarm)
includes Alarm driver and RTC system + user space call (Android standard content)
Battery part (Battery)
includes battery driver + battery hardware abstraction layer (Android standard content)
Android has many components, but not every component needs to be transplanted. For some pure software components, there is no need to transplant. For some components, such as the browser engine, although the support of the lower-level network is required, the network interface is not directly transplanted for it, but the standard network interface is completed through the wireless LAN or telephone system data connection.
Android porting can be divided into several categories: basic graphical user interface (GUI) part, including display part and user input part; hardware-related acceleration part, including media codec and OpenGL; audio and video input and output link, including audio, video output and camera part; connection part, including wireless LAN, Bluetooth, GPS; phone part; accessories: including sensors, backlight, vibrator, etc.
In addition to the above porting aspects, power management is also a very important aspect, which is related to each subsystem of Android.
The main parts that need to be ported in the Android system are shown in Figure 2.
Figure 2 Main components that need to be transplanted in the Android system
For most subsystems, the hardware abstraction layer and the driver need to be implemented according to the actual system conditions, such as: sensor part, audio part, video part, camera part, and phone part. There are also some subsystems where the hardware abstraction layer is standard and only the driver in the Linux kernel needs to be implemented, such as: input part, vibrator part, wireless LAN part, Bluetooth part, etc. For systems with standard hardware abstraction layers, sometimes some configuration work is usually required.
Today, with the development of the Android system, it is no longer just a platform for mobile devices, but can also be used for consumer electronics and smart home appliances, such as: netbooks, e-books, digital TVs, set-top boxes, fixed phones, etc. On these platforms, fewer components are usually required than on mobile devices. Generally speaking, the basic user interface part (including display and user input) needs to be transplanted, and other parts are optional. For example: the phone system, vibrator, backlight, sensor, etc. generally do not need to be implemented in non-mobile device systems; for some fixed-location devices, it is usually not necessary to implement the GPS system.
Previous article:Experience the upgrade of iPhone to run Android 2.3 successfully
Next article:Solution to the 2011 Macbook Pro stuck in gray screen when starting up
Recommended ReadingLatest update time:2024-11-16 22:51
- Apple faces class action lawsuit from 40 million UK iCloud users, faces $27.6 billion in claims
- Apple and Samsung reportedly failed to develop ultra-thin high-density batteries, iPhone 17 Air and Galaxy S25 Slim phones became thicker
- Micron will appear at the 2024 CIIE, continue to deepen its presence in the Chinese market and lead sustainable development
- Qorvo: Innovative technologies lead the next generation of mobile industry
- BOE exclusively supplies Nubia and Red Magic flagship new products with a new generation of under-screen display technology, leading the industry into the era of true full-screen
- OPPO and Hong Kong Polytechnic University renew cooperation to upgrade innovation research center and expand new boundaries of AI imaging
- Gurman: Vision Pro will upgrade the chip, Apple is also considering launching glasses connected to the iPhone
- OnePlus 13 officially released: the first flagship of the new decade is "Super Pro in every aspect"
- Goodix Technology helps iQOO 13 create a new flagship experience for e-sports performance
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- [AT-START-F403A Evaluation] Part 2 FreeRTOS system IAR environment clock configuration and serial port DMA implementation are completely pri...
- [Review of Arteli Development Board AT32F421] - Data Collection
- [2022 Digi-Key Innovation Design Competition] [Intelligent Garden Integrated Control System] TouchGFX displays Chinese menu
- Steering wheel direction sensing sensor selection
- Qorvo's new product makes it easier for 5G and Wi-Fi to work together
- msp430g2553-minimum system
- [Qinheng RISC-V core CH582] Transplantation of RF code 01
- Control principle of ADC0832
- Application of Keithley Source Meter in Electronic Thin Film Materials
- How to switch the unit of Proteus simulation software from inches to mm? Pressing m does not work, and Baidu can't find it