① android sdk包括什麼'
ADT(Android Development Tools):
目前Android開發所用的開發工具是Eclipse,在Eclipse編譯IDE環境中,安裝ADT,為Android開發提供開發工具的升級或者變更,簡單理解為在Eclipse下開發工具的升級下載工具。
SDK(Software Development Kit):
一般是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、操作系統等建立應用軟體的開發工具的集合。在Android中,他為開發者提供了庫文件以及其他開發所用到的工具。簡單理解為開發工具包集合,是整體開發中所用到的工具包,如果你不用Eclipse作為你的開發工具,你就不需要下載ADT,只下載SDK即可開發。
② android ndk與sdk
1. SDK
Android SDK(Android Software Development Kit),即Android軟體開發工具包,Android的SDK基於java實現,這意味著基於Android SDK進行開發的第三方應用都必須使用Java語言。但這並不等同於「第三方應用只能使用Java」,也就是說我們還可以採用C/C++語言。
2. NDK
NDK即Native Development Kit,眾所周知,Android程序運行在Dalvik虛擬機中,NDK允許用戶使用類似C / C++之類的原生代碼語言執行部分程序。
NDK是一系列工具的集合。它提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk(AndroidPackage的縮寫,Android安裝包)。這些工具對開發者的幫助是巨大的。它集成了交叉編譯器,並提供了相應的mk文件隔離CPU、平台、ABI等差異,開發人員只需要簡單修改mk文件(指出「哪些文件需要編譯」、「編譯特性要求」等),就可以創建出so。它可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作
NDK提供了一份穩定、功能有限的API頭文件聲明,Google明確聲明該API是穩定的,在後續所有版本中都穩定支持當前發布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標准庫(libc)、標准數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。
為什麼使用NDK
(1) 代碼的保護。由於apk的java層代碼很容易被反編譯,而C/C++庫反匯難度較大。
(2) 可以方便地使用現存的開源庫。大部分現存的開源庫都是用C/C++代碼編寫的。
(3) 提高程序的執行效率。將要求高性能的應用邏輯使用C開發,從而提高應用程序的執行效率。
(4)便於移植。用C/C++寫得庫可以方便在其他的嵌入式平台上再次使用。
③ Android NDK開發簡介 NDK和SDK以及JNI有什麼關系
NDK:Android NDK 是在SDK前面又加上了「原生」二字,即Native Development Kit,因此又被Google稱為「NDK」。
NDK全稱:Native Development Kit。
NDK是一系列工具的集合。
* NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。
* NDK集成了交叉編譯器,並提供了相應的mk文件隔離CPU、平台、ABI等差異,開發人員只需要簡單修改mk文件(指出「哪些文件需要編譯」、「編譯特性要求」等),就可以創建出so。
* NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。
其實:
NDK就是能夠方便快捷開發.so文件的工具。JNI的過程比較復雜,生成.so需要大量操作,而NDK就是簡化了這個過程。
Android SDK:
SDK (software development kit)軟體開發工具包。被軟體開發工程師用於為特定的軟體包、軟體框架、硬體平台、操作系統等建立應用軟體的開發工具的集合。因此!Android SDk 指的既是Android專屬的軟體開發工具包
JNI:
Java Native Interface (JNI)標準是java平台的一部分,它允許Java代碼和其他語言寫的代碼進行交互。JNI 是本地編程介面,它使得在 Java 虛擬機 (VM) 內部運行的 Java 代碼能夠與用其它編程語言(如 C、C++ 和匯編語言)編寫的應用程序和庫進行交互操作
當然一般需要進行如下操作流程:
1) 編寫java程序:這里以HelloWorld為例。為了實現在 java代碼中調用c函數printf。
代碼1:
class HelloWorld {
public native void testHelloWorld();
static {
System.loadLibrary("hello");
}
public static void main(String[] args) {
new HelloWorld().testHelloWorld();
}
}
聲明native方法:如果你想將一個方法做為一個本地方法的話,那麼你就必須聲明改方法為native的,並且不能實現。
Load動態庫:System.loadLibrary("hello");
這里一般是以static塊進行載入的。同時需要注意的是System.loadLibrary()的參數「hello」是動態庫的名字。
2) 編譯
javac HelloWorld.java
3) 生成擴展名為h的頭文件 javah ?
JNIEXPORT void JNICALL Java_HelloWorld_testHelloWorld (JNIEnv *, jobject);
這個h文件相當於我們在java裡面的介面,這里聲明了一個 Java_HelloWorld_testHelloWorld (JNIEnv *, jobject)方法,然後在我們 的本地方法裡面實現這個方法,也就是說我們在編寫C/C++程序的時候所使用的方法名必須和這里的一致)。
4) 編寫本地方法實現和由javah命令生成的頭文件裡面聲明的方法名相同的方法
代碼2:
#include "jni.h"
#include "HelloWorld.h"
#include other headers
JNIEXPORT void JNICALL Java_HelloWorld_testHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!/n");
return;
}
注意代碼2中的第1行,需要將jni.h(該文件可以在%JAVA_HOME%/include文件夾下面找到)文件引入,因為在程序中的JNIEnv、 jobject等類型都是在該頭文件中定義的;另外在第2行需要將HelloWorld.h頭文件引入。然後保存為 HelloWorldImpl.c就ok了。
5) 生成動態庫
這里以在Windows中為例,需要生成dll文件。在保存HelloWorldImpl.c文件夾下面,使用VC的編譯器cl成。 cl -I%java_home%/include -I%java_home%/include/win32 -LD HelloWorldImp.c -Fehello.dll 注意:生成的dll文件名在選項-Fe後面配置,這里是hello,因為在HelloWorld.java文件中我們loadLibary的時候使用的名字是hello。
另外需要將-I%java_home%/include -I%java_home%/include/win32參數加上,因為在第四步裡面編寫本地方法的時候引入了jni.h文件。
④ 安卓SDK是什麼
SDK是一些公司針對某一項技術為軟體開發人員製作的一套輔助開發或者減少開發周期的工具,一般是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、操作系統等建立應用軟體的開發工具的集合。
安卓SDK就是做安卓軟體或游戲的一項輔助工具,它有可能是官方的,也有可能是軟體公司自己開發的,目的在於方便軟體製作者製作軟體。
你可以到網路里搜SDK看看
⑤ android sdk有什麼用
sdk 是開發者工具包 android sdk是提供給開發者開發android應用的工具包,把android sdk配置到eclipse平台上就可以進行安卓應用開發。
⑥ android sdk是什麼
Android SDK(Software Development Kit)提供了在 Windows/Linux/Mac 平台上 開發 Android 應用的開發組件,Android 支持所有的平台,其包含了在 Android 平台上開發移動應用的各種工具集。
Android SDK 主要是以 Java 語言為基礎,用戶可以使用 Java 語言來開發 Android 平台上的軟體應用。通過 SDK 提供的一些工具將其打包成 Android 平台使用的 apk 文件,然後用 SDK 中的模擬器(Emulator)來模擬和測試軟體在 Android 平台上運行情況和效果。
⑦ android sdk什麼作用
SDK叫做軟體開發工具包。
軟體開發工具包(外語首字母縮寫:SDK、外語全稱:Software Development Kit)一般都是一些軟體工程師為特定的軟體包、軟體框架、硬體平台、操作系統等建立應用軟體時的開發工具的集合。
軟體開發工具包括廣義上指輔助開發某一類軟體的相關文檔、範例和工具的集合。
軟體開發工具包是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、操作系統等創建應用軟體的開發工具的集合,一般而言SDK即開發 Windows 平台下的應用程序所使用的 SDK。它可以簡單的為某個程序設計語言提供應用程序介面 API 的一些文件,但也可能包括能與某種嵌入式系統通訊的復雜的硬體。一般的工具包括用於調試和其他用途的實用工具。SDK 還經常包括示例代碼、支持性的技術註解或者其他的為基本參考資料澄清疑點的支持文檔。
為了鼓勵開發者使用其系統或者語言,許多 SDK 是免費提供的。軟體工程師通常從目標系統開發者那裡獲得軟體開發包,也可以直接從互聯網下載,有時也被作為營銷手段。例如,營銷公司會免費提供構件SDK 以鼓勵人們使用它,從而會吸引更多人由於能免費為其編程而購買其構件。
SDK 可能附帶了使其不能在不兼容的許可證下開發軟體的許可證。例如產品供應商提供一個專有的 SDK 可能與自由軟體開發抵觸。GPL 能使 SDK 與專有軟體開發近乎不兼容。LGPL 下的 SDK 則沒有這個問題。
⑧ Google Android SDK開發範例大全的內容簡介
本書在上一版的基礎上,以Android手機應用程序開發(採用Android SDK 2.1)為主題,通過160多個範例全面且深度地整合了手機、網路及服務等多個開發領域,為讀者提高程序設計功力提供了很大的幫助。
全書共分10章,主要以範例集的方式來講述Android的知識點,詳細介紹了開發Android的人機交互界面、Android常用的開發控制項、使用Android手機收發簡訊等通信服務、開發Android手機的自動服務功能和娛樂多媒體功能以及整合Android與Google強大的網路服務等內容。隨書光碟中包括了所有範例的程序代碼。
本書講述由淺入深,由Android的基礎知識到實際開發應用,結構清晰、語言簡潔,非常適合Android的初學者和Android的進階程序開發者閱讀參考。