Using High Level View on Android Porting

3 downloads 13530 Views 1MB Size Report
《2010 Android平台社群開發大會– Using High Level View on Android Porting》. Copyright ... http://developer.Android.com/guide/basics/what-is-Android.html ...
Using High Level View on Android Porting Mask (鍾文昌) [email protected]

http://www.mask.org.tw

作者簡介

http://www.mask.org.tw 鍾文昌 Mask 數年 Linux 及 Embedded Linux 相關開發經驗,開發產品包含 Set-Top-Box、手機及快速開機軟體等相關產品,接觸過 x86、 MIPS 及 ARM platform,對 Linux kernel、Linux device driver、Shared Library、Application 等皆有所涉獵。 在 IC 廠完全沒有支援 Android 的情況下,獨立 移植 Android 至 PXA270、OMAP3530 等硬體 平台。 豐富的 Android Porting 授課經驗。

2

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Android 1.0 on PXA270

3

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Android 1.5 on OMAP3530

4

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Demo

5

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Using High Level View on Android Porting z z z z z

6

Linux booting procedure How to trace Linux kernel Android booting procedure How to trace Android source code Treat Android as Black Box

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Embedded Linux System Architecture

7

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Android Architecture

http://developer.Android.com/guide/basics/what-is-Android.html 8

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Embedded Linux System Boot Sequence

9

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

How to Construct An Embedded Linux System

10

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Android Porting Flow

http://developer.Android.com/guide/basics/what-is-Android.html 11

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Android Porting Flow (cont)

12

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Android Porting Flow (cont)

13

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Key of Porting Android z

Complex but not difficult z z z z z

z

Attitude Luckiness Linux system architecture Software utilities Experience

Only 2 ways z z

ctags Burst-force z find

14

& grep

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Porting Strategy of Linux Kernel for Android

15

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Real Case on Porting Linux Kernel for Android

16

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Real Case on Porting Linux Kernel for Android (cont)

17

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Use Tools to Port Linux Kernel for Android z

Linux platform z Meld z KDiff

z

Windows platform z WinMerge

18

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Meld

19

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

KDiff3

http://kdiff3.sourceforge.net/doc/screenshots.html 20

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

WinMerge

21

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Potential Problems on Porting Linux Kernel z

Data structure z z

z

Init section z

z

Only consider the BSP changed from the official Linux kernel

File name changed z

22

Reference successfully compiled drivers

Source dispersed z

z

Reference similar platforms Reference multiple versions of Linux kernel

Same as the previous item

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Android Booting Procedure z

system/core/init/init.c (/init) z /init.rc z Daemons z adbd z rild z…

z

Zygote z Service Manager z System Service 23

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

How to Trace Android Source Code z

24

ctags --C++-kinds=+p -R

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Logcat

25

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Android BatteryService Workflow

26

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Battery Driver z

Battery Driver creates the following sysfs entries z z z z z z z z z

27

/sys/class/power_supply/ac/online /sys/class/power_supply/usb/online /sys/class/power_supply/battery/status /sys/class/power_supply/battery/health /sys/class/power_supply/battery/present /sys/class/power_supply/battery/capacity /sys/class/power_supply/battery/batt_vol /sys/class/power_supply/battery/batt_temp /sys/class/power_supply/battery/technology

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Relationship between Input Keys and Android Services

28

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Q&A

29

《2010 Android平台社群開發大會 – Using High Level View on Android Porting》 Copyright © 2009 - 2010 Mask. http://www.mask.org.tw

Suggest Documents