文档章节

<转>Android研究-Android系统编译、SDK编译、ADT编译、Android开发环境建立

开源中国VIP
 开源中国VIP
发布于 2013/07/10 11:43
字数 1442
阅读 416
收藏 0

Android是嵌入式Linux发展的一个里程碑,近年来的嵌入式Linux应用之多,诸侯割据,也是时候有人来一统天下了,不说一统,也要给业界出个规范,出个信心,出个成功范本,Android就是嵌入式Linux的成功范例!

Android开放源码,对于研究嵌入式领域的方方面面都太有帮助了!驱动、操作系统、虚拟机、构建系统、Java语言、C/C++语言、对开源软件的整合等等,从Android中能学到太多太多!
本文从Android核心源码的下载、编译,以及ADT和SDK的编译和使用,给予详细介绍!

0. 介绍

ADT是Android针对eclipse的插件,提供了基本的工具,包括SDK的获取,配置等。所以开发Android应用ADT是必备工具!

SDK是软件开发包,各个平台都会放出SDK来供开发者使用!

Android源码中不包括kernel源码,需要另行下载编译!

SDK和ADT可直接从Android源码中编译获得!

repo是对git的封装,方便获取android源码的,源码用git维护的,所以用git获取源码也是一样的 

另:www.android.com网站上一切文档都有,网络上的文档也都是参照官方的!

 

一. 基本开发环境

Ubuntu-10.04即可,安装个本地源镜像,之后再安装软件包就速度飞快了!本文后续内容都假设系统为Ubuntu-10.04!

 

二. 安装Android编译需要的系统工具

官方参考页:http://source.android.com/source/initializing.html

(1)安装java环境

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk 
注意:ubuntu12.04下A. android需要的jdk6安装 		
B. http://www.oracle.com/technetwork/java/javase/downloads下载jdk6
C. 下载jdk-6u37-linux-x64.bin D. 放到合适的目录,如/home/rda/work/soft/,./安装到当前目录
E. 修改 ~/.bashrc增加环境变量

export JAVA_HOME=/usr/lib/jvm/java-7-sun //根据实际路径修改

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

(2)安装需要的软件包

$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline5-dev libz-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc


三. 获取源码

官方参考页:http://source.android.com/source/downloading.html

当前的Android 代码托管在两个地方:  https://github.com/android  和  https://android.googlesource.com  之前在 android.git.kernel.org 上也有托管,不过现在重定向到了  https://android.googlesource.com  好在都支持git访问。

(0)sudo apt-get install git-core curl

(1)建立repo工具目录,repo是对git源码控制工具的封装

$ mkdir ~/bin
$ PATH=~/bin:$PATH

(2)获取repo工具

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

(3)初始化repo客户端

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

 

(4)获取源码
$ sudo sysctl -w net.ipv4.tcp_window_scaling=0

 

$ repo sync -j1

 
 
 
 

  
  
此时可能因为连接过多,有错误发生,不过没关系,改用repo sync试试先.不行的话,用下边的方法再试试.

(4.0)如遇到错误:DownloadError: android.googlesource.com: <urlopen error [Errno 110] Connection timed out>

说明是服务器拒绝过多链接,可以申请下授权,比较简 单:

参考网址:http://blog.csdn.net/thl789/article/details/7524232

1. 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;

2. 点击网页上的“允许访问”,得到类似:

  1. machine android.googlesource.com login git-<userName>.gmail.com password <password>  
  2. machine android-review.googlesource.com login git-<userName>.gmail.com password <password>  

的 信 息。

3. 把上面那段信息(<userName>和<password>用自己得到的真实信息)追加到~/.netrc文件结尾;

4. 下载地址的URI更改为https://android.googlesource.com/a/platform /manifest(中间加上了“/a”)即可。

重复(3)步骤,用

repo init -u https://android.googlesource.com/a/platform/manifest -b android-4.0.1_r1
后,再repo sync即可.

四. 编译Android系统

1. 编译整个系统

官方参考链接:http://source.android.com/source/building.html

启动ccache会加速编译,不过也会产生问题,建议先不使用!

(1)启用环境

$ source build/envsetup.sh

