--- title: 【Android】Android SDK 與 API date: 2016-03-18 is_modified: false disqus: cynthiahackmd categories: - "程式設計 › 程式語言與架構" tags: - "Android" --- {%hackmd @CynthiaChuang/Github-Page-Theme %} <br> 雖然 API 跟 SDK 還不至於傻傻分不清楚,但也還是迷迷糊糊的,在網路上看到幾個不錯的例子,趁著這個機會一併整理整理 XDDD 最後順便整理一下 Android API Level 與 SDK 的版本對照表。 <!--more--> ## API (Application Programming Interface,應用程式介面) API 是一個讓開發者能夠存取 Library 裡面的 functions/methods 的介面,而無須了解 function 是怎麼運作、被實作的。 就我自己舉例,API 是個公司的對外窗口,裡面的 Library 則是不同 team,而 functions / methods 而則是 team 裡面的 RD,每個人可以執行不同工作,當我需要有人幫我寫程式,就去公司的對外窗口(API)去下單,之後只要等著收程式就好,你不管是哪個 team 幫你生出來的。自己舉的例子或許不是很恰當,不過大概就是類似的邏輯概念。 在網路上還看到兩個有趣的例子: - 在水面上對著湖中女神大喊「我掉的是金斧頭」,湖中女神就會丟出一把金斧頭(如果你沒說謊的話...),你不用知道到底她是怎麼找到你的斧頭的;同時,如果你不知道拿斧頭的規則(說謊),亂喊「我要金斧頭」,湖中女神就不會理你。所以可以說,湖中女神是一個 **"Library"**,有開出 **"拿斧頭的 API"**。 - API 就是皮卡丘,提供鋼鐵尾巴跟雷電兩種技能給你呼叫。你不用研究為什麼皮卡丘會發電,也不用研究尾巴為什麼會變鋼鐵,反正你只要說,**"上吧皮卡丘,使用雷電"**。 皮卡丘是 API 提供界面給你呼叫技能的函式庫。 <p class="illustration"> <img src="https://i.imgur.com/8Hn06ql.png" alt="上吧皮卡丘"> 上吧皮卡丘,使用雷電(圖片來源: <a href="https://agirls.aotter.net/post/52299">電獺少女</a>) </p> ## SDK (Software Development Kit,軟體開發工具包) 是用來幫一個 **產品** 或 **平台** 開發應用程式的工具組,由產品的廠商提供給開發者使用的,通常是某一家廠商針對某一平台、系統或硬體所發布出來用以開發應用程式的工具組,在這個工具包裡面,可能包含了各式各樣的開發工具,模擬器、API 等。 例如:Android 針對不同的版號有不同的 SDK,因此在 Android Studio 進行開發時需要針對你的平台安裝不同的 SDK,而在 SDK 會提供相對應 API 以供使用。 ## Android API Level 與 SDK 的版本對照表 目前市面上常見的是 API15 以上的機種,所以這邊就從 15 開始列,N 的部份就先不列了。 | API |版本號 |版本名稱 | |----------------|-------------------------------|-----------------------------| |API-15 |Android 4.0.3 - 4.0.4 |Ice Cream Sandwich | |API-16 |Android 4.1 |Jelly Bean | |API-17 |Android 4.2 |Jelly Bean | |API-18 |Android 4.3 |Jelly Bean | |API-19 |Android 4.4 |KitKat | |API-20 |Android 4.4W–4.4W.2 |KitKat, with wearable extensions| |API-21 |Android 5.0-5.0.2 |Lollipop | |API-22 |Android 5.1–5.1.1 |Lollipop | |API-23 |Android 6.0–6.0.1 |Marshmallow | ## 參考資料 1. [[Dev] IDE, API, SDK, Library 基本術語解釋|Andro Chen 陳俊安的開發筆記](http://androchen.logdown.com/posts/2014/04/13/api-sdk-library) 2. [API ? SDK? 傻傻分清楚|Jyny Chen Blog](http://blog.jyny.tw/2013/01/api-sdk.html) 3. [Android API Level与sdk版本对照表|今天又进步了 博客园](http://www.cnblogs.com/wawahaha/p/4916196.html) <br><br> > **本文作者**: 辛西亞.Cynthia > **本文連結**: [辛西亞的技能樹](https://cynthiachuang.github.io/Android-SDK-and-API) / [hackmd 版本](https://hackmd.io/@CynthiaChuang/Android-SDK-and-API) > **版權聲明**: 部落格中所有文章,均採用 [姓名標示-非商業性-相同方式分享 4.0 國際](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en) (CC BY-NC-SA 4.0) 許可協議。轉載請標明作者、連結與出處!
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.