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 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

你可能感兴趣的:(Andriod安卓技术)