1. 环境

Ubuntu 10.04 32-bit

sudo apt-get install git-core

sudo apt-get install curl

sudo apt-get install zlib -dev 变为 sudo apt-get install zlib1g -dev

sudo apt-get install bison

sudo apt-get install flex

sudo apt-get install libncurses-dev (libncurses5-dev)

sudo apt-get install g++

sudo apt-get install libx11-dev

sudo apt-get install gperf

安装Java6

关于Java版本:Java6能够编译代码,但不能生成文档,最好准备两套Java环境

Ubuntu 10.04 64-bit

sudo apt-get install libc6-dev-i386

sudo apt-get install lib32ncurses5-dev

sudo apt-get install libx11-dev

sudo apt-get install g++-multilib

sudo apt-get install lib32z1-dev

64-bit Java6

2. 下载Android SDK

curl http://android.git.kernel.org/repo > ~/bin/repo

chmod a+x ~/bin/repo

如果是想把Android当前主线上最新版本的所有的sourcecode拿下来,www.linuxidc.com我们需要repo的帮助。
先建立一个目录,比如~/android,进去以后用repo init命令即可。
repo init -u git://android.git.kernel.org/platform/manifest.git

获取eclair代码:

repo init -u http://android.git.kernel.org/platform/manifest.git -b eclair

从Android 2.2开始,编译SDK需要64位系统,32位的,只好先编译Eclair了.

repo init -u http://android.git.kernel.org/platform/manifest.git -b eclair

repo sync

3. 编译

make

cd eclair

. ./build/envsetup.sh

make sdk

在模拟器上运行编译好的android
编译好android之后,emulator在~/android/out/host/linux-x86/bin 下,ramdisk.img,system.img和userdata.img则在~/android/out/target/product /generic下
$ cd ~/android/out/host/linux-x86/bin
增加环境变量
$ emacs ~/.bashrc
在.bashrc中新增环境变量,www.linuxidc.com如下
#java 程序开发/运行的一些环境变量
export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};

最后,同步这些变化:
$ source ~/.bashrc
$ cd ~/android/out/target/product/generic
$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img
最后进入android桌面,就说明成功了。

4. 编译模块

android中的一个应用程序可以单独编译,编译后要重新生成system.img
在源码目录下执行
$ . build/envsetup.sh (.后面有空格)
就多出一些命令:
- croot:   Changes directory to the top of the tree.
- m:       Makes from the top of the tree.
- mm:      Builds all of the modules in the current directory.
- mmm:     Builds all of the modules in the supplied directories.
- cgrep:   Greps on all local C/C++ files.
- jgrep:   Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir:   Go to the directory containing a file.
可以加—help查看用法
我们可以使用mmm来编译指定目录的模块,如编译联系人:
$ mmm packages/apps/Contacts/
编完之后生成两个文件:
out/target/product/generic/data/app/ContactsTests.apk
out/target/product/generic/system/app/

5. 直接执行make是不包括make sdk的。make sdk用来生成SDK,这样,我们就可以用与源码同步的SDK来开发android

更多相关文章

  1. android 动画模块分析
  2. Android PDF 阅读器源码
  3. linux下获取环境变量(Android)
  4. Android中hardware源码(android-5.0.2)
  5. android 源码
  6. Android Choreographer 源码笔记
  7. 下载Android SDK tools完成Android SDK 安装、配置环境变量
  8. android 虚拟按键源码流程分析
  9. 我所理解的Android模块化(一)——模块化概念和路由

随机推荐

  1. Android(安卓)底部支付弹窗
  2. Android(安卓)studio安装:
  3. Android(安卓)开发者必知必会的权限管理
  4. 玩转Android上透明状态栏,全屏显示以及沉
  5. Android里面classes.dex如何生成
  6. Android(安卓)串口通信之间的发送数据与
  7. ContentProvider中gettype() 和MIME类型
  8. Android(安卓)studio 导出jar包并混淆和a
  9. Android开发之数据存储全方案
  10. Android实现局部重绘