Android embedded development

Source: Internet
Author: User

For Android embedded development, you can see the following content:

Reference: http://blog.csdn.net/zkycdy/article/details/8296384

I. First, you must understand the android porting and driver core development on the ARM platform. Of course, it can be x86 or other platforms. However, there are not many Android smart terminals on other platforms.
Android embedded smart operating systems are based on linux kernels and drivers. for Android operating systems developed by companies such as HTC and Huawei, android must be specially transplanted to specific hardware platforms, at the same time, write and develop necessary drivers. Become the core-layer developer of Android, and find the core developer among such embedded device manufacturers.

1. Development Framework and model of the android System

Android embedded development requires you to understand the entire framework of Android development and some necessary development models and program modules. This helps you quickly understand Android embedded development.


2. Android system and migration tools
1.1android operating system architecture, Android Linux kernel porting, file system, toolbox, and storage driver porting. Introduction to the corresponding bootloader scheme and transplantation and Dalvik transplantation of the android virtual machine.
1.2arm processor introduction.
Armv5tjs.
Arm interrupt processing.
ARM architecture and ARM processor architecture.
IP core, chip and Development Board.
ARM processor structure processor mode.
. Releaser.
. Pipeline structure.
Examples of C language Embedded Assembly style and programming.
1.3arm command system.
. Arithmetic Logic commands. Influence of commands on status senders. Comparison commands. Branch commands. Shift. Command bitmap. Identify machine commands.
1.4 memory access and memory control.
Applications and instances of the Data Bus and address bus.
. Str/LDR.
Arm history call standard.
. LDM/STM.
. Disassembly.
. APCs.
C language functions and Assembly calls each other.
[Case] Use Android linux patch to build the Linux Kernel
3. androidlinux kernel transplantation and core development
Android system of the ARM processor.
2.2 input/output device driver porting.
2.3 storage device NAND Flash, MMC/SD card driver transplantation.
2.4framebuffer port.
2.5 touchscreen port.
2.6 port openbinder IPC.
[Case]
2.7 transplant Android experiments on arm processors.
2.8 compile the NAND Flash Driver.
2.9 port the framebuffer driver.
2.10 hardware-related components (keyboards, touch screens, and LCD ).
4. Migration of Android-related environment libraries and bionic systems
3.1libc port.
3.2libm port.
3.3libdl port.
3.4libm port.
3.5 port busybox and toolbox.
[Case]
1. Transplant glibc.
2. Port busybox and toolbox.
5. Port Android Dalvik
4.1 JNI call bridge principles.
4.2 dx, dalvitvm principles and applications.
4.3 Dalvik instruction style.
4.4 Dalvik fulfills the style Dex.
4.5 Java bytecode style.
6. Transplantation of Android Dalvik II
5.1 Dalvik Library Principle.
5.2 port the core dalvit libcore library.
5.3 dalvit/Vm/native port.
5.4 Dalvik interpreter principle.
5.5 Dalvik mterp.

7. armat & T assembly
6.1at & T.
6.2gas tool application.
6.3label label.
6.4 data and code dissemination.
8. Link script LD-script
Determination of the 7.1 segment address.
7.2 write LD-script.
7.3 relationship between the elf style and the libc function library.
9. Timing Circuit Foundation
8.1 level signal.
8.2 circuit diagram analysis.
8.3 Sequence Graph Analysis.
8.4datasheet.
8.5s3c2440 peripheral device structure.
8.6gpio operation.
10. AMBA bus standard
9.1 AMBA bus standard.
9.2 fclk/hclk/pckl frequency allocation and settings.
9.3 watchdog timing operation.
9.4 UART operation.
9.5 arm Interrupt System.
9.6 abnormal vector table.
9.7 switch the arm mode.
9.8 arm interrupt controller.
9.9 soft interruptions.
9.10 Implementation of Linux system calls.
11. NAND Flash Controller
10.1 flash principle.
10.2 principle of the NAND Controller in a timely manner.
10.3k9f1208 timing analysis.
12. Memory Controller
11.1 S3C2440 physical address spread.
11.2 principle and timing of SDRAM.
11.3 physical connection of the memory controller.
11.4 address alignment.
11.5 SRAM access.
13. Memory Management Unit
12.1 MMU principle.
12.2arm coprocessor commands.
12.3 section mode.
12.4 small page mode.
12.5 I & D tlbs.
12.6 I & dcache.
12.7 principles and implementation of Harvard Structure.
14. DMA Direct Memory Access Mechanism and Application
13.1 DMA state machine.
13.2 DMA control.
15. Touch Screen Interface and ADC interface and instance
14.1 ADC principle.
14.1 touch screen interface and control.
16. LCD Controller
15.1 graphic display principle.
15.2 LCD controller.
15.3 LCD sequence.
15.4 LCD Driver-related framework and system.

17. I2S Audio bus
16.1 audio hardware principle.
16.2 I2S time series.
16.3.
16.4 audio device bare driver discussion.

18. CS8900 Nic Control
17.1 Logical Link Layer and MAC layer.
17.2 CS8900 principle and timing analysis.
17.3 follow-up discussion and architecture of the NIC bare driver.

19. Port TCP/IP protocol stack and Network Architecture
18.1 LWIP TCP/IP protocol stack overview.
18.2 LWIP configuration and compilation.
18.3 TFTP configuration and compilation.

20. Principles and Transplantation of bootloader
19.1u-boot configuration and compilation.
19.2u-boot startup history analysis.
19.3arm-Linux Startup request.
19.4 arm-Linux kernel LD-sript analysis.
19.5 U-boot to arm-Linux jump code analysis.
19.6 use mkimage to create a startup image file.

21. Principles and Transplantation of arm-Linux
20.1arm-Linux configuration and compilation.
Ipv2arm-Linux Startup code analysis.
20.3arm-Linux address ing relationship.
20.4 configure and compile busybox.

22. debugging and testing skills for ARM and other platforms

I will be familiar with using some test scripts to test my own driver or embedded hardware. This is very necessary for Android embedded development developers!
 
The last thing you need to talk about is that the best way to learn Android embedded development is practice. What you need to do is to continuously practice this knowledge and participate in some open-source Android projects, or it is better to enter a company that is engaged in Android development for exercise. This is a good method, so that you can learn the truth and have no internship or job opportunities, you can buy an Embedded Development Board online and learn it by yourself. It is also a good method. I wish you success!
 
Very good reference: http://download.csdn.net/detail/canjianfantasy/5130587

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.