## 第一天 Android架构与环境搭建 ##
### 1.1 android基础 ###
#### 1.1.1 Android是什么? ####
+ 是一个针对移动设备的操作系统和软件平台
+ 基于Linux内核
+ 由 Google和开放手机联盟OHA开发的
+ 容许使用Java语言来开发和管理代码
+ Android开放源代码,Android遵从Apache Software License (ASL)2.0版本的协议
+ Android于2007年11月5日开放手机联盟成立时发布
注:开放手机联盟 (OHA)
![](https://box.kancloud.cn/2016-05-18_573c705fb0f63.png)
#### 1.1.2 Android的特点! ####
+ 应用框架可以重复使用,其组件也可以更换。
+ Dalvik虚拟机针对移动设备进行了优化。
+ 优化的图形能力支持2D、3D图形(OpenGL ES 1.0 )。
+ 集成了基于开源WebKit引掣的浏览器。
+ SQLite作为结构化数据存储。
+ 多媒体支持多种音频、视频格式。
+ GSM Telephony (hardware dependent)
+ 支持蓝牙Bluetooth,3G和WiFi
+ 支持照相机、GPS、指南针和加速度仪等传感器硬件。
+ 丰富的开发环境。包括模拟机、调试工具、内存运行检测,以及为EclipseIDE所写的插件。
#### 1.1.3 Android优缺点! ####
**优点**
+ 源代码完全开放。
+ 采用了对有限内存、电池和CPU优化过的虚拟机Dalvik,Android的运行速度比想象的要快很多。
+ 运营商(中国移动等)的大力支持,产业链条的热捧。
+ 良好的盈利模式(3/7 开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。
+ Android的源代码遵循Apache V2软件许可,而不是通常的GPL v2许可。有利于商业开发。
+ 具有强大的Linux社区的支持。
**缺点**
+ Google提供了一套Java核心包(J2SE 5,J2SE 6)的有限子集,尚不承诺遵守Java任何Java规范,可能会造成Java阵营的进一步分裂。
+ 现有应用完善度不太够,需要的开发工作量较大。
+ 模拟器调试手段不十分丰富,速度慢。
#### 1.1.4 Android架构 ####
![](https://box.kancloud.cn/2016-05-18_573c706182a97.png)
**Linux Kernel& Android内核**
+ Android 基于Linux内核,但不是Linux
+ 内核提供系统核心服务,如进程、内存、电源管理,网络连接,驱动与安全等。
+ 并不包括全部的Linux。
+ Linux 内核位于硬件和软件堆之间的抽象层
+ 核心服务:安全机制、内存管理、进程管理、网络、硬件驱动。
+ 内核扮演的是硬件层和系统其它层次之间的一个抽象层的概念。
+ 操作系统的初始化和编程接口和标准的Linux 系统是有所不同的。
**Libraries**
+ C/C++库:被各种Android 组件使用通过应用程序框架开发者可以使用其功能包括:
+ 媒体库:MPEG4 H.264 MP3 JPG PNG .....
+ WebKit/LibWebCore:Web 浏览引擎
+ SQLite 关系数据库引擎
+ 2D,3D 图形库、引擎
**Function Libraries**
+ WebKit
+ 基于开源WebKit的浏览器
+ 支持CSS、Javascript、DOM、Ajax
+ 多媒体框架
+ 基于PacketVideo OpenCORE平台
+ 支持标准音频、视频
+ SQLite
+ 轻型数据库,支持多种平台
**Native Servers-Surface**
+ 为多种应用提供2D、3D表面设计
![](https://box.kancloud.cn/2016-05-18_573c7061ba306.png)
**Native Servers-Audio**
+ 音频处理
**Hardware Abstraction Libs**
+ 硬件虚拟层
+ User space C/C++ library layer
+ 硬件接口驱动
+ 使Android平台逻辑与硬件接口分离
![](https://box.kancloud.cn/2016-05-18_573c7061d454c.png)
**DVM vs JVM**
+ DVM
+ Google
+ Dalvik excutable
+ JVM
+ Sun
+ Java bytecode
**Applications Framework**
+ Activity manager
+ 管理运行应用程序
+ Content Provider
+ 在各应用之间共享数据
+ Resource Manager
+ 管理非代码资源
+ Notification Manager
+ 显示用户提示和状态栏
+ Views System
+ 可扩展显示,可构建UI
![](https://box.kancloud.cn/2016-05-21_573fc2c6f2fcc.png)
**应用和框架**
+ 核心应用,例如联系人,电子邮件,电话,浏览器,日历,地图, ...
+ 充分访问所有核心应用框架API
+ 简化组件的重用
+ 用Java 编写应用程序
**Applications**
+ JAVA编写的应用程序
### 1.2搭建android环境 ###
注:如果想从头开始学怎么搭建android开发环境的请从1.2.1开始
如果想直接学开发了,请跳过此步骤,到1.2.6节直接下载谷歌提供的开发工具进行开发.
#### 1.2.1 安装Java JDK 并配置java环境变量. ####
下载JDK(官方推荐使用1.6版本)
http://www.oracle.com/technetwork/java/javase/downloads/index.html (官网下载地址)
http://download.oracle.com/otn-pub/java/jdk/6u37-b06/jdk-6u37-windows-i586.exe (x86直接下载地址)
http://download.oracle.com/otn-pub/java/jdk/6u37-b06/jdk-6u37-windows-x64.exe (x64直接下载地址)
安装JDK略过
打开环境变量窗口方法:右键【我的电脑】--单击【属性】--单击【高级】--单击【环境变量】。
在上方的用户变量中依次新建如下变量,并分别填入如下路径:
+ 变量名:JAVA_HOME
变量值:C:Javajdk1.6.0_22(此路径为JAVA安装路径)
+ 变量名:PATH
变量值:%JAVA_HOME%/bin
+ 变量名:CLASSPATH
变量值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar
![](https://box.kancloud.cn/2016-05-21_573fc2db88e33.png)
测试环境变量配置是否成功
【开始】--【运行】--输入【cmd】--输入【javac】--按【回车键】若看到以下信息,则代表配置成功。
![](https://box.kancloud.cn/2016-05-21_573fc2e62a495.png)
#### 1.2.2 下载eclipse 安装ADT插件 ####
Eclipse下载地址:
http://www.eclipse.org/downloads/ (java和J2EE都行)
http://build.eclipse.org/technology/phoenix/torrents/juno/eclipse-jee-juno-SR1-win32.zip.torrent (x86种子地址,如果下载不了请到官方下载)
http://build.eclipse.org/technology/phoenix/torrents/juno/eclipse-jee-juno-SR1-win32.zip.torrent X64的
![](https://box.kancloud.cn/2016-05-21_573fc2e65579a.png)
安装ADT
注意: 安装ADT的方法有两种
一 在线安装(输入Name和Location即可在线安装,不推荐使用,因为在线更新灰常慢)
Name: Andriod Plugin
Location:https://dl-ssl.google.com/android/eclipse/
![](https://box.kancloud.cn/2016-05-21_573fc2e677c53.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e69292b.png)
执意想要在线更新的朋友,我们只需要配置一下hosts文件(翻墙不用我说吧?)
Hosts文件只需要在C盘搜索一下就出来了
![](https://box.kancloud.cn/2016-05-21_573fc2e6b6910.png)
在文件的末尾添加下面一句:74.125.237.1dl-ssl.google.com
(记得右键吧hosts文件只读的勾去了)
![](https://box.kancloud.cn/2016-05-21_573fc2e6de523.png)
二 离线安装(离线安装要断网,不然它会自动联网安装的)
![](https://box.kancloud.cn/2016-05-21_573fc2e706792.png)
离线版ADT下载 http://developer.android.com/sdk/index.html
离线更新有两种方法
1. 点local..选择解压出来的ADT文件夹(好处是解包已在外部完成了,可以直接更新,不用等待,推荐使用)
2. 点archive选择打包的ADT(好处是不用在外部解包,但是不可直接更新,要等eclipse解包完ADT.ZIP才能进行安装,不推荐使用)
如果推荐使用的方法不行,哪就用其他方法吧!
#### 1.2.3 安装android sdk 并更新版本 ####
安装完ADT之后它会提示你重启eclipse,重启完后会提示选择在线更新SDK还是选现有的SDK(这里只说明选现有的SDK)
注意:记得选第二个,默认的是让你选路径下载SDK的
下载SDK: http://developer.android.com/sdk/index.html
离线安装Sdk
![](https://box.kancloud.cn/2016-05-21_573fc2e71b393.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e740c0e.png)
找到SDK路径应用一下就可以了
![](https://box.kancloud.cn/2016-05-21_573fc2e76efec.png)
管理自己的SDK,升级或者更新
![](https://box.kancloud.cn/2016-05-21_573fc2e78d97f.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e7a5ebd.png)
在自己需要的版本上打勾然后按install (一般开发都用2.1,谷歌会提示你95%的开发者都在用2.1之类的话的)
点击install后如下图,选择所有再点install
![](https://box.kancloud.cn/2016-05-21_573fc2e7ce23d.png)
更新完后就大功告成了
#### 1.2.4 配置android环境变量. ####
在上方的用户变量中找到之前创建的【PATH】变量,双击它,然后在【变量值】的最后面添加上内容
```
;E:Androidandroid-sdk-windowsools;E:Androidandroid-sdk-windowsplatform-tools
```
其中的分号不能少,分号在这里是起到分隔的作用。
配置完成之后,分别点击【开始】--【运行】--输入【cmd】--输入【android -h】--按【回车键】,若看到以下信息,则代表配置成功。
![](https://box.kancloud.cn/2016-05-21_573fc2e80a388.png)
#### 1.2.5 配置ADV 安卓虚拟机 并写hello android 测试 ####
![](https://box.kancloud.cn/2016-05-21_573fc2e8738da.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e88b251.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e8a7d71.png)
#### 1.2.6 特别赠送:直接下载AndroidDeveloper Tools即可省略以上5个步骤 ####
直接下载AndroidDeveloper Tools 即可使用
官方已经推出集成ADT 和最新SDK(4.2版本)的eclipse了
命名为AndroidDeveloper Tools
下载地址: http://dl.google.com/android/adt/adt-bundle-windows-x86.zip
或者联系作者获取
如需安装其他版本SDK请看第3步
![](https://box.kancloud.cn/2016-05-21_573fc2e8bd422.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e8bd422.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e8e499f.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e90b276.png)
写第一个android程序
![](https://box.kancloud.cn/2016-05-21_573fc2e93cb68.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e95be2d.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e97d37c.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e99a832.png)
![](https://box.kancloud.cn/2016-05-21_573fc2e9b56ce.png)
第一个程序就创建好了,如下图启动你的程序
![](https://box.kancloud.cn/2016-05-21_573fc2e9d433e.png)
如图,测试成功.第一天的android课程结束.
![](https://box.kancloud.cn/2016-05-21_573fc2ea02dad.png)
**源代码下载**
[HelloAndroid源码](http://www.apkbus.com/android-83159-1-1.html)