如何在Ubuntu编译Android2.3源代码以及制作自己的SDK

 我来答
huanglenzhi
推荐于2016-07-24 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517196
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  网上下一个软碟通软通(UitraISO)工具、然后去官网上下载一个64位ubuntu.*.iso系统文件、然后软碟通工具自己制作一个USB启动盘(非常简单)不会用软碟通的百度一下一大把!、系统最好是10.40以上的版本

  使用的是ubuntu官网下载的ubuntu10.04 LTS 64位版本(ubuntu-10.04.2-desktop-amd64.iso)

  配置软件源:

  系统安装完毕以后应该首先换一个速度快的软件源

  一般用的是ubunt

  不然下载各种更新和软件包的时候非常的慢

  安装JDK:

  我要编译的是2.3姜饼的源代码 所以需要使用jdk6 (还需要是64位的系统)

  如果是32为系统藐视jdk要安装jdk5.0的吧!藐视说有个doc什么的不行!所以系统一般装64的、如果是32的小伙们赶快把jdk看看

  安装方法:

  打开终端

  输入

  sudo add-apt-repository "deb "

  sudo add-apt-repository "deb-src "

  sudo apt-get update

  sudo apt-get install sun-java6-jdk

  就安装好了 (ubuntu10.04 LTS版会自带那两个源)

  并且不需要配置环境变量

  这一步可以参考

  安装各种软件包:

  终端中输入

  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 texinfo libsdl-dev libwxgtk2.6-dev

  最后三个是我补充的 其他都是官方文档提供的

  这一步可以参考

  下载源代码:

  打开终端并输入

  mkdir ~/bin

  PATH=~/bin:$PATH

  这两句是在你的个人文件夹下创建了一个名字叫bin的文件夹 并且把其加入到了环境变量中

  再输入

  curl ; ~/bin/repo

  chmod a+x ~/bin/repo

  这两句首先在bin目录下面下载了一个repo文件 repo简单来说就说用来版本控制的 我们就是用的它来同步代码

  然后建立一个用来存放源代码的文件夹 我的这个文件夹的名字是android2.3

  输入

  mkdir android2.3

  cd android2.3

  进入android2.3目录

  输入

  repo init -u git://androi/platform/manifest.git -b gingerbread

  在此说明一下:

  安卓总称:“机器人”

  1.5系统:“纸杯蛋糕”

  Android 1.6 Donut甜甜圈
  Android 2.0 Eclair松饼
  Android 2.1 Eclair松饼
  Android 2.2 Froyo冻酸奶
  Android 2.3 Gingerbread姜饼(以上系统都是用于手机的)官方消息说2.4准备出来了!至于3.0目前只用于平板电脑

  Android 4.0 Ice Cream Sandwich(简称ICS,冰淇淋三明治),

  表示你需要的代码是姜饼的 所以最后是gingerbread 如果是2.2代码 就把gingerbread改成froyo

  然后你需要输入你的名字跟邮箱地址

  如果提示找不到repo命令的话 需要重新设置环境变量 就是之前的PATH=~/bin:$PATH

  输入

  repo sync

  开始同步代码 这个过程会根据你的网速来决定快慢

  这一步需要下载的数据有3g那么大

  可以续传 一次没下完也没关系

  如果之前就已经下过一次的话 只需要把源代码目录(我的是android2.3)下有一个叫.repo的隐藏文件夹里的projects文件夹备份出来就可以了

  以后还需要同步的时候再把projects文件夹拷贝回去

  ctrl+h查看隐藏文件

  这一步可以参考

  编译整个源代码:

  cd android2.3

  进入你的代码目录

  输入

  . build/envsetup.sh

  注意.和build中间有个空格

  输入

  lunch full-eng

  make -j2

  输入make就是开始编译代码了 加一个-j2参数就是开两个线程去编译 速度会快些 我花了两个小时的时间

  编译完毕以后马上输入

  emulator

  就可以运行模拟器了 系统能跑起来就说明编译成功了

  如果提示找不到emulator命令的话

  需要添加环境变量

  在android2.3目录下的out/target/product/generic文件夹下会看到system.img

  能看到的话应该算是成功了

  这一步可以参考

  编译SDK:

  这一步在官方网站上没有说明

  但是在源代码文件夹里面有文档提到了

  就是在android2.3/sdk/docs目录下有一个叫howto_build_SDK.txt的文件介绍了如何编译SDK

  原文

  Then once you have all the source, simply build the SDK using: $ cd ~/my-android-git $ . build/envsetup.sh $ lunch sdk-eng $ make sdk

  看来不需要先编译整个系统再编译SDK 可以直接上来就编译SDK

  按提示输入

  make到时候也可以加上-j参数 比如 make -j2 sdk

  但是不推荐 因为容易编译失败 而且编译SDK只需要二十多分钟到时间 不算很长

  当出现

  Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip

  的时候 就表示编译成功了 其中<build-id>默认是系统的用户名

  howto_build_SDK.txt中还提到了编译ADT插件

  我发现自己编译到ADT插件竟然认不到platform 自己编译出来到SDK也一样

  原因不明

  只要使用官方的SDK和ADT就没有问题了

  具体就是把自己编译出来platform拷贝到官方SDK里到platforms文件夹下 搞过Android开发都懂的

  最后:

  非常简单的一步

  就是直接修改源代码然后编译SDK就可以得到自己的SDK了

  我就示范一个简单的例子 抛砖引玉

  首先我找到TextView的代码

  在frameworks/base/core/java/android/widget 如图

  我在updateTextColors方法的开头添加了一句System.out.println

  打印了一句话"Source Code Changed"

  updateTextColors方法会在TextView的setTextColor方法中被调用

  好 保存

  编译

  然后使用这个platform

  新建一个项目

  调用一下TextView的setTextColor方法看看有什么效果

  

  一个很简单的例子

  

  看看

  Source Code Changed被打出来了

  SDK修改成功
  
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式