Try   HackMD

雖然 API 跟 SDK 還不至於傻傻分不清楚,但也還是迷迷糊糊的,在網路上看到幾個不錯的例子,趁著這個機會一併整理整理 XDDD

最後順便整理一下 Android API Level 與 SDK 的版本對照表。

API (Application Programming Interface,應用程式介面)

API 是一個讓開發者能夠存取 Library 裡面的 functions/methods 的介面,而無須了解 function 是怎麼運作、被實作的。

就我自己舉例,API 是個公司的對外窗口,裡面的 Library 則是不同 team,而 functions / methods 而則是 team 裡面的 RD,每個人可以執行不同工作,當我需要有人幫我寫程式,就去公司的對外窗口(API)去下單,之後只要等著收程式就好,你不管是哪個 team 幫你生出來的。自己舉的例子或許不是很恰當,不過大概就是類似的邏輯概念。

在網路上還看到兩個有趣的例子:

  • 在水面上對著湖中女神大喊「我掉的是金斧頭」,湖中女神就會丟出一把金斧頭(如果你沒說謊的話),你不用知道到底她是怎麼找到你的斧頭的;同時,如果你不知道拿斧頭的規則(說謊),亂喊「我要金斧頭」,湖中女神就不會理你。所以可以說,湖中女神是一個 "Library",有開出 "拿斧頭的 API"

  • API 就是皮卡丘,提供鋼鐵尾巴跟雷電兩種技能給你呼叫。你不用研究為什麼皮卡丘會發電,也不用研究尾巴為什麼會變鋼鐵,反正你只要說,"上吧皮卡丘,使用雷電"。 皮卡丘是 API 提供界面給你呼叫技能的函式庫。

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    上吧皮卡丘,使用雷電(圖片來源: 電獺少女

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 陳俊安的開發筆記
  2. API ? SDK? 傻傻分清楚|Jyny Chen Blog
  3. Android API Level与sdk版本对照表|今天又进步了 博客园



本文作者: 辛西亞.Cynthia
本文連結辛西亞的技能樹 / hackmd 版本
版權聲明: 部落格中所有文章,均採用 姓名標示-非商業性-相同方式分享 4.0 國際 (CC BY-NC-SA 4.0) 許可協議。轉載請標明作者、連結與出處!