Android源码的下载

在这里面以Ubuntu(x86)操作系统为例,说明下载Android的步骤:

下载必要工具:

下载GIT工具:

$ sudo apt-get install git-core gnupg

下载JDK6:

$ sudo apt-get install sun-java6-jdk

下载下列工具包:flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl

$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

下载Valgrind工具:

$ sudo apt-get install valgrind

安装Repo工具:

创建目录存放Repo:

$ cd ~

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

下载Repo:

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

$ chmod a+x ~/bin/repo

创建文件夹用于存放Android源码:

$ mkdir mydroid
$ cd mydroid

配置Repo:

$ repo init -u git://android.git.kernel.org/platform/manifest.git

下载Android源代码:

$ repo sync

注意:因为网络不稳定的原因,下载过程中经常发生下载中断的现象,这里提供通过脚本的方式自动下载当下载中断发生时,脚本如下:

#!/bin/bash

echo "======start repo sync======"

repo sync

while [ $? = 1 ]; do

echo “======sync failed, re-sync again======”

sleep 3

repo sync

done

将该脚本保存为getAndroid.sh,接着修改该文件属性:$ chmod 711 getAndroid.sh。然后运行该脚本即可下载Android源代码:

$ ./getAndroid.sh

Android源码的编译

当Android源代码下载完毕后,输入下面两条命令即可开始编码。

$ cd ~/mydroid
$ make
源代码的编译是一个很慢长的过程,在我的电脑上花费了大约3个小时。

Linux内核编译

Windows操作系统上构建Android应用程序开发环境

下载最新的Android SDK

http://code.google.com/android/download.html

选择Windows版本的SDK,下载后直接解压缩就可以使用,为了在控制台中直接使用SDK中的工具,把SDK的目录添加到Windows的path 环境变量中。

下载JDK6

http://java.sun.com/javase/downloads/index.jsp

下载Eclipse 3.4版本

http://www.eclipse.org/downloads/

请选择Eclipse Classic 3.4.1

安装Android插件(ADT)

ADT(Android Development Tools)是Eclipse的一个插件,专门用于在Eclipse上开发Android应用程序。ADT插件的下载安装步骤如下:

启动Eclipse,点击菜单Help > Software Updates

点击Available Software标签

点击Add Site,在输入框中填入如下URL

https://dl-ssl.google.com/android/eclipse/

然后点击OK

这时在软件列表中会出来ADT插件,如图:

勾选上Developer Tools后,点击Install按钮。

在弹出的安装窗口中,选择Android Developer Tools,点击Finish。

然后程序将在后台下载并安装ADT插件。安装完毕后,重启Eclipse。

Eclipse重启之后,要配置Android的SDK路径:

选择Windows > Preferences

选择 Android 属性面板

点击Browse 选择Android SDK的目录

点击Apply,接着点击OK

设置Eclipse的JavaJDK的属性设置。

选择 Window > Preferences... 打开编辑属性窗口

选择 Java 属性面板

选择Java编译器为6.0

点击 Apply, 和 OK

编写Android应用程序

利用Eclipse工具可以很方便地实现Android程序的开发

选择File > New > Project 菜单创建一个新的Android工程

在新建的Android工程中,ADT工具会自动创建一个基本的程序框架,我们要做的就是在这框架的基础上添加代码实现想要的功能。

代码写好之后,选择Project > Build Project对整个工程进行编译。编译出来的是一个打包好的APK格式的程序。

选择Run > Run运行程序,也可以选择Run > Debug对程序进行调试。目标程序可以在具体机器中运行(如G1手机),不能在具体机器中调试,但可以在模拟器中进行调试。

Google也提供了ADB命令行工具用于上传程序到设备(手机或模拟器),或者从设备中下载数据到PC。

Android SDK文件夹结构分析

Android SDK文件结构如图:

其中:

Docs:文件夹中存放的是开发文档。

