JNI && NDK && SDK

JNI

  • Java Native Interface,即 Java本地接口.
  • 做用: 使得Java 與 本地其餘類型語言(如C、C++)交互(即在 Java代碼 裏調用 C、C++等語言的代碼 或 C、C++代碼調用 Java 代碼)
  • JNI是 Java 調用 Native 語言的一種特性,是屬於 Java 的,與 Android 無直接關係
  • 使用JNI的緣由:由於 Java 具有跨平臺的特色,因此Java 與 本地代碼交互的能力很是弱
  • 實現步驟:
1.在Java中聲明Native方法(即須要調用的本地方法)
2.編譯上述 Java源文件javac(獲得 .class文件)
3.經過 javah 命令導出JNI的頭文件(.h文件)
4.使用 Java須要交互的本地代碼 實如今 Java中聲明的Native方法 (如 Java 須要與 C++ 交互,那麼就用C++實現 Java的Native方法)
5.編譯.so庫文件
6.經過Java命令執行 Java程序,最終實現Java調用本地代碼

NDK

  • Native Development Kit,是 Android的一個工具開發包(NDK是屬於 Android 的,與Java並沒有直接關係)
  • 快速開發C、 C++的動態庫,並自動將so和應用一塊兒打包成 APK 便可經過 NDK在 Android中 使用 JNI與本地代碼(如C、C++)交互.即在Android的場景下 使用JNI
  • NDK還提供了交叉編譯器,開發人員只須要簡單修改mk文件就能夠生成特定CPU平臺的動態庫。
  • 實現步驟:
1.配置 Android NDK環境
2.建立 Android 項目,並與 NDK進行關聯
3.在 Android 項目中聲明所須要調用的 Native方法
4.使用 Android須要交互的本地代碼 實如今Android中聲明的Native方法(好比 Android 須要與 C++ 交互,那麼就用C++ 實現 Java的Native方法)
5.經過 ndk - bulid 命令編譯產生.so庫文件
6.編譯 Android Studio 工程,從而實現 Android 調用本地代碼
  • NDK與JNI: Android經過NDK實現JNI

SDK

  • Software Development Kit, SDK
  • 做用:提供了讓咱們編寫的java代碼成功運行在Android平臺上所需的一系列工具和API。
  • 組成(部分):java

    • SDK Tools:它包含了用於開發app所須要的一些工具,用來測試和調試程序
    • SDK Platform-tools:保存着一些通用工具,好比adb、和aapt、aidl、dx等文件
    • System Images:每個platform版本都會提供一個或多個不一樣的系統鏡像(例如ARM 和 x86版本),Android的虛擬機須要一個系統鏡像來運行。
相關文章
相關標籤/搜索