Sunday, May 10, 2009

fedora 9 编译 Android

android
    主站:http://www.android.com/
    application develop based on the platform: http://developer.android.com/
    platform develop:http://source.android.com/  


源代码的下载说明页面是:http://source.android.com/download
最新的release:Release features


(1) 配置repo账户
git config --global user.email "xxxxx@xxxxxxx"
git config --global user.name "xxxxxx"

(2)开始准备下载android
cd ~/work/android_dev
mkdir mydroid
cd mydroid
../bin/repo init -u git://android.git.kernel.org/platform/manifest.git -b android-1.5

(3)开始下载android platform的源代码
repo sync
这个操作会持续一段时间,看网速了,只有800M左右。

(4)编译
make
我这边编译时间在一小时以上
编译完毕以后,会发现在代码目录下多了一个目录:
~/work/android_dev/mydroid/out

如果报错:
which: no javac in (/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/opt/real/RealPlayer:/home/dybbuk/bin:/sbin/:/usr/sbin/:/opt/real/RealPlayer)
 则说明你没有安装 jdk 5.0..  去 http://java.sun.com/javase/downloads/5/jdk  下载 jdk  安装后,  设置环境变量:
export ANDROID_JAVA_HOME=/usr/java/jdk1.5.0_18
export PATH=/usr/java/jdk1.5.0_18/bin:$PATH

(5)开始验证生成的结果
export ANDROID_PRODUCT_OUT=~/work/android_dev/mydroid/out/target/product/generic
~/work/android_dev/mydroid/out/host/linux-x86/bin/emulator
应该看到开机的画面(第一次开启的时候,应该还有一个向google反馈的一个对话框,按下确定即可)。


paltform source layout:
Project
    Description
bionic
    C runtime: libc, libm, libdl, dynamic linker
bootloader/legacy
    Bootloader reference code
build
    Build system
dalvik
    Dalvik virtual machine
development
    High-level development and debugging tools
frameworks/base
    Core Android app framework libraries
frameworks/policies/base
    Framework configuration policies
hardware/libhardware
    Hardware abstraction library
hardware/ril
    Radio interface layer
kernel
    Linux kernel
prebuilt     Binaries to support Linux and Mac OS builds
recovery
    System recovery environment
system/bluetooth
    Bluetooth tools
system/core     Minimal bootable environment
system/extras
    Low-level debugging/inspection tools
system/wlan/ti     TI 1251 WLAN driver and tools

===============================================
kernel
===============================================
下载的kernel为manifest 的kernel
用于模拟器的板型为goldfish,所以要编译kernel需要把kernel切换到 goldfish 的分支.
[dybbuk@localhost kernel]$ git branch -r
  korg/android-2.6.25
  korg/android-2.6.27
  korg/android-2.6.29
  korg/android-goldfish-2.6.27
  korg/android-goldfish-2.6.29
  m/android-1.5
  m/master
[dybbuk@localhost kernel]$ git checkout korg/android-goldfish-2.6.29
toolchain:
直接用android里自带的:
 export PATH=/home/dybbuk/work/android_dev/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin:$PATH
make ARCH=arm CROSS_COMPILE=arm-eabi- goldfish_defconfig
make ARCH=arm CROSS_COMPILE=arm-eabi-
即可生成emulator所用的zImage