Android 環境搭建與Android SDK目錄介紹

Android SDK下載和安裝

  本地已有合適版本Android SDK,則無需再下載,或者可使用SDK Manager更新SDK;html

  沒有SDK,則須要下載。java

  這裏說一下使用SDK Manager下載/更新SDK:android

  (1)若是沒有安裝SDK Manager,能夠下載安裝,地址 https://github.com/inferjay/AndroidDevTools#sdk-tools,下載完畢,直接運行安裝就能夠,安裝過程當中會自動匹配本機環境下的jdk;git

進入到安裝目錄下:github

  (2)啓動SDK Manager.exe,以下圖:web

    

  (3)更新時間比較長,也有可能更新不了,就得須要配個代理了。sql

  (4)注意不要下載過新的API, 目前使用量最大的API仍是23,24 數據庫

 

Android Studio的下載和安裝(新建工程和調試運行)

     官方網站下載: http://www.androiddevtools.cn/api

   注意直接用瀏覽器下載,不要用迅雷,避免相似XCodeGhost的事件!瀏覽器

        下載完以後,若是是安裝包,能夠直接安裝便可;若是是解壓包,能夠解壓後,直接運行(安裝目錄下的studio.exe文件)。

        安裝過程當中,因爲以前已經下載過SDK,因此跳過SDK的安裝,一直next知道finish,運行打開Android studio,而後手動配置SDK,點擊SDK Manager,配置已經下載好的SDK所在路徑便可,以下圖:

   配置好SDK以後就能夠新建工程了,如如下系列圖:

  (1)file-->new-->new Project:

  (2)next-->能夠選擇建立的工程的版本-->若是對版不瞭解,能夠點擊help me choose:

 

  (3)點擊help me choose 後便可顯示當前的Android系統各版本信息,還有什麼不明瞭的呢!(只看界面UI作的就很棒)

  (4)選擇版本後next-->進入選擇主Activity樣式界面,下面只是列出幾種,樣式不少:

  (5)繼續next-->直到finish,則完成了該工程的建立,建立過程會稍長一些,需等待。

  (6)如下就是建立完畢的工程界面,點擊上面工具欄中的運行圖標運行,下面的logcat中有日誌信息,使用起來也會很順手,就再也不過多說明。

        

 

SDK目錄

 

  1. SDK目錄
    1. add-ons
    2. docs
    3. extras
    4. platforms
    5. samples
  2. 下面重點介紹這3個
    1. platform-tools
    2. tools
    3. build-tools
  3. mincompiletarget版本的區別
    1. compileSdkVersion
    2. minSdkVersion
    3. targetSdkVersion
    4. Gradle 和 SDK 版本
 

如今對SDK目錄作一下總結闡述!

add-ons

這裏面保存着附加庫,第三方公司爲android 平臺開發的附加功能系統。好比GoogleMaps,固然你若是安裝了OphoneSDK,這裏也會有一些類庫在裏面。

docs

這裏面是Android SDKAPI參考文檔,全部的API均可以在這裏查到。

extras

該文件夾下存放了Android support v4,v7,v13,v17包;
還有google提供額USB驅動、Intel提供的硬件加速等附加工具包,
和market_licensing做爲AndroidMarket版權保護組件,通常發佈付費應用到電子市場能夠用它來反盜版。

platforms

是每一個平臺的SDK真正的文件,存放了不一樣版本的android系統。裏面會根據APILevel劃分的SDK版本,這裏就以Android2.2來講,進入後有 一個android-8的文件夾,android-8進入後是Android2.2SDK的主要文件,其中ant爲ant編譯腳本,data保存着一些系 統資源,images是模擬器映像文件,skins則是Android模擬器的皮膚,templates是工程建立的默認模板,android.jar則 是該版本的主要framework文件,tools目錄裏面包含了重要的編譯工具,好比aapt、aidl、逆向調試工具dexdump和編譯腳本dx。

samples

是Android SDK自帶的默認示例工程,裏面的apidemos強烈推薦初學者運行學 習,對於SQLite數據庫操做能夠查看NotePad這個例子,對於遊戲開發Snake、LunarLander都是不錯的例子,對於Android主 題開發Home則是androidm5時代的主題設計原理。

