編輯:中級開發
主要過程:
. 安裝lunux 環境
. 安裝編譯工具
. 下載Linux kernel
. 安裝android SDK
. 獲得root file system
. 修改Linux kernel 源碼
. 配置Linux kernel
. 修改root file system
. 編譯Linux kernel
. 下載kernel Image
1.安裝Linux 環境
安裝Ubuntu Linux 系統,從網站上下載操作系統安裝光盤映像,地址:
http://mirror.lupaworld.com/ubuntu/releases/8.04/
下載ubuntu-8.04.2-desktop-i386.iso,刻錄成光盤安裝,安裝可以在Windows 系統下進行,
選取有15G 空間的硬盤安裝,輸入用戶密碼開始安裝
這一步結束退出光盤重啟進入Ubuntu 系統,完成余下系統安裝。
Linux 安裝完成,進入Ubuntu 系統,確保電腦連接Internet,安裝一些必要軟件。
打開終端輸入命令框,進行下面的操作:
$ sudo apt-get install ssh
$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
$ sudo apt-get install valgrind
$ sudo apt-get install sun-Java6-jdk
$ sudo apt-get install libncurses5-dev
所有軟件系統會自動從網絡下載安裝,完成後可以開始android 的移植。
2.安裝編譯工具
下載:
$ wget
http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-Linux-gnu.tar.bz2
安裝:
$ tar -xjvf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-Linux-gnu.tar.bz2
3.下載Linux kernel
從下面地址獲得:
http://code.google.com/p/android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount
Kernel : Linux-2.6.23-android-m5-rc14.tar.gz
解壓文件
$ tar -xf Linux-2.6.23-android-m5-rc14.tar.gz
4.安裝android SDK
從網上下載Linux 版本的android SDK,如下
http://dl.google.com/android/android-sdk_m5-rc15_Linux-x86.zip
下載後解壓,獲得android-sdk_m5-rc15_Linux-x86 文件
5.獲得root file system
⑴下載busybox 工具從下面地址
http://benno.id.au/blog/2007/11/14/android-busybox (Linux 環境中下載)
⑵運行emulator 獲取root file system
$ cd <目錄>/ android-sdk_m5-rc15_Linux-x86/tools
$ ./emulator&
等待emulator 啟動,看到出現android 系統畫面,進入菜單ALL/Dev Tools/Development Settings 下,將Wait for debugger,Show running processes,Show screen updates 這三項打勾,回到命令輸入終端。
$ ./adb push <local-path>/busybox /data
$ ./adb shell
# /data/busybox tar -czf system.tar.gz /system
# /data/busybox tar -czf data.tar.gz /data
# /data/busybox tar -czf etc.tar.gz /etc
# /data/busybox tar -czf sbin.tar.gz /sbin
# exit
$ ./adb pull /system.tar.gz ./
$ ./adb pull /data.tar.gz ./
$ ./adb pull /etc.tar.gz ./
$ ./adb pull /sbin.tar.gz ./
$ ./adb pull /init ./
通過busybox 工具獲得了emulator 的文件並打包,下面建立root 文件目錄
$ mkdir initial_ram_disk
$ cd initial_ram_disk
$ mkdir cache
$ mkdir d
$ mkdir dev
$ mkdir proc
$ mkdir root
$ mkdir sdcard
$ mkdir sys
$ mkdir tmp
$ mkdir var
$ tar -xf <local-path>/system.tar.gz ./
$ tar -xf <local-path>/data.tar.gz ./
$ tar -xf <local-path>/etc.tar.gz ./
$ tar -xf <local-path>/sbin.tar.gz ./
$ cp <local-path>/init ./
包含android root 文件系統的initial_ram_disk 做好。
6.修改Linux kernel 源碼
下載的kernel 文件是不支持smdk6400 開發板的,必須加入smdk6400 的配置文件到kernel 中,同時修改Kconfig 和Makefile 文件。
修改如下:
1> 選擇 /arch/arm/Mach-s3c2410/Makefile.boot 改為下面內容,
zreladdr-$(CONFIG_PLAT_S3C24XX) := 0x30008000
params_phys-$(CONFIG_PLAT_S3C24XX) := 0x30000100
zreladdr-$(CONFIG_PLAT_S3C64XX) := 0x50008000
params_phys-$(CONFIG_PLAT_S3C64XX) := 0x50000100
2> 從成熟的smdk6400 平台文件中拷貝下面文件到kernel 目錄
/arch/arm/Mach-s3c6400
/drivers/serial/s3c6400.c
/drivers/input/touchscreen/s3c-ts.c
/drivers/usb/gadget
3> 拷貝/drivers/android/ashmem.c 文件到相應目錄下從另外的android kernel (The android source code for 2.6.23 不包含此文件)
4> 修改相應的Kconfig 和Makefile 文件,使最終能編譯到加載的smdk6400 文件。
7.配置Linux kernel
修改kernel 後進行配置,用到第2 步的編譯工具
$ cd <kernel-src>
$ make CROSS_COMPILE=<path-to-compiler>/bin/arm-none-Linux-gnueabi- ARCH=arm
menuconfig
這時進入kernel 配置畫面,注意配置Initramfs source file 選項指定到initial_ram_disk 文件。
8.修改root file system
配置Touchscreen 使之能正常工作, initial_ram_disk 文件下修改/etc/init.rc,加入下面內容
TSLIB_CONSOLEDEVICE none
TSLIB_FBDEVICE /dev/graphics/fb0
TSLIB_TSDEVICE /dev/input/ts0
TSLIB_CALIBFILE /etc/pointercal
TSLIB_CONFFILE /etc/ts.conf
TSLIB_PLUGINDIR /lib/ts
9. 編譯Linux kernel
$ make CROSS_COMPILE=<path-to-compiler>/bin/arm-none-Linux-gnueabi- ARCH=arm
zImage
編譯成功,在arch/arm/boot 下面是生成的zImage 文件。
10.下載kernel image
進入Windows 系統,下載過程在Windows 系統中完成。
① 打開:程序附件通訊超級終端,配置COM 口,115200,8N1
② 連接smdk6400 開發板和電腦通過串口線,打開開發板電源,可以在超級終端中看到輸出信息,bootloader 啟動,按空格鍵進入命令輸入狀態
③ 板子上連接USB 線到電腦,安裝USB 驅動程序
④ 運行dnw.exe 程序,配置Configuration/Options,地址0x57e00000,確定
⑤ 在超級終端中輸入相應命令,開始下載
$ run bootup (下載bootloader)
$ run kernelup (下載kernel Image)
$ run rootup (下載root file system)
⑥ 這裡我們輸入
$ run kernelup
等待dnw 發送文件,dnw 顯示[COM1,115200bps][USB:OK][ADDR:0x57e00000]說明連接成功,選擇USB Port->Transmit,選取編譯成功的zImage 文件,開始下載。
下載完成,重啟開發板,等待,LCD 上出現一些Android 字符,一段時間白屏,出現一個左右滾動的紅色滾動條,進入主界面,android 移植成功。
收集用戶數據您已經創建了 Activity 主屏幕布局,現在可以創建用戶界面表單來收集數據了。在本例中,您將創建一個 Robotics Club R
簡介: 對於需要跨應用程序執行期間或生命期而維護重要信息的應用程序來說,能夠在移動設備上本地存儲數據是一種非常關鍵的功能。作為一名開發人員,您經常需要存儲諸如
簡介: 一直以來,“對多個浏覽器進行測試” 像是一條難以解開的咒語,因為需要對大量浏覽器進行測試。對所有浏覽器進行測試(尤其是目前)幾乎是不可能的。但是這比您
開發出高效穩定的Android應用我們不得不需要了解下Java虛擬機的原理和內存分配機制,android使用的是Google經過優化的Dalvik Java VM。通常