Android

The Study and Implementation of Operating System Porting for Android m *

Android ft: 132

Android - ARM > Cell - Device driver > Embedded - GNU Make - Google -Kernel - Linux - Mobile - Open Source - Operating System - Phone - Porting - PXA270 -

ItAl^^fiAtift^ti^^^it; feMfc Google m^MM^a^^ ^l^fa ' fiffmt'^ttt fim^^^fa^M^^ Android '

Linux =

Android '

' Android ' a^Wi^M Android ftt

itbAt'^i Android atfl^tfr^—S^^mttt ' GNU Make itTtT^tft parallel make

ABSTRACT

Title : The Study and Implementation of Operating System Porting for Android Pages : 132

School : National Taipei University of Techology

Department : Department of Computer Science and Information Engineer

Keywords: Android, ARM, Cell, Device driver, Embedded, GNU Make, Google, Kernel, Linux, Mobile, Open Source, Operating System, Phone, Porting, PXA270

In recent years, with the appearance of smart phones, development of the operating systems for handheld devices has attracted more and more attention. In the past, the specifications and developments of the handheld devices are usually defined by the vendors in a propritory method. With the ambition to extend the market share in the mobile phone related industry, Google has started to develop a free and open source based software platform, called Android, for these kinds of devices. Since then, Android soon gets focus from the world-wide industry companies, government departments, and academic organization. This also helps the Linux community in its applications in embedded systems.

We not only have ported Android into one of our embedded platform (a PXA270 board), but also we'd like to share our experience and detailed procedures to anyone who are interested in Android porting. The keypoint of this thesis is to emphasize the process of porting, instead of how to port it to any particular hardware platform. However, this process still depends on some of the hardware components that are used. The porting process involves many issues related to the hardware. These include the work of kernel porting, driver porting, and also some modification to the Android

Time : July, 2009

Researcher : Wen-Chang Chung

Degree : Master Advisor : Wen-Yew Liang application framework and libraries.

Based on our work, we hope that people who are interested in Android have the chance to get more understanding on how it work and how to realize it on their own platforms.

Android 4

Embedded Linux System 10

3.3 ffi&mz 17

Android ftfe-pm^'Afe 19

4.1 PXA270 19

4.3 Linux kernel 24

4.3.3 Linux kernel 30

4.3.4 Linux kernel 30

4.4.1.1 Double Framebuffer 32

4.4.2 Keypad 33

4.4.3 Touch 34

4.4.4 mf Android 40

4.5.1 Linux kernel / device driver 41

4.5.2 Android 43

4.6 ^f Android 44

5.1 — Building Environment ^ Android Building Environment ff^ 48

5.2 amFWttff^ 50

A Shell ffi^ 65

Ffr^ B Framebuffer driver ( pxafb.c) 66

C pxafb.h 69

Ffr^ D Keypad driver ( android_keypad.c ) 70

E Touch driver (ucb1400_ts.c) 80

F init.rc 85

G linux-2.6.25-android-1.0_r1/Makefile 91

H linux-2.6.25-android-1.0_r1/arch/arm/Makefile 92

I linux-2.6.25-android-1.0_r1/arch/arm/configs/android_pxa270_defconfig 9 3

J linux-2.6.25-android-1.0_r1/arch/arm/kernel/head.S 103

Ffr^ K linux-2.6.25-android-1.0_r1/arch/arm/mach-pxa/clock.c 104

L linux-2.6.25-android-1.0_r1/arch/arm/mach-pxa/irq.c 105

Ffr^ M linux-2.6.25-android-1.0_r1/drivers/cpufreq/Kconfig 106

N linux-2.6.25-android-1.0_r1/drivers/i2c/chips/Makefile 107

Ffr^ O linux-2.6.25-android-1.0_r1/drivers/input/keyboard/Kconfig 108

P linux-2.6.25-android-1.0_r1/drivers/input/keyboard/Makefile 109

Q linux-2.6.25-android-1.0_r1/include/linux/config.h 110

R mydroid/cdma-import/build/core/definitions.mk 111

Ffr^ S mydroid/cdma-import/external/sqlite/dist/Android.mk 112

T mydroid/cdma-import/frameworks/base/core/jni/server/com_android_ser ver_BatteryService.cpp 113

U mydroid/cdma-import/hardware/libhardware/power/power.c 115

V Android 116

W Android 117

119

B 2-1 Android Architecture 6

B 2-2 Android Emulator 7

B 3-3 Bootloader ^ Linux kernel 1 architecture number thM^It 11

B 3-4 Kernel hacking 12

B 3-6 bootloader ^ Linux kernel 1 architecture number Linux kernel config tl CONFIG_DEBUG_LL t^i^^^^ml 14

B 3-7 Linux kernel iM^i! 15

B 3-10 Embedded Linux System l^f^i! 17

B 4-1 PXA27x Processor Block Diagram 20

B 4-2 PXA270 21

B 4-3 Android 24

B 4-4 Linux kernel l^ilB 25

B 4-5 WinMerge 27

B 4-8 Android M touch 37

B 4-10 Android PXA270 it^^^i^iml 37

B 4-11 Android & BatteryService ¿f^I 39

B 4-12 Android & PowerManagerService ¿fLiI 40

B 4-13 Android PXA270 45

B 4-14 Android PXA270 46

B 4-15 Android PXA270 47

B 5-1 recursive make M Android l«5fi£&tt#3 50

B 5-2 building environment 52

B 5-4 make menuconfig 55

0 0

Post a comment