下面重點介紹這3個!!!!

platform-tools

保存着一些Android平臺相關通用工具,好比adb、和aapt、aidl、dx等文件,這裏和platforms目錄中tools文件夾有些重複,主要是從android2.3開始這些工具被劃分爲通用了。Fastboot 刷機工具。

tools(測試看這裏)

做爲SDK根目錄下的tools文件夾,這裏包含了android 開發和調試的工具,好比ddms用於啓動Android調試工具,好比logcat、屏幕截圖和文件管理器,而draw9patch則是繪製android平臺的可縮放png圖片的工具,sqlite3能夠在PC上操做SQLite數據庫, 而monkeyrunner則是一個不錯的壓力測試應用,模擬用戶隨機按鍵,mksdcard則是模擬器SD映像的建立工具,emulator是 Android SDK模擬器主程序,不過從android 1.5開始,須要輸入合適的參數才能啓動模擬器,traceview做爲android平臺上重要的調試工具。

build-tools

保存着一些Android平臺相關通用工具,好比adb、和aapt、aidl、dx等文件。
aapt即Android Asset Packaging Tool , 在SDK的build-tools目錄下. 該工具能夠查看, 建立, 更新ZIP格式的文檔附件(zip, jar, apk). 也可將資源文件編譯成二進制文件.
Adb 即android debug bridge 管理模擬器和真機的萬能工具,ddms 調試環境
AIDL 即 Android Interface definition language 它是一種android內部進程通訊接口的描述語言,經過它咱們能夠定義進程間的通訊接口
Emulator即android 的模擬器
dx:轉化.class中間代碼爲dvlik中間代碼,全部通過java編譯的生成.class文件都須要此工具進行轉換,最後打包進apk文件中.
Dexdump 即Android Emulator中能夠找到一個名爲dexdump的程序,經過dexdump能夠查看出apk文件中的dex執行狀況,粗略分析出原始java代碼是什 麼樣的和Dot Net中的Reflector很像。

注意:這裏會涉及到一個問題,就是build-tools後邊會有不一樣的api版本號!
①buildeToolVersion是你構建工具的版本,這個版本號通常是API-LEVEL.0.0。 例如I/O2014大會上發佈了API20對應的build-tool的版本就是20.0.0,在這之間可能有小版本,例如20.0.1等等。
②在ecplise的project.properties中能夠設置sdk.buildtools=20.0.0。也能夠不設置,不設置的話就是指定最新版本。而在android studio中是必須在build.gradle中設置。
③Android都是向下兼容的,你能夠用高版本的build-tool去構建一個低版本的sdk工程,例如build-tool的版本爲20,去構建一個sdk版本爲18的工程!

說到這,就不得不提一下,項目中minsdkversion、compilesdkversion、targetsdkversion的區別!!

min、compile、target版本的區別

這裏參考一下谷歌開發者的一篇推送文章!講的很詳細
compileSdkVersion, minSdkVersion 和 targetSdkVersion 的做用:他們分別控制可使用哪些 API ,要求的 API 級別是什麼,以及應用的兼容模式。

compileSdkVersion

compileSdkVersion 告訴 Gradle 用哪一個 Android SDK 版本編譯你的應用。使用任何新添加的 API 就須要使用對應等級的 Android SDK。
須要強調的是修改 compileSdkVersion 不會改變運行時的行爲。當你修改了 compileSdkVersion 的時候,可能會出現新的編譯警告、編譯錯誤,但新的 compileSdkVersion 不會被包含到 APK 中:它純粹只是在編譯的時候使用。(你真的應該修復這些警告,他們的出現必定是有緣由的!)
所以咱們強烈推薦你老是使用最新的 SDK 進行編譯。在現有代碼上使用新的編譯檢查能夠得到不少好處,避免新棄用的 API ,而且爲使用新的 API 作好準備。
注意,若是使用 Support Library ,那麼使用最新發布的 Support Library 就須要使用最新的 SDK 編譯。例如,要使用 23.1.1 版本的 Support Library,compileSdkVersion 就必需至少是 23 (大版本號要一致!)。