(2)配置目标

$ lunch full-eng

(3)编译源码

$ make -j4

编译成功后,就可以运行模拟器看效果了,命令如下:

export ANDROID_PRODUCT_OUT=$PWD/out/target/product/generic

export ANDROID_SWT=$PWD/out/host/linux-x86/framework

export PATH=$PATH:$PWD/out/host/linux-x86/bin

emulator 即可看到效果了!

2. 编译SDK

(1)启用环境

$ source build/envsetup.sh

(2)配置目标

$ lunch sdk-eng

(3)编译源码

$ make sdk -j4

(4)编译结果在out/host/linux-x86/sdk目录就是sdk目录,此目录可备份下,以便后用

3. 编译ADT

export ECLIPSE_HOME=<XXXXXX> eclipse的根目录

sdk/eclipse/scripts/build_server.sh ./adt/

上边传说中的脚本可用来编译ADT,可我一直没成功!此处会依赖于后边的Eclipse,可在安装了Eclipse后再编译!

编译前,注意备份SDK.

4. 编译内核

官方参考链接:http://source.android.com/source/building-kernels.html

参考上面链即可,比较简单!


五.建立Eclipse上的Android开发环境

官方参考链接:http://developer.android.com/sdk/installing.html

(1)获取Eclipse

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-rcp-indigo-SR2-linux-gtk.tar.gz&url=http://download.actuatechina.com/eclipse/technology/epp/downloads/release/indigo/SR2/eclipse-rcp-indigo-SR2-linux-gtk.tar.gz&mirror_id=385

解压即可,直接能用了!建议下载rcp版本的!

(2)获取ADT

前边如果自己编译出来了,则按照道理说是不用再下载或者在线安装的,这里说下下载方法!

http://dl.google.com/android/ADT-18.0.0.zip 这个是目前最新的,下载即可

(3)安装ADT

Eclipse的Help里有个Install New Software,选择Achive,选择ADT-18.0.0.zip即可安装完成.

(4)安装SDK

SDK前边已经编译出来了,目录大约为out/host/linux-x86/sdk/,配置ADT的SDK目录即可,其他不用配置!

(5)创建一个AVD

AVD是虚拟设备,创建即可!

 

至此,本文把大概的Android的系统编译,SDK安装,开发环境等介绍了一下!

 

本文完!

本文转载自:http://www.cnblogs.com/linucos/archive/2012/05/02/2478960.html

开源中国VIP
粉丝 7
博文 8
码字总数 849
作品 0
深圳
程序员
私信 提问
【转】 Android开发手记一 NDK编程实例

Android 开发手记一 ---- NDK 编程实例 在 Android 上,应用程序的开发,大部分基于 Java 语言来实现。要使用 c 或是 c++ 的程序或库,就需要使用 NDK来实现。 NDK 是 Native Development K...

尼莫
2012/07/05
747
0
Android学习笔记之(一)开发环境搭建

至于说Android是什么之类的俺就不啰嗦了,因为它离我们太近了。直接上手配置环境。对于程序开发员来说,面对一个新的东西,上手莫过于几个东西了:开发包(提供了哪些API)、编程语言(用什么...

carlos
2014/10/17
77
2
[深入理解Android卷二 全文-第一章]开发环境部署

由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在OSC博客中全文转发这两本书的全部内容。 第1章 开发环境部署 本章...

邓凡平
2015/08/03
1K
0
在android adt中使用gnustep编译cocos2d-x

GNUstep 是一个跨平台的Objective-C的编译运行环境,同样可以用来编译cocos2d-x,大家可以看下《Windows 下使用 GNUstep 编译并运行 Objective-C 程序》。相对cygwin,下载安装更方便。 本文...

penngo
2013/08/15
1K
4
windows7 下 cocos2d-x-2.2 Android开发环境设置

最近要使用cocos2dx 来开发。关于开发环境的设置,网上的文章总是不全。 参照网上的的文章加上自己的实际操作,终于把环境搭起来了。最重要的是安装NDK+ADK的开发环境。 本文总结了整个过程,...

liwenhui
2013/11/02
2.1K
1

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
14
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部