Samples:文件夹中存放着Google提供的例子

Tools:文件夹存放着各种工具(包括模拟器、ADB)

Tools>Lib:文件夹中存放着很多文件,这些文件是在编译Android程序时要用到的(还有一个文件是SDK根目录下的android.jar)。

Tools>lib>fonts:可能是为模拟器提供各种字体的支持(目前未确定)

Tools>lib>images:这个文件夹中存放着模拟器运行时要用到的文件。这些文件如下:

System.img:存放Android系统的映像文件,所使用的文件系统为YAFFS2,该文件中的内容就是/System文件夹中的内容(可通过adb shell命令查看到),使用mkyaffs2工具可将/System文件夹打包成System.img文件

Userdata.img:存放初始化数据的映像文件,也是YAFFS2文件系统,该文件中的内容就是/Data文件夹中的内容。

Ramdisk.img:这是一个普通的压缩文件,里面存放的内容大致上是系统运行时用到的一些参数设定,应该是提供给Linux Kernel起动时使用

Kernel-qemu:这是Linux Kernel。-qemu是指带模拟器功能的Kernel。

Skins:该文件夹中存放的是模拟器的界面皮肤。

其中,System.img、Userdata.img、Ramdisk.img这三个文件在编译Android源代码时可以得到,Kernel-qemu文件在编译Linux内核时可以得到(得到的应该是一个叫做zImage的文件)

Tools>lib>res:(目前未确定)

Android源代码结构

在网络上有一份源代码结构的文档,但还不全,我这边只截取出一级目录结构:

|-- Makefile (全局的Makefile)
|-- bionic (Bionic含义为仿生,这里面是一些基础的库的源代码)
|-- bootloader (引导加载器)
|-- build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)
|-- dalvik (JAVA虚拟机)
|-- development (程序开发所需要的模板和工具)
|-- external (目标机器使用的一些库)
|-- frameworks (应用程序的框架层)
|-- hardware (与硬件相关的库)
|-- kernel (Linux2.6的源代码)
|-- packages (Android的各种应用程序)
|-- prebuilt (Android在各种平台下编译的预置脚本)
|-- recovery (与目标的恢复功能相关)
`-- system (Android的底层的一些库)

Android手机所用到的Windows驱动源代码、还有SDK中Tools目录下的大多数工具的源代码都可以在Android源代码中找到

使用Eclipse工具进行应用程序开发 – 熟悉Eclipse工具的使用

使用XML语言描述各种资源(如字符串、控件等) - 熟悉XML描述语言

使用JAVA编写应用程序 – 熟悉JAVA语法

Android提供了各种类的接口供应用程序使用 – 熟悉Android接口

大体上,Android源程序是由3个部分组成的:Java代码、XML文件、资源文件(如图片等)。

Java源代码—(JAVA编译器)-->.class字节码—(dx)à.dex文件。.dex文件加上一些资源文件通过aapt工具生成.apk文件

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. android2.2资源文件详解4--menu文件夹下的菜单定义
  4. ubuntu NDK 的安装
  5. ListItem更改背景色
  6. 【【【常用的ubuntu第三方工具及android命令(自存档)】】】二
  7. Android(安卓)编程下通过 zipalign 对 APK 文件进行优化
  8. CyanogenMod 编译 Google Galaxy Nexus (GSM) 全过程
  9. 解决Android(安卓)Studio 和 Android(安卓)SDK Manager 无法在线

随机推荐

  1. Eclipse开发环境导入android sdk的sample
  2. 毕业设计遇到的问题及解决方法
  3. Adobe AIR for Android开发记录
  4. 细说:AndroidStudio插件
  5. [android]android自动化测试六之命令行编
  6. 《完美解决系列》Android(安卓)Studio中
  7. Android:设计一个具有3个选项的菜单程序,
  8. xe5 android sample 中的 SimpleList 是
  9. Android-------Activity之间通信
  10. permission大全及场景的用法