Android學習一(入門)

1、Android 系統簡介

1.一、1G-4Ghtml

1G:模擬製式手機,1995年問世的第一代模擬製式手機,只能進行語音通話,java

2G:手機使用GSM,CDMA(9K/s),增長了接收數據的功能linux

2.5G:EDGE (172k/s)android

3G:第三代數字通信技術(3rd, Generation),web

     電國電信:CDMA2000,(日,韓和北美)sql

     中國聯通:WCDMA(世界上大部分3G網絡都採用)shell

     中國移動:TD-SCDMA(中國)數據庫

4G:LTE,長期演進.該技術包括 TD-LTE 和 FDD-LTE 兩種制式。4G 是集 3G 與 WLAN 於一體,並可以傳輸高質
量視頻圖像
編程

GSM->GPRS->EDGE->WCDMA->HSDPA-FDD-LTE長期演進windows

9k           42k       172k     364k          7.2M    300M    

 

1.二、Adnroid由來

Android 系統最初由安迪·魯賓等人開發製做,最初開發這個系統的目的是建立一個數碼相機的先進操做系統;後來發現市場需求不夠大,加上智能手機市場快速成長,因而 Android 被改造爲一款面向智能手機的操做系統,

2005 年由 Google 收購注資,並組建開放手機聯盟。2007 年 11 月 12 日,Android Beta
操做系統 SDK 正式發佈。

1.三、進化史

1.四、Android 系統架構

android分爲四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和linux核心層。

1.Applications:提供了一些系統級的應用程序如:瀏覽器,電話本,email,拔號器等

2.Application Framwork:應用程序框架

 

  • 豐富而又可擴展的視圖(Views),能夠用來構建應用程序, 它包括列表(lists),網格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web瀏覽器。
  • 內容提供器(Content Providers)使得應用程序能夠訪問另外一個應用程序的數據(如聯繫人數據庫), 或者共享它們本身的數據
  • 資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和佈局文件( layout files )。
  • 通知管理器 (Notification Manager) 使得應用程序能夠在狀態欄中顯示自定義的提示信息。
  • 活動管理器( Activity Manager) 用來管理應用程序生命週期並提供經常使用的導航回退功能。

3.庫系統運行庫

  •  libc:系統 C 庫,基於 embedded linux 的設備定製的
  • Surface Manager - 對顯示子系統的管理,而且爲多個應用程序提 供了2D和3D圖層的無縫融合。界面管理
  • Media Framework:媒體框架庫
  • SQLite:個對於全部應用程序可用,功能強勁的輕型關係型數據庫引擎
  • OpenGL|ES:3D效果渲染,可使用硬件 3D加速(若是可用)或者使用高度優化的3D軟加速
  •  FreeType -位圖(bitmap)和矢量(vector)字體顯示
  • WebKit- 一個最新的web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的web視圖
  • SSL:關於安全的部分
  • SGL - 底層的2D圖形引擎

Android 運行庫

Core Library:Android 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數功能

Dalvik虛擬機:依賴於linux內核的一些功能,好比線程機制和底層內存管理機制。

每個Android應用程序都在它本身的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計成一個設備能夠同時高效地運行多個虛擬系統。 Dalvik虛擬機執行(.dex)的Dalvik可執行文件,該格式文件針對小內存使用作了優化。同時虛擬機是基於寄存器的,全部的類都經由JAVA編譯器編譯,而後經過SDK中 的 "dx" 工具轉化成.dex格式由虛擬機執行。

 

4.Android 的核心繫統服務依賴於 Linux 2.6 內核,如安全性,內存管理,進程管理, 網絡協議棧和驅動模型。 Linux 內核也同時做爲硬件和軟件棧之間的抽象層。

1.四、JVM與Dalvik虛擬機的區別

  • Dalvik 基於寄存器,而 JVM 基於棧。基於寄存器的虛擬機對於更大的程序來講,在它們編譯的時候,花費的時間更短
  • VM字節碼由.class文件組成,每一個文件一個class。JVM在運行的時候爲每個類裝載字節碼。相反的,Dalvik程序只包含一個.dex文件,這個文件包含了程序中全部的類。Java編譯器建立了JVM字節碼以後,Dalvik的dx編譯器刪除.class文件,從新把它們編譯成Dalvik字節碼,而後把它們寫進一個.dex文件中

2、SDK的下載與安裝

2.一、開發環境

