Android基礎知識——Android SDK Manager詳解html
作Android開發時,免不了使用Android SDK Manager,安裝須要的sdk版本、buildTools版本等等。java
下圖展現了2016.11.16號Android SDK Manager全部的package。不少Android開發的新人在使用的時候可能會疑惑了:這些package到都是什麼功能呢,都要安裝嗎?本篇文章將爲你把這些疑惑解開(若是你只想知道須要安裝哪些package,直接跳至文末)。android
SDK Manager 的package目錄結構以下面兩幅圖所示
sql
大致上能夠分爲Tools、Platforms和Extras三部分。install須要的package後,Android Studio將在本地建立對應的文件目錄,如圖是博主安裝了一些package以後,PC上的目錄結構:
經過本地文件,咱們能夠了解到install某個package以後,會提供什麼樣的功能,由文件夾的命名找到對應的package並非很難,好比紅色圈出來的三塊,很容易知道來自SDK Manager的Tools目錄下面。下面咱們將經過查看Tools、Platforms和Extras三部分的本地文件的方式帶你們詳細瞭解SDK Manager。數據庫
Tools文件夾下包括三種tools:Android SDK Tools,Android SDK Platform-tools和Android SDK Build-tools。對應於本地文件夾的tools,platform-tools和build-tools。markdown
Android SDK Tools
Android SDK Tools對應的本地文件夾的存儲目錄以下圖所示:
SDK Tools包含了不少重要的工具,好比:ddms用於啓動Android調試工具;draw9patch則是繪製android平臺的.9圖的工具;monkeyrunner則是一個不錯的壓力測試工具,模擬用戶在手機上隨機按鍵;mksdcard是模擬器SD映像的建立工具,emulator是Android SDK模擬器主程序;traceview是android平臺上重要的調試工具,能夠列出每一個方法調用所使用的事件,展開方法還能看到方法被調用其餘方法所佔用的時間百分比,這樣就能夠知道那個方法用了最多的資源,進而能夠對其進行優化或者將其搬離主線程。其餘工具就不一一介紹了,感興趣的自行了解。
因而可知,SDK Tools是須要安裝的。架構
Android SDK Platform-tools
SDK Platform-tools的本地文件夾對應的文件目錄
Platform-tools一樣包含了不少重要工具:adb是android調試工具,以命令行的形式和模擬器或者鏈接的手機進行通信;sqlite3幫助開發者在PC上查看sqlite數據庫等其它工具。同上,其餘工具能夠參考Google的開發者文檔瞭解。
SDK Platform-tools也是須要安裝的。app
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更新。eclipse
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,二個是功能和性能上都會有提高。
每一個Android版本對應於一個Platforms版本,2016.11.16號官方給出的SDK版本可選項從Android 2.1到最新的Android 7.1.1。每一個版本的Platforms又包括Android SDK 的SDK Platform,Document,Sources以及System Image。
Extras中包含了不少blahblahblah的,比較重要的是這三個Android Support Repository , Android Support Library, Google Repository 。想知道這三者的區別,得先知道Android Studio和Eclipse在構建Android 項目時的區別。AS採用gradle構建,而eclipse採用ant構建。因此Google提供了Respository用於Android Studio,而Library用於Eclipse。
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的前世此生。
Google Repository
該存儲庫可爲您的應用提供各類功能和服務,包括 Firebase、Google 地圖、遊戲成就和排行榜等。
除了這三個以外Intel x86 Emulator Accelerator用於加速Intel x86架構的手機模擬器,若有須要能夠安裝。
說了這麼多,一張圖歸納下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