Android SDK 源代码编译

本文提供了一套详细的步骤指南,用于在Ubuntu系统中安装并配置所需的环境,以便进行Android SDK的编译。包括安装依赖库、下载SDK、编译代码到模拟器运行,以及编译特定模块等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值