目前主流的開發工具備兩個,一個是 Eclipse 另一個是 Android Studio。 Eclipse 須要和 ADT(Android
Develop Tool)插件整合後才能使用,不過 Google 官方已經直接提供了 Eclipse 和 ADT 集成好的開發工具,
叫 ADT-Bundle。
Android Studio 是 Google 基於 IntelliJ IDEA 開發的 Android 集成開發工具,目前國內使用該開發工具
的企業也愈來愈多。Android 基礎階段咱們依然使用 Eclipse 做爲開發工具,在後面的課程中才會使用到
Android Studio。

2.二、ADT-Bundle 的下載和安裝

第一步:JDK 的安裝:
官方下載地址: http://www.oracle.com/technetwork/java/javase/downloads/index.htmle
下載好之後安裝,並配置系統環境變量,這裏就再也不贅述。
第二步:下載 ADT-Bundle for Windows
官方下載地址:http://developer.android.com/sdk/index.html
因爲該網址在國內已經被屏蔽掉了,所以本人提供了一個百度網盤的下載地址。
網盤下載地址:http://pan.baidu.com/s/1gdwIAER
第三步:安裝 ADT-Bundle
直接把下載下來的 adt-bundle-windows-xxx-xxx.zip 解壓到須要安裝的位置

2.三、SDK 目錄結構

將下載好的 ADT-Bundle 解壓後根目錄結構如圖 1-2 所示,總共包括 3 個部分,eclipse、sdk、SDK
Manager.exe。

 

一、add-ons 這裏面保存着附加庫,好比 GoogleMaps,固然你若是安裝了 OphoneSDK,這裏也會有一
些類庫在裏面;
二、build-tools 這裏保存着與編譯相關的重要工具,好比 aapt、aidl、逆向調試工具 dexdump 和編譯腳
本 dx,

三、docs 這裏面是 Android SDKAPI 參考文檔,全部的 API 均可以在這裏查到;
四、extras 拓展開發包,這裏麪包括下向下兼容開發包以及 Intel 硬件加速程序等;
五、 platforms是每一個平臺的 SDK 真正的文件, 裏面會根據 API Level 劃分 SDK 版本, 這裏就以 Android2.3
來講,進入後有 一個 android-10 的文件夾,android-10 進入後是 Android2.3 SDK 的主要文件,其中 data
保存着一些系統資源,images 是模擬器映像文件,skins 則是 Android 模擬器的皮膚,templates 是工程建立
的默認模板,android.jar 則是該版本的主要 framework 文件;

六、platform-tools 保存着一些通用工具,好比 adb.exe;
七、sources Android 系統源碼目錄,文件夾裏能夠包含多份源碼,根據 API Level 劃分爲不一樣的文件夾;
八、system-images Android 系統鏡像文件;
九、 tools 這裏包含了重要的工具,好比 ddms 用於啓動 Android 調試工具,draw9patch 則是繪製 android
平臺的可縮放 png 圖片的工具,sqlite3 能夠在 PC 上操做 SQLite 數據庫,emulator 是 Android SDK 模擬器
主程序,traceview 做爲 android 平臺上重要的調試工具;

 

2.四、SDK Manager

SDK Manager.exe 是 ADT 根目錄下的一個 SDK 管理程序,該程序負責下載、更新、刪除與 sdk 相關
的文件

該管理器主要分爲如下幾部分:
一、Tools 又分爲 Android SDK Tools、Android SDK Platform-tools、Android SDK Build-tools。分別對
應 sdk 目錄中的 tools、platform-tools、build-tools 三個目錄。其中的 Rev. 表明版本號,Status 表明狀態。
二、 Android x.x.x(API xx) 通常會有多個,一個 API 就有一個條目。該條目下分爲 SDK Platform、 System
Image、Sources for Android SDK。分別對應 sdk 目錄中的 platforms、system-images、sources 目錄。
三、Extras 主要分爲 Android Support Library 和 HAXM(Inter x86 模擬器加速器),對應 sdk 目錄中的tools 文件。
因爲 SDK Manager 須要經過鏈接國外互聯網才能夠對 sdk 進行升級管理,可是國內是被屏蔽了的,因
此你們能夠直擊從網站上下載現成的 sdk 文件,而後放到相應的目錄下,這樣就不須要 SDK Manager 進行
額外的管理工做。

2.五、AVD的建立與使用

 