minSdkVersion

若是 compileSdkVersion 設置爲可用的最新 API,那麼 minSdkVersion 則是應用能夠運行的最低要求。minSdkVersion 是 Google Play 商店用來判斷用戶設備是否能夠安裝某個應用的標誌之一。
請記住,你所使用的庫,如 Support Library 或 Google Play services,可能有他們本身的 minSdkVersion 。你的應用設置的 minSdkVersion 必須大於等於這些庫的 minSdkVersion 。例若有三個庫,它們的 minSdkVersion 分別是 4, 7 和 9 ,那麼你的 minSdkVersion 必需至少是 9 才能使用它們。在少數狀況下,你仍然想用一個比你應用的 minSdkVersion 還高的庫(處理全部的邊緣狀況,確保它只在較新的平臺上使用),你可使用 tools:overrideLibrary 標記,但請作完全的測試!

targetSdkVersion

三個版本號中最有趣的就是 targetSdkVersion 了。 targetSdkVersion 是 Android 提供向前兼容的主要依據,在應用的 targetSdkVersion 沒有更新以前系統不會應用最新的行爲變化。這容許你在適應新的行爲變化以前就可使用新的 API (由於你已經更新了 compileSdkVersion 不是嗎?)。
targetSdkVersion 所暗示的許多行爲變化都記錄在 VERSION_CODES 文檔中了,可是全部恐怖的細節也都列在每次發佈的平臺亮點中了,在 API Level 表中能夠方便地找到相應的連接。

請必定在更新 targetSdkVersion 以前作測試!你的用戶會感謝你的

Gradle 和 SDK 版本

因此設置正確的 compileSdkVersion, minSdkVersion 和 targetSdkVersion 很重要。如你所想,Gradle 和 Android Studio 都在構建系統中集成了它們。在你的模塊的 build.gradle 文件中(也能夠在 Android Studio 的項目結構選項中)設置:

  1. <span style="font-size:14px"><code class="hljs bash">    android {  
  2.       compileSdkVersion 23  
  3.       buildToolsVersion "23.0.1"  
  4.   
  5.       defaultConfig {  
  6.         applicationId "com.example.checkyourtargetsdk"  
  7.         minSdkVersion 7  
  8.         targetSdkVersion 23  
  9.         versionCode 1  
  10.         versionName 「1.0」  
  11.       }  
  12.     }</span>  

編譯時用到的 compileSdkVersion 是和構建工具版本一塊兒設置的 Android 設置之一。其餘兩個稍有不一樣,他們在構建變體(build variant)的那裏聲明。defaultConfig 是全部構建變體的基礎,也是設置這些默認值的地方。你能夠想象在一個更復雜的系統中,應用的某些版本可能會有不一樣的 minSdkVersion 。
minSdkVersion 和 targetSdkVersion 與 compileSdkVersion 的另外一個不一樣之處是它們會被包含進最終的 APK 文件中,若是你查看生成的 AndroidManifest.xml 文件,你會看到相似下面這樣的標籤:

  1. <span style="font-size:14px"><code class="hljs xml"></span>  

若是你在 manifest 文件中手工設置,你會發現 Gradle 在構建時會忽略它們(儘管其它構建系統可能會明確依賴它們)。

 

這種直覺是合理的,若是 compileSdkVersion 是你的最大值,minSdkVersion 是最小值,那麼最大值必需至少和最小值同樣大且 target 必需在兩者之間。
理想上,在穩定狀態下三者的關係應該更像這樣:

  1. <span style="font-size:14px"><code class="hljs erlang">minSdkVersion (lowest possible) <= targetSdkVersion == compileSdkVersion (latest SDK)</span>  

用較低的 minSdkVersion 來覆蓋最大的人羣,用最新的 SDK 設置 target 和 compile 來得到最好的外觀和行爲。

          ok!關於SDK的目錄結構就闡述到這裏。
相關文章
相關標籤/搜索