Android
how to download android source
1.android source code
reference
http://www.moko365.com/blog/%E5%A6%82%E4%BD%95%E4%B8%8B%E8%BC%89android%E5%8E%9F%E5%A7%8B%E7%A2%BC
2.download kernel branch
取得 Goldfish 的Kernel Source code, 目前是版本是 2.6.29
git clone git://android.git.kernel.org/kernel/common.git
~/gitrepos/mydroid/kernel/common$ git branch -a
* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29
kunyi@kunyi:~/gitrepos/mydroid/kernel/common$ git checkout origin/android-goldfish-2.6.29
Checking out files: 100% (17574/17574), done.
3.download android sdk
copy android-sdk-linux_86/tools to /home/ku/mydroid/out/host/linux-x86
4. Modify kernel Makefile
ARCH=arm
CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
5.Build kernel
make goldfish_defconfig
make
6.Finish
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
AS arch/arm/boot/compressed/head.o
GZIP arch/arm/boot/compressed/piggy.gz
AS arch/arm/boot/compressed/piggy.o
CC arch/arm/boot/compressed/misc.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
android emulator
monitor radio
adb logcat -b radio
Ubuntu use mobile at command
cu -l /dev/ttyACM0
Android 系統源代碼結構簡介
Google提供的Android包含了原始Android的目標機代碼,主機編譯工具、仿真環境,代碼包經過解壓縮後,第一級別的目錄和文件如下所示:
.
|– Makefile(全局的Makefile)
|– bionic(Bionic含義為仿生,這裡面是一些基礎的庫的源代碼)
|– bootloader(引導加載器)
|– build (build目錄中的內容不是目標所用的代碼,而是編譯和配置所需要的腳本和工具)
|– dalvik(JAVA虛擬機)
|– development (程序開發所需要的模板和工具)
|– external(目標機器使用的一些庫)
|– frameworks(應用程序的框架層)
|– hardware(與硬件相關的庫)
|– kernel(Linux2.6的源代碼)
|– packages(Android的各種應用程序)
|– prebuilt(Android在各種平台下編譯的預置腳本)
|– recovery(與目標的恢復功能相關)
`– system(Android的底層的一些庫)
bionic目錄展開一個級別的目錄如下所示:
bionic/
|– Android.mk
|– libc
|– libdl
|– libm
|– libstdc++
|– libthread_db
`– linker
bootloader目錄展開的兩個級別目錄:
bootloader/
`– legacy
|– Android.mk
|– README
|– arch_armv6
|– arch_msm7k
|– fastboot_protocol.txt
|– include
|– libboot
|– libc
|– nandwrite
`– usbloader
build目錄展開的一個級別的目錄如下所示:
build/
|– buildspec.mk.default
|– cleanspec.mk
|– core (各種以mk為結尾的文件,它門是編譯所需要的Makefile)
|– envsetup.sh
|– libs
|– target (包含board和product兩個目錄,為目標所需要文件)
`– tools(編譯過程中主機所需要的工具,一些需要經過編譯生成)
其中,core中的Makefile是整個Android編譯所需要的真正的Makefile,它被頂層目錄的Makefile引用。
envsetup.sh是一個在使用仿真器運行的時候,用於設置環境的腳本。
dalvik目錄用於提供Android JAVA應用程序運行的基礎————JAVA虛擬機。
development目錄展開的一個級別的目錄如下所示:
development
|– apps (Android應用程序的模板)
|– build(編譯腳本模板)
|– cmds
|– data
|– docs
|– emulator (仿真相關)
|– host (包含windows平台的一些工具)
|– [...]
Android Architecture
Android Aarchitecture
1.Linux Kernel
2.Android Runtime
3.LIBRARIES
4.APPLICATION FRAMEWORK
5.APPLICATIONS
近期迴響