上面的各個選項介紹以下:
一、AVD name 自定義的模擬器名稱,建議見名知意的命名原則;
二、Device 選擇設備屏幕分辨率;
三、Target 選擇 Android 操做系統版本;
四、CPU/ABI 選擇 CPU 架構。只有 x86 的才支持硬件加速。
五、Keyboard 勾選上後可使用本身電腦鍵盤做爲模擬器的鍵盤,不勾選的話默認使用模擬器鍵盤;
六、Skin 勾選上後顯示模擬器實體按鍵,不勾選沒有實體按鍵,建議勾選上;
七、Front Camera 選擇前置攝像頭設備,不用選;
八、Back Camera 選擇後置攝像頭設備,不用選;
九、Memory Options RAM 表明模擬器運行內存,VM Heap Dalvik 虛擬機堆內存大小,不建議改動;
十、Internal Storage 模擬器內置存儲大小;
十一、SD Card Size 設置 SDCard 的大小;
十二、Emulation Options 模擬器選項,Snapshot 若是被勾選了,模擬器被關閉時至關因而使用了休眠的形式;
下次開啓時會從新恢復到關機前狀態,不建議勾選。User Host GPU,勾選上表明使用電腦提供圖形處理;
通常若是咱們的應用不涉及 3D 圖像處理不須要勾選,甚至在有些電腦上勾選後反而致使模擬器沒法運行。
當咱們建立好模擬器以後,若是須要修改那麼能夠在圖 1-7 中選中要修改的虛擬機,而後點擊 Edit...,
若是須要刪除,點擊 Delete...,若是須要啓動點擊 Start...

 

在上圖界面中有兩個比較重要的選項。Scale display to real size 和 Wipe user data。後者很好理解,若是
勾選上了,那麼啓動時至關於恢復出廠設置。前者用的比較多,是用來縮放咱們的模擬器界面的,若是不
勾選的話屏幕會顯示模擬器的真實大小,肯能會佔據咱們的整個屏幕,所以能夠選擇勾選,而後將 Screen
Size 改成 6

點擊 Launch,就開始啓動模擬器,若是沒有硬件加速可能須要 3 到 5 分鐘的時間。

 

2.六、DDMS 簡介

DDMS 是 Dalvik Debug Monitor Service 的簡稱。DDMS 爲 IDE 和 emulator 以及 Android 真機架起來
了一座橋樑。開發人員能夠經過 DDMS 看到目標機器上運行的進程/線程狀態,能夠看進程的 heap 信息,
能夠查看 logcat 信息,能夠查看進程分配內存狀況,能夠向目標機發送短信以及打電話,能夠向 Android
發送地理位置信息。下面以 Eclipse 的 DDMS perspective 爲例簡單介紹 DDMS 的功能

左上部分爲 Devices 窗口,列出了全部已經跟 adb 成功鏈接的模擬器(包括真機)以及各個模擬器中
全部運行的進程。如圖 1-12 所示,最上面一排從左到右一共有 9 個可用按鈕,分別爲: 調試某個進程,
更新進程堆棧信息, 下載進程堆棧數據到本地, 調用垃圾回收器, 更新線程, 開啓方法性
能分析數據收集, 中止某個進程, 抓取 Android 目前的屏幕, 查看當前界面視圖樹結構。

 

 

3、Android 程序入門

3.一、建立Helloworld

點擊 ADT 左上角的 File 按鈕,而後選擇 New,而後點擊 Android Application Project開
始 Android 工程的建立。(或者鼠標右擊,在彈出的快捷菜單中建立也能夠)。

 

 

該界面展現了是否建立圖標,是否建立 activity,是否將該工程做爲庫工程,是否將
該工程添加到當前工做空間,是否將該工程添加到指定工做集等信息,一般狀況下不須要咱們修改默認的
配置,直接 Next 就行。

該界面提供了配置圖標選項, 咱們經過點擊 Browser 按鈕能夠選擇咱們個性化的圖標。
在學習階段不須要使用,而後點擊 Next...。

該向導界面可讓咱們選擇建立一個什麼樣式的 Activity,通常使用系統默認的 Blank
Activity 便可,而後點擊 Next...。

這是最後一個嚮導界面了。 Activity Name 和 Layout Name 分別是讓咱們設置主 Activity
和其佈局的名字,一般狀況下使用默認名字便可。Navigation Type 是主界面 Activity 切換類型,使用 None
便可。而後點擊 Finish 完成 Android 工程的建立。

4、Android 工程目錄結構

4.一、結構

4.二、目錄簡述

