A. android的sdk和api是什麼意思
SDK就是Kit,工具箱嘛,IOS平台上就是XCode,一系列的工具組合在一起,比如你在編輯器里敲代碼的時候它會自動補全代碼,自動錯誤檢查,你點一下Run,它會調用編譯器來自動編譯,編譯完它會調用iPhone的模擬器來運行,這就是SDK,提供整套的開發工具供開發者使用。
OpenAPI就是網站提供的介面,比如你想開發一個圍脖的手機客戶端,你從哪裡讀取數據寫入數據呢?總不能從Web版里調用吧?那裡是一堆一堆的html代碼啊,所以OpenAPI就是網站提供的介面,供開發者接入用的,比如聚合數據平台。
SDK (Software Development Kit)翻譯成中文就是"軟體開發工具組"
是用來幫一個 產品 或 平台 開發應用程式的工具組,由產品的廠商提供給開發者使用的。
通常是 某一家廠商 針對某一 平台 或 系統 或 硬體 所發布出來用以開發應用程式的工具組,
在這個工具包裡面,可能包含了各式各樣的開發工具,模擬器等。
例如:給 Android平台 使用的 Android SDK 就是用來開發 Android系統上面的應用程式。
API (Application Programming Interface)
翻譯成中文就是"應用程式介面",其實這樣翻譯不好,應該說是"程式溝通介面"。
翻譯為介面,顧名思義就要溝通兩個不同的東西用的,通常由一組函式庫所組成。
在一個 同一個平台 下的 兩個不同東西(程式 or 系統),為了能取用對方的功能等等,
所以一個 X程式 寫了一組函式,讓 同一平台的其他程式 取用 X程式 的功能,
那組函式就可以說是那個 X程式 對外開放的 API。
例如:我要在 自己的網頁 上加入 google map網頁的功能,就使用 "google map API"
有時候 SDK(開發者工具包) 里也會帶有些許 API 用來調用一些系統平台程式提供的功能
例如說:視窗顯示,圖形特效等等。
以下舉一個實際例子來說明,調用系統程式功能的API 是怎麽一回事
開發Windows應用程式的SDK(開發者工具包) 里就包含 Win32 API
說明: Win32 API 是一個函式庫,可以給Windows應用程式 調用 Windows系統的功能
在PTT看到有人問了差異性,我的看法是
SDK是用來開發某一個平台的程式的工具包,API 是讓同一平台下的程式取用它的功能的函式庫。
以及下面的評論
1.API 通常大家都不會弄錯,的確就是以功能為導向的"方法"或"函式"清單,
看程式語言或平台而定( Methods, Functions... ),
而每個 API 主要都是為了達成某特定功能所設計的。
開發商可以為了不同平台,設計相同的 API 讓開發者使用,
也可能會因應不同平台,製作不同的 API 讓開發者使用。
2.當 API 數量夠多功能夠繁復並且可交互為用的時候,
( 例如為了達成某些功能,常需要同時引用某些 APIs 來完成 )
開發商就會為了開發便利,而預先撰寫好一些組合好 APIs 的 API
供開發者使用,來統一有特定需求的開發者能有一致的開發與使用體驗,
( 例如讓使用"網路連線"的開發者不需自己處理網路的基礎溝通信息,
與錯誤處理方式,使 API 在應用的時候有一定程度的便利性等 )
然後,也陸續發展出測試、除錯工具,甚至是設計不同平台開發環境所需的套件,
尤其針對不同平台,更是設計了對應的工具來協助開發、除錯;
SDK 名詞之所以出現,儼然是為了匯整上述這些資源而誕生的,
我想也可以說成是 API 的包含者(直接使用)與應用者(以便加速開發),
也因此可以說這兩個是屬於不同層級的東西...
B. android api 簽名是什麼意思
android api 簽名是api調用的時候需要按照約定的參數生成一個字元串,對方接收到後校驗參數,合法後接受請求並返回結果。
所有android端的API的有效訪問URL包括以下三個部分:
1. 資源訪問路徑,如/v1/deal/find_deals;
2. 請求參數:即API對應所需的參數名和參數值param=value,多個請求參數間用&連接
如deal_id=1-85462&appkey=00000;
3. 簽名串,由簽名演算法生成
簽名演算法如下:
1. 對除appkey以外的所有請求參數進行字典升序排列;
2. 將以上排序後的參數表進行字元串連接,如...keyNvalueN;
3. 將app key作為前綴,將app secret作為後綴,對該字元串進行SHA-1計算,並轉換成16進制編碼;
4. 轉換為全大寫形式後即獲得簽名串
簽名串獲得後,將其作為sign參數附加到對應的URL中,即可正常訪問API。
注意:請保證HTTP請求數據編碼務必為UTF-8格式,URL也務必為UTF-8編碼格式。
參考代碼:
// 定義申請獲得的appKey和appSecret
String appkey = "XXXXXXXX";
String secret = "";
String apiUrl = "http://api.dianping.com/v1/business/find_businesses";
// 創建參數表
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("format", "json");
paramMap.put("city", "上海");
paramMap.put("latitude", "31.21524");
paramMap.put("longitude", "121.420033");
paramMap.put("category", "美食");
paramMap.put("region", "長寧區");
paramMap.put("limit", "20");
paramMap.put("radius", "2000");
paramMap.put("offset_type", "0");
paramMap.put("has_coupon", "1");
paramMap.put("has_deal", "1");
paramMap.put("keyword", "泰國菜");
paramMap.put("sort", "7");
// 對參數名進行字典排序
String[] keyArray = paramMap.keySet().toArray(new String[0]);
Arrays.sort(keyArray);
// 拼接有序的參數名-值串
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(appkey);
for (String key : keyArray)
{
stringBuilder.append(key).append(paramMap.get(key));
}
stringBuilder.append(secret);
String codes = stringBuilder.toString();
// 字元串連接示例
// XXXXXXXXcategory美食city上海formatjsonhas_coupon1has_deal1keyword泰國菜latitude31.21524limit20longitude121.420033offset_type0radius2000region長寧區sort7
// SHA-1編碼, 這里使用的是Apache codec,即可獲得簽名(shaHex()會首先將中文轉換為UTF8編碼然後進行sha1計算,使用其他的工具包請注意UTF8編碼轉換)
/*
* 以下sha1簽名代碼效果等同
* byte[] sha = org.apache.commons.codec.digest.DigestUtils.sha(org.apache.commons.codec.binary.StringUtils.getBytesUtf8(codes));
* String sign = org.apache.commons.codec.binary.Hex.encodeHexString(sha).toUpperCase();
*/
String sign = org.apache.commons.codec.digest.DigestUtils.shaHex(codes).toUpperCase();
//簽名示例
//
C. Android API 是什麼東西
API(Application
Programming
Interface,應用程序編程介面)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟體或硬體的以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節.
簡單來說,就是一套可供調用的系統介面.
D. android API是什麼
簡訊API(簡訊應用程序介面)其實是一組定義、程序及協議的集合,通過 API 介面實現計算機軟體之間的相互通信。API 的一個主要功能是提供通用功能集。程序員通過使用 API 函數開發應用程序,從而可以避免編寫無用程序,以減輕編程任務。 API 同時也是一種中間件,為各種不同平台提供數據共享。
E. 如何通過android api文檔學習android
(1) 首先要理解,什麼是Android,如果讀者通過本書的第一章學習初步了解了 Android,若想進一步學習和了解,建議仔細閱讀這個文檔中的 「What is Android」。
(2) 閱讀 「Anatomy of an Android Application」 能夠知道一個 Android 應用中到底都有些什麼東西,如果你讀完這個文檔還不是很清楚的話也沒有關系,本書第6章會詳細介紹 Android 的組成部分和各個部分所扮演的角色。
(3) 接著可以讀一下,「Development Tools」一節的內容,其中會介紹 SDK 中包含的一些工具及工具的作用,但是其介紹的比較簡單,我們後面會詳細講解各個工具的作用。
(4) 然後可以看一下「Application Life Cycle」,了解 Android 中生命周期的介紹,其中對前台進程、可見進程、後台進程等都做了比較詳細的解釋。
(5) 到這里,讀者已經躍躍欲試了,那麼看看其「Installing the SDK」文檔,介紹了開發環境,讀者通過本書第2章的學習,應該對這個文檔中介紹的內容非常熟悉了。
(6) 了解了開發環境以後,就動手實踐了,先按照「傳統習慣」實現一個「Hello World」程序,那麼請參考「Hello Android」這節內容。
(7) Hello World 程序比較簡單,完成後就可以開始 「Notepad Application」的製作和學習了,如果讀者真正弄懂了關於這個應用程序的4個練習,就已經從初學者轉向開發高手了。
(8) 在練習「Notepad Application」的時候,可以閱讀一下「Developing Application」這節的內容,其用了很多文字,也介紹了更多的細節,其中包括如何實現 UI,數據存儲和讀取,安全問題,資源引用和國際化等,其中每類下面都在更詳細的介紹。
(9) 最後,還要熟悉一下「Reference Information」的內容,其中按照包、索引、繼承關系介紹了API及其使用方法;同時列舉了比較典型的視圖組件和許可權類型號,做到心裡有數,在以後遇到問題的時候知道在哪裡可以查到就可以了。
F. 我們是怎麼調用android sdk里的庫的,android的API都有哪些怎麼分類
android sdk版本設置在2個地方 1. 文件project.properties t中arget=android-10
2. 文件AndroidManifest.xml中<uses-sdk android:minSdkVersion="10"></uses-sdk>
android 的API : http://developer.android.com/reference/java/io/DataInput.html
G. android api 23 和 android api 26有什麼區別,android api有什麼作用
API叫應用程序編程介面,安卓api23和安卓API 26都是用於安卓開發的、應用程序編程序介面的版本,一個是23,一個是26。它們的功能應該是類似的,不過有些程序可能針對於23或者26的,上下未兼容。
H. 如何創建Android庫以及Android aar文件詳解
創建 Android 庫
Android 庫在結構上與 Android 應用模塊相同。它可以提供構建應用所需的一切內容,包括源代碼、資源文件和 Android 清單。不過,Android 庫將編譯到您可以用作 Android 應用模塊依賴項的 Android 歸檔 (AAR:Android Archive Resource) 文件,而不是在設備上運行的 APK。與 JAR 文件不同,AAR 文件可以包含 Android 資源和一個清單文件,這樣,除了 Java 類與方法外,您還可以捆綁布局和可繪制對象等共享資源。
庫模塊在以下情況下非常有用:
構建使用某些相同組件(例如 Activity、服務或 UI 布局)的多個應用。
構建存在多個 APK 變體(例如免費版本和付費版本)的應用並且需要在兩種版本中使用相同的核心組件。
在任何一種情況下,只需要將您希望重用的文件移動到庫模塊中,然後以依賴項的形式為每個應用模塊添加庫。本頁面將說明如何執行這兩個操作。
創建庫模塊
要在您的項目中創建一個新的庫模塊,請按以下步驟操作:
1、點擊** File > New > New Mole。**
2、在出現的 Create New Mole 窗口中,依次點擊** Android Library 和 Next。還存在一個用於創建 Java 庫的選項,可以構建傳統的 JAR 文件。盡管 JAR 文件在大多數項目中都非常實用(尤其在您希望與其他平台共享代碼時),但這種文件不允許您包含 Android 資源或清單文件,而後者對於 Android 項目中的代碼重用非常有用。**因此,本指南將側重論述創建 Android 庫。
3、為您的庫命名,並為庫中代碼選擇一個最低的 SDK 版本,然後點擊 Finish。
在 Gradle 項目同步完成後,庫模塊將顯示左側的 Project 面板中。如果您未看到新模塊文件夾,請確保將視圖切換為 Android 視圖。
將應用模塊轉換為庫模塊
如果您現有的應用模塊包含您希望重用的所有代碼,則可以按照以下步驟將其轉換為庫模塊:
1、打開現有應用模塊的 build.gradle 文件。您應在頂部看到以下內容:
2、按照下面所示更改插件分配:
3、點擊 Sync Project with Gradle Files。
就這么簡單。模塊的整個結構仍然相同,但是現在它將作為 Android 庫運行,構建也將創建一個 AAR 文件,而不是 APK。
生成aar
在Android Studio1.4中,New project,先默認新建一個Applicaton mole,接後File > New > New Mole,選擇Androd Library > Next,指定Library Name和Mole Name。
新建的Library與正常的Application最大區別是mole build.gradle中是**apply plugin: 『com.android.library』 **而不是 apply plugin: 'com.android.application'
Build > Make project,自動生成aar文件。
以依賴項形式添加您的庫
要在另一個應用模塊中使用您的 Android 庫的代碼,請按以下步驟操作:
1、通過兩種方式之一將庫添加到您的項目(如果您是在相同項目中創建的庫模塊,則該模塊已經存在,您可以跳過此步驟):
添加已編譯的 AAR(或 JAR)文件:
1、點擊 File > New Mole。
2、依次點擊 Import .JAR/.AAR Package 和** Next**。
3、輸入 AAR 或 JAR 文件的位置,然後點擊 Finish。
將庫模塊導入到您的項目中:
1、點擊** File > New > Import Mole。**
2、輸入庫模塊目錄的位置,然後點擊 Finish。
庫模塊將復制到您的項目中,因此您可以盡管編輯庫代碼。如果您希望維護一個版本的庫代碼,則此方法可能不是您想要的,您應按照上文所述導入編譯的 AAR 文件。
2、確保庫列在您 settings.gradle 文件的頂部,如下面名為「my-library-mole」的庫所示:
3、打開應用模塊的 build.gradle 文件,並向 dependencies 塊中添加一行新代碼,如下面的片段所示:
4、點擊 Sync Project with Gradle Files。
在上面的示例中,名為 my-library- mole 的 Android 庫模塊成為 build.gradle 文件所在模塊的構建依賴項。
您的應用模塊現在可以訪問 Android 庫中的任何代碼和資源,庫 AAR 文件在構建時已捆綁到您的 APK 中。
不過,如果希望單獨共享 AAR 文件,則可以在 項目名稱/模塊名稱/build/outputs/aar/ 中找到它,也可以通過點擊 Build > Make Project 的方式重新生成此文件。
選擇要設為公開的資源
庫中的所有資源在默認情況下均處於公開狀態。要將所有資源隱式設為私有,您必須至少將一個特定的屬性定義為公開。資源包括您項目的 res/ 目錄中的所有文件,例如圖像。要阻止您的庫用戶訪問僅供內部使用的資源,您應通過聲明一個或多個公開資源的方式來使用這種自動私有標識機制。
要刪除某個公開資源,請將一個聲明添加到您的庫的 public.xml文件中。如果您之前尚未添加公開資源,則需要在您的庫的 res/values/目錄中創建public.xml 文件。
下面的示例代碼可以創建兩個名稱分別為 mylib_app_name和 mylib_public_string 的公開字元串資源:
android {
defaultConfig {
consumerProguardFiles 'lib-proguard-rules.txt'
}
...
}
dependencies {
debugCompile project(path: ':library', configuration: 'debug')
releaseCompile project(path: ':library', configuration: 'release')
}
android {
...
publishNonDefault true
}```
不過請注意,設置 publishNonDefault會增加構建時間。
為了確保您的庫的 ProGuard 規則不會將意外的壓縮副作用施加到應用模塊,請僅包含適當規則,停用不適用於此庫的 ProGuard 功能。嘗試協助開發者的規則可能會與應用模塊或它的其他庫中的現有代碼沖突,因此不應包含這些規則。例如,您的庫的 ProGuard 文件可以指定在應用模塊的壓縮期間需要保留的代碼。
註:Jack 工具鏈僅支持 ProGuard 的部分壓縮和模糊選項。
AAR 文件詳解
AAR 文件的文件擴展名為 .aar,Maven 工件類型也應當是 aar。文件本身是一個包含以下強制性條目的 zip文件:
/AndroidManifest.xml
/classes.jar
/res/
/R.txt
此外,AAR 文件可能包含以下可選條目中的一個或多個:
/assets/
/libs/**名稱 **.jar
/jni/abi 名稱 /名稱.so(其中 abi 名稱是 Android 支持的 ABI 之一)
/proguard.txt
/lint.jar
I. android api是什麼東西怎麼使用
做程序用的。