## 第一天 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)

#### 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架構 ####

**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表面設計

**Native Servers-Audio**
+ 音頻處理
**Hardware Abstraction Libs**
+ 硬件虛擬層
+ User space C/C++ library layer
+ 硬件接口驅動
+ 使Android平臺邏輯與硬件接口分離

**DVM vs JVM**
+ DVM
+ Google
+ Dalvik excutable
+ JVM
+ Sun
+ Java bytecode
**Applications Framework**
+ Activity manager
+ 管理運行應用程序
+ Content Provider
+ 在各應用之間共享數據
+ Resource Manager
+ 管理非代碼資源
+ Notification Manager
+ 顯示用戶提示和狀態欄
+ Views System
+ 可擴展顯示,可構建UI

**應用和框架**
+ 核心應用,例如聯系人,電子郵件,電話,瀏覽器,日歷,地圖, ...
+ 充分訪問所有核心應用框架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

測試環境變量配置是否成功
【開始】--【運行】--輸入【cmd】--輸入【javac】--按【回車鍵】若看到以下信息,則代表配置成功。

#### 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的

安裝ADT
注意: 安裝ADT的方法有兩種
一 在線安裝(輸入Name和Location即可在線安裝,不推薦使用,因為在線更新灰常慢)
Name: Andriod Plugin
Location:https://dl-ssl.google.com/android/eclipse/


執意想要在線更新的朋友,我們只需要配置一下hosts文件(翻墻不用我說吧?)
Hosts文件只需要在C盤搜索一下就出來了

在文件的末尾添加下面一句:74.125.237.1dl-ssl.google.com
(記得右鍵吧hosts文件只讀的勾去了)

二 離線安裝(離線安裝要斷網,不然它會自動聯網安裝的)

離線版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


找到SDK路徑應用一下就可以了

管理自己的SDK,升級或者更新


在自己需要的版本上打勾然后按install (一般開發都用2.1,谷歌會提示你95%的開發者都在用2.1之類的話的)
點擊install后如下圖,選擇所有再點install

更新完后就大功告成了
#### 1.2.4 配置android環境變量. ####
在上方的用戶變量中找到之前創建的【PATH】變量,雙擊它,然后在【變量值】的最后面添加上內容
```
;E:Androidandroid-sdk-windowsools;E:Androidandroid-sdk-windowsplatform-tools
```
其中的分號不能少,分號在這里是起到分隔的作用。
配置完成之后,分別點擊【開始】--【運行】--輸入【cmd】--輸入【android -h】--按【回車鍵】,若看到以下信息,則代表配置成功。

#### 1.2.5 配置ADV 安卓虛擬機 并寫hello android 測試 ####



#### 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步




寫第一個android程序





第一個程序就創建好了,如下圖啟動你的程序

如圖,測試成功.第一天的android課程結束.

**源代碼下載**
[HelloAndroid源碼](http://www.apkbus.com/android-83159-1-1.html)