一、src java 源代碼存放目錄。
二、gen 自動生成的目錄
gen 目錄中存放全部由 Android 開發工具自動生成的文件。目錄中最重要的就是 R.java 文件。 這
個文件由 Android 開發工具自動產生的。Android 開發工具會自動根據你放入 res 目錄的資源,同步更
新修改 R.java 文件。正由於 R.java 文件是由開發工具自動生成的,因此咱們應避免手工修改 R.java。
另外編繹器也會檢查 R.java 列表中的資源是否被使用到,沒有被使用到的資源不會編繹進軟件中,這
樣能夠減小應用在手機佔用的空間。
三、bin 用於存放 ADT 編譯時產生的臨時文件, Android 工程最終會被打包成一個 xxx.apk
四、res 資源(Resource)目錄
在這個目錄中咱們能夠存放各類各樣的資源,如 xml 界面文件,圖片或數據,該目錄下包含多個
子目錄。
4.一、res/drawable
存放 png、jpg 等圖標文件。在代碼中使用 getResources().getDrawable(resourceId)獲取該目錄下的
資源。
4.二、res/layout
存放 xml 界面文件,xml 界面文件和 HTML 文件同樣,主要用於顯示用戶操做界面。

4.三、res/values
存放應用使用到的各類類型數據。不一樣類型的數據存放在不一樣的文件中。好比:
4.3.1 strings.xml 定義字符串和數值
4.3.2 colors.xml 定義顏色和顏色字串數值
4.3.3 dimens.xml 定義尺寸數據
4.3.4 styles.xml 定義樣式
4.四、res/anim/
存放自定義動畫的 XML 文件。
4.5 res/xml/
在 Activity 中使用 getResources().getXML()讀取該目錄下的 XML 資源文件。
4.6 res/raw/
該目錄用於存放應用使用到的原始文件,如音效文件等。編譯軟件時,這些數據不會被編譯,它
們被直接加入到程序安裝包裏。
五、libs 支持庫目錄
程序開發時須要的一些三方的 jar 包能夠放在這個目錄,一般系統會自動把裏面的 jar 包,添加到環境
變量,若是自動添加不了那麼就須要手動添加。

六、assets 資源目錄
Android 除了提供 res 資源文件外,在 assets 目錄中能夠存放資源文件,並且 assets 目錄下的資源文件
不會在 R.java 中自動生成 id。
七、AndroidManifest.xml 項目清單文件
該文件用於配置四大組件、聲明權限、配置應用版本等參數。
八、project.properties 項目環境信息,通常是不須要修改此文件。
九、proguard-project.txt 用於配置代碼混淆參數。

4.三、運行

4.四、打包過程

ADT 將 Android 工程編譯成 APK 中間經歷了一系列過程,
 Android 打包過程


ADT 將 Java 源文件編譯成.class,而後調用 dx 工具將全部的.class 抽取到一個叫 classes.dex 的文件中。
而後調用 aapt 工具將 Android 中全部的資源,包括 res 和 assets 資源以及清單文件一塊兒打包成 apk 文件,
而後在部署的時候給 apk 進行簽名操做,最後經過 ADB 工具將簽名後的 APK 部署到模擬器上。
上面的過程徹底是 ADT 自動幫咱們完成的。簽名是用於區分同一包名的時候應用身份的,也就是如
果應用的包名相同簽名不同是不能夠安裝到同一個手機上的,若是包名相同簽名也相同則能夠覆蓋安
裝。

5、ADB 簡介

5.一、ADB 介紹

adb 是 Android Debug Bridge 的簡稱,經過 adb 能夠在 Eclipse 中經過 DDMS 來調試 Android 程序, adb
啓動時會佔用 5554 端口,所以要避免其餘應用跟該端口衝突。默認狀況下因此當咱們運行 Eclipse 時 adb
進程就會自動運行。
adb 還能夠經過命令行使用,前提是將 adb.exe 所在路徑已經配置到了系統環境變量。adb.exe 位於sdk/platform-tools 目錄下。環境變量的配置跟 JDK 類似,

5.二、ADB 經常使用命令

一、adb devices 列出當前鏈接上全部設備


二、adb install xxx.apk 將 xxx.apk 安裝到模擬器上

多個設備鏈接時,選擇設備安裝


三、adb uninstall 包名 卸載應用

多個設備鏈接卸載


四、adb push <本地路徑><遠程路徑> 將本地文件上傳到模擬器上


五、adb pull <遠程路徑><本地路徑> 將模擬器上文件下載到本地


六、adb kill-server 殺死 adb 進程


七、adb start-server 啓動 adb 進程


八、adb shell 進入 Linux shell 命令行

 

相關文章
相關標籤/搜索