1. 程式人生 > >Android SDK Manager詳解

Android SDK Manager詳解

eba 調試 測試工具 使用說明 服務 能力 bar 部分 以及

Android基礎知識——Android SDK Manager詳解

做Android開發時,免不了使用Android SDK Manager,安裝需要的sdk版本、buildTools版本等等。

下圖展示了2016.11.16號Android SDK Manager所有的package。很多Android開發的新人在使用的時候可能會疑惑了:這些package到都是什麽功能呢,都要安裝嗎?本篇文章將為你把這些疑惑解開(如果你只想知道需要安裝哪些package,直接跳至文末)。

1. SDK Manager 目錄結構

SDK Manager 的package目錄結構如下面兩幅圖所示
技術分享圖片

技術分享圖片
大體上可以分為Tools、Platforms和Extras三部分。install需要的package後,Android Studio將在本地創建對應的文件目錄,如圖是博主安裝了一些package之後,PC上的目錄結構:
技術分享圖片
通過本地文件,我們可以了解到install某個package之後,會提供什麽樣的功能,由文件夾的命名找到對應的package並不是很難,比如紅色圈出來的三塊,很容易知道來自SDK Manager的Tools目錄下面。下面我們將通過查看Tools、Platforms和Extras三部分的本地文件的方式帶大家詳細了解SDK Manager。

1. Tools

Tools文件夾下包括三種tools:Android SDK Tools,Android SDK Platform-tools和Android SDK Build-tools。對應於本地文件夾的tools,platform-tools和build-tools。

  1. Android SDK Tools
    Android SDK Tools對應的本地文件夾的存儲目錄如下圖所示:
    技術分享圖片
    SDK Tools包含了很多重要的工具,比如:ddms用於啟動Android調試工具;draw9patch則是繪制android平臺的.9圖的工具;monkeyrunner則是一個不錯的壓力測試工具,模擬用戶在手機上隨機按鍵;mksdcard是模擬器SD映像的創建工具,emulator是Android SDK模擬器主程序;traceview是android平臺上重要的調試工具,可以列出每個方法調用所使用的事件,展開方法還能看到方法被調用其他方法所占用的時間百分比,這樣就可以知道那個方法用了最多的資源,進而可以對其進行優化或者將其搬離主線程。其他工具就不一一介紹了,感興趣的自行了解。
    由此可見,SDK Tools是需要安裝的。

  2. Android SDK Platform-tools
    SDK Platform-tools的本地文件夾對應的文件目錄
    技術分享圖片
    Platform-tools同樣包含了很多重要工具:adb是android調試工具,以命令行的形式和模擬器或者連接的手機進行通訊;sqlite3幫助開發者在PC上查看sqlite數據庫等其它工具。同上,其他工具可以參考Google的開發者文檔了解。
    SDK Platform-tools也是需要安裝的。

  3. Android SDK Build-tools
    Android SDK Build-tools和Android SDK Tools以及Android SDK Platform-tools不同的地方是,Android SDK Managert 保留了Android SDK Build-tools的老版本,而其他兩類Tools只提供最新版的update。在博主的電腦上安裝過的Build-tools就有這幾個版本:
    技術分享圖片
    早期的Build-tools放在Platform-tools中,2013年之後為了
    將編譯相關的組件從platform-tools組件中解耦,Google新建了Build-tools存放,並且Build-tools可以獨立於IDE更新。

    Decoupled the build-specific components of the Android SDK from the platform-tools component, so that the build tools can be updated independently of the integrated development environment (IDE) components.

    為什麽Build-tools需要保留舊的版本,stack overflow給出的解釋是保持向後兼容的能力,新的Build-tools可能移除了老版的一些特性,此時對采用老版Build-tools build的工程來說,還得接著用舊版。

    they keep the old build tools because as they update the tools, some features become deprecated. But app developers might have source code that relies on those features so they keep the old versions available to support those old code bases.

    博主的24.0.2版本的Build-tools包含的工具如下:
    技術分享圖片
    包括 aapt(Android Asset Packaging Tool)安卓資源打包工具:編譯應用程序的資源文件(包括 AndroidManifest.xml 和你的 Activitiy 的 xml 文件),生成 R.java 文件,這樣你就可以從你的java代碼中引用資源;aidl:把 .aidl 接口轉換成 java 接口;dx:轉化 .class 中間代碼為dvlik中間代碼,所有經過 java 編譯的生成 .class 文件都需要此工具進行轉換,最後打包進 apk 文件中等工具等等功能。
    綜上,博主建議大家創建新工程時盡量使用最新版的build-tools,一個是新版的修復老板的一些bug,二個是功能和性能上都會有提升。

2. Platforms

每個Android版本對應於一個Platforms版本,2016.11.16號官方給出的SDK版本可選項從Android 2.1到最新的Android 7.1.1。每個版本的Platforms又包括Android SDK 的SDK Platform,Document,Sources以及System Image。

  1. SDK Platform
    這個好理解,就是該版本編譯好的SDK,肯定是必須裝的
  2. Document
    離線的文檔,方便你查閱API使用說明
  3. Sources
    源代碼,一個是學習Google優秀的源代碼,二個是查看源碼方便調錯。
  4. System Image
    編譯好的系統映像,模擬器可以直接加載,一般沒必要install,創建需要的模擬器後在獲取也不遲。Android Studio 2.0之後,官方提供的模擬器已經很好用了,個人覺得可以不用Genymotion。

3. Extras

Extras中包含了很多blahblahblah的,比較重要的是這三個Android Support Repository , Android Support Library, Google Repository 。想知道這三者的區別,得先知道Android Studio和Eclipse在構建Android 項目時的區別。AS采用gradle構建,而eclipse采用ant構建。所以Google提供了Respository用於Android Studio,而Library用於Eclipse。

  1. Android Support Repository
    包含支持庫的本地 Maven 存儲庫,該存儲庫提供了一組豐富的 API,這些 API 兼容大多數版本的 Android。該工具是 Android Wear、Android TV 和 Google Cast 等產品的必備工具。Google之所以要提供Android Support Repository,主要基於以下三點的考慮:向後兼容——新的SDK加入的新特性可以在舊版SDK體現;提供不適合打包進framework的功能——一些非強制要求的特性通過Android Support Repository的方式,供開發者選用;為了支持不同形態的設備——就像上面提到的,不同的設備之間的差異功能由Support Repository實現。Android Support Repository目前包含了13類的支持庫,我們常用的有v4 ,v7,v13 這三種Support Library。關於Android Support Repository更多詳解,參考Android Support Library的前世今生。

  2. Google Repository
    該存儲庫可為您的應用提供各種功能和服務,包括 Firebase、Google 地圖、遊戲成就和排行榜等。

除了這三個之外Intel x86 Emulator Accelerator用於加速Intel x86架構的手機模擬器,如有需要可以安裝。

4. 總結

說了這麽多,一張圖概括下Android SDK Manager扮演的角色就是知乎—康建偉總結的下圖:
技術分享圖片

本文的誕生要感謝
1. Android SDk Manager裏面到底哪些東西是必須下載的?
2. What are the Android SDK build-tools, platform-tools and tools? And which version should be used?
3. Update the IDE and Tools
4. android sdk裏的各目錄作用
5. Android Support Library的前世今生
6. android what is the difference between Android Support Repository vs Android Support Library vs Google Repository vs Google Play Services
很慚愧,做了一點微小的貢獻!

參考:https://blog.csdn.net/u011026779/article/details/53178602

Android SDK Manager詳解