android 開發淺談(JDK && NDK)

風靈使發表於2018-11-12

一、軟體開發(Android 開發)

android SDK開發(上層開發)

-------利用Android-SDK編寫的Java程式程式碼,生成的APK,很容易反編譯

android NDK(JNI)開發(其餘開發)

-------利用NDK,可以開發純C&C++的程式碼,然後編譯成庫,讓利用Android-SDK開發的Java程式呼叫

-------利用NDK開發的庫,不易被反編譯,保密性較高

-------很多開源工程和大型工程都是C&C++程式碼,把它們轉換為純java語言是不可能的,只能通過NDK(JNI)間接呼叫

-------C&C++的程式碼執行速度和效率都比java快很多。

二、相關概念

JVM執行原理
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

  1. Android SDK(Software Develop Kit) 指的是Android專屬的軟體開發工具包。
    SDK:(software development kit)軟體開發工具包。被軟體開發工程師用於為特定的軟體包、軟體框架、硬體平臺、作業系統等建立應用軟體的開發工具的集合。
    JAVA開發也有自己的Java SDK。Android SDK以zip壓縮包的格式下載(如第三章描述的一樣)。Android SDK主要是大量的檔案,包含文件、程式設計API、工具,其餘由示例組成。android SDK中API提供一些擴充套件的java 類庫,類庫分為若干個包,每個包中包含若干個類。具體的android sdk 介紹參見:http://wc0903.iteye.com/blog/599770

  2. Android JDK(Java Develop Kit) 指的是Android。
    它是一種用於構建在Java平臺上釋出的應用程式、applet 和元件的開發環境。其中包括了Java編譯器、JRE、大量的Java工具、Java基礎API裡面的Java類庫和Java的語言規範。
    Sun公司在1998年發表JDK1.2版本的時候, 使用了新名稱Java 2 Platform,即“Java2平臺”,修改後的JDK稱為Java 2 Platform Software Develping Kit,即J2SDK。並分為標準版(Standard Edition,J2SE), 企業版(Enterprise Edition,J2EE),微型版(MicroEdition,J2ME)。Java2平臺包括標準版(J2SE)、企業版(J2EE)和微縮版(J2ME)三個版本。[1]

  3. Android JRE(Java Runtime Environment )指的是java執行環境。
    JRE是執行JAVA程式所必須的環境的集合,包含JVM標準實現及Java核心類庫。JDK的工具也是Java程式,所以也需要JRE才能執行。為了保持JDK的獨立性和完整性,在JDK的安裝過程中,JRE也是安裝的一部分。所以,在JDK的安裝目錄下有一個名為jre的目錄,用於存放JRE檔案。
    當啟動java應用程式, java [xxx]的時候,java.exe的任務就是在極其上找到合適的JRE來執行[xxx]。

  4. Android Jvm( java virtual machine )指的是java虛擬機器。
    它是整個java實現跨平臺的最核心的部分,所有的java程式會首先被編譯為.class的類檔案,這種類檔案可以在虛擬機器上執行,也就是說class並不直接與機器的作業系統相對應,而是經過虛擬機器間接與作業系統互動,由虛擬機器將程式解釋給本地系統執行。
    java虛擬機器包括一套位元組碼指令集、一組暫存器、一個棧、一個垃圾回收堆和一個儲存方法域。
    當執行一個Java應用程式的時候,就啟動了一個JVM程式,也就是說產生了一個JVM

相關文章