目 录
附录A 修改记录 ii
第1章 Spreadtrum Android的环境搭建 1-1
1.1 安装Ununtu 1.1-1
1.2 更新Ubuntu系统软件 1.2-1
1.3 安装合适的gcc和make版本 1.3-1
1.4 安装Sun-java6-jdk 1.4-1
1.5 安装更新Andriod所需环境软件 1.5-2
第2章 Spreadtrum Android的源码编译 2-3
2.1 解压缩源码包至某工作目录 2.1-3
2.2 编译所有代码 2.2-3
2.3 单独编译uboot ,spl和fdl2 2.3-3
2.4 单独编译kernel 2.4-4
2.5 仅编译原生Android 2.5-5
第1章 Spreadtrum Android的环境搭建
可参考Google的Android环境搭建网页:source.android/source/initializing.html.
1.1 安装Ununtu
编译的操作系统要求是Ubuntu,编译环境可以是个人电脑,也可以是服务器。
对于个人电脑,可以单独装Ubuntu(包括和Windows双系统共存),也可以在Windows上安装Ubuntu虚拟机VM。本步骤使用Ubuntu10.10 VM on Windows XP SP3。验证Ubuntu10.10以及Ubuntu11.04可以编译。如果是Ubuntu11.10的话,由于其附带的gcc为4.6版本,需要降级处理或者安装合适的gcc。
1.2 更新Ubuntu系统软件
1. 将ububtu所有系统软件更新包下载下来:sudo apt-get update
2. 安装更新包:sudo apt-get upgrade
1.3 安装合适的gcc和make版本
要能正确编译源代码,需要配备合适版本的gcc,make,java。8805和8810的编译环境一样,要求java6,gcc4.5/4.4,make3.8.1。随Ubuntu版本的不同,其附带的gcc版本也会不一致。高版本的gcc对代码要求较高,编译时可能会出问题。目前代码在4.4,4.5下的gcc可以编译,但是在gcc4.6下编译不成功,需要安装低版本的gcc。用gcc -v可以看到gcc的版本信息。
正常的make版本是3.8.1, 用make -v可以看到其版本信息。
1.4 安装Sun-java6-jdk
1. 查看Java版本:
java -version
如果结果显示是"java version "1.6.xx.xx"",则跳过以下第2步。
2. 用下面的命令将java6的下载地址加入到sources.list并下载安装java6。
sudo add-apt-repository "deb archive.canonical/ lucid partner"
sudo add-apt-repository "deb-src archive.canonical/ lucid partner"
sudo add-apt-repository "deb archive.canonical/ubuntu lucid partner"
sudo add-apt-repository "deb-src archive.canonical/ubuntu lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
3. 在~/.bashrc文件最后添加下面三行修改环境变量:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
1.5 安装更新Andriod所需环境软件
若某个软件已经安装于实际系统,再次执行安装命令会自动跳过,如果忘记安装某些软件,则在后续编译过程中会提示没有安装,需要安装。
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos
sudo apt-get install libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind
如果连续安装没有成功,可分别安装。以上命令等效于分别安装每个软件:
sudo apt-get install git-core
sudo apt-get install gnupg......
第2章 Spreadtrum Android的源码编译
2.1 解压缩源码包至某工作目录
tar -zxvf YourPackage.tar.gz
拿到的IDH包包括基础包和可选包,需要把可选包解压以后放在正确的位置。其中uboot的源代码目录u-boot要放在Android根目录下,hisense和CSR包里面解压出来的各个目录要放置在3rdparty子目录内。[如果客户使用CSR BT/WIFI/GPS,需要和CSR签订协议,才会得到我们的CSR包。]
2.2 编译所有代码
1. 进入3rdparty:cd 3rdparty/
2. .查看帮助信息(其中openphone,sp8805ga,sp8810ga是支持的产品列表) :
    ./build.products.sh
3. sp8805ga平台编译
./build.products.sh sp8805ga
最终生成文件在目录out/target/product/hsdroid里面,其中boot.img, system.img和userdata.img是下载所需要的文件。
4. sp8810ga平台编译
./build.products.sh sp8810ga
最终生成文件在目录out/target/product/hsdroid里面,其中boot.img, system.img和userdata.img是下载所需要的文件。
注意,3rdparty目录里面的各个模块是否参加编译取决于3rdparty/products/产品名/build.sh里面定义的模块,可以根据需要手动开关。
2.3 单独编译uboot ,spl和fdl2
1. 进入u-boot:cd u-boot/
2. sp8805ga平台编译
make CROSS_COMPILE=你的android路径/ preb



=======================================
注意:
1. 下载Ubutu11.04 通过U盘制作启动盘 注意64bit还是32bit
android2.3必须使用64bit,64bit只有AMD的,但是Intel的可以使用。
在用户登录界面底部选择 ubuntu经典 模式

禁用触摸屏 sudo rmmod psmouse


2. 下载并解压JDK6 注意64bit还是32bit 配置环境变量


3. 下载eclispe chmod a+x eclipse
可以在终端顺利启动Eclipse ,但是鼠标双击,或者用起动器启动就会出现如下的内容:

A Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No java virtual machine was found after searching the following locations:…

解决办法是在终端进入你的eclipse 目录,然后输入:
mkdir jre
cd jre
ln -s 你的JDK绝对 目录/bin bin

4. 配置adb 执行环境

更多相关文章

  1. Android(安卓)apk反编译java代码
  2. cocos2dx在xcode下开发,编译到android上(2)
  3. Android各版本间API的差异 - ActionBar
  4. Android利用系统广播---监听应用程序安装和卸载[转]
  5. android2.1短信应用
  6. Android之编译打包apk的技巧
  7. Android系统移植与调试之------->如何修改Android设备的默认休眠
  8. Android(安卓)recovery支持adb shell
  9. Linux Mint 15下编译Chromium for Android

随机推荐

  1. Windows环境下Git配置及使用
  2. Oracle ADDM --dbms_addm执行oracle数据
  3. 【DB笔试面试726】在Oracle中,RAC中的Publ
  4. 【DB笔试面试739】在Oracle中,如何获取集
  5. 【DB笔试面试602】在Oracle中,如何从执行
  6. 【DB笔试面试756】在Oracle的DG中,有哪些
  7. Oracle 定义者权限与调用者权限(AUTHID CU
  8. 【DB笔试面试591】在Oracle中,什么是星型
  9. 【DB笔试面试601】在Oracle中,给出下面执
  10. Oracle的簇与簇表