Android SDK Manager詳解

來源:互聯網
上載者:User

標籤:eve   實現   support   包含   frame   apt   工具   2.0   資源   

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 。想知道這三者的區別,得Crowdsourced Security Testing道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 
很慚愧,做了一點微小的貢獻!

 

參考:53178602

Android SDK Manager詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.