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


Android SDK下載和安裝

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

  沒有SDK,則需要下載。

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

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

進入到安裝目錄下:

  (2)啟動SDK Manager.exe,如下圖:

    

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

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

 

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

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

   注意直接用瀏覽器下載,不要用迅雷,避免類似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的目錄結構就闡述到這里。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM