android 开发浅谈(JDK && NDK)

一、软件开发(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运行原理

android 开发浅谈(JDK && NDK)_第1张图片android 开发浅谈(JDK && NDK)_第2张图片


android 开发浅谈(JDK && NDK)_第3张图片


       1.Android SDK(Software Develop Kit) 指的是Android专属的软件开发工具包。

      SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
     JAVA开发也有自己的Java SDK。Android SDKzip压缩包的格式下载(如第三章描述的一样)。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。


你可能感兴趣的:(android 开发浅谈(JDK && NDK))