Android 下 JNI 开发Day1

Day1

JNI简介-25

01_什么是JNI

1、JNI(Java Native Interface) java本地开发接口

JNI 是一个协议

有了这个协议可以使Java代码和C/C++代码相互调用.

画图理解:

02_为什么用JNI

1、JNI扩展了java 虚拟机的能力, 驱动开发  (wifi-hotspot) 2.3 无线热点共享  

2、Native code效率高,数学运算,实时渲染的游戏上,音视频处理 (极品飞车,opengl,ffmpeg)

3、复用代码 (文件压缩,人脸识别…)

4、特殊的业务场景

03_怎么用JNI

1.C/C++语言

2.掌握java jni流程

3.NDK (native develop kits )  

C语言入门

1、课程目标

课程结束大家能看懂c代码.会读会调用.

安排:

基本数据类型

基本输入输出函数

数组

指针

结构体

枚举

1C语言第一个程序-13

A:第一个C程序

A:安装Dev-c++工具

B:演示编译运行

  C语言代码在window系统编译后生成.exe文件

 Visual C++

C :代码注释

//include 相当于Java中的 import导包;

//.h文件是C语言中的头文件,里面申明很多函数。

//stdio.h: standard input&output 标准的输入输出流

#include <stdio.h>

//导入stdlib.h c语言的标准库。

#include <stdlib.h>

//主程序入口 public static void main(String args[]) {}

main()

{     

      // 输出日志。相当于Java中的 System.out.print("Hello world ! \n")

      printf("Hello world !\n");

      //向 dos命令行执行一个命令:pause

      system("pause");

}

D:演示调用window中的一下软件命令,加深system("pause");的理解

 在控制台演示:

 调用画图工具:mspaint

 调用计算器:calc

 调用服务:services.msc

system("calc");//调出计算器

system("services.msc"); //调出服务列表

E:演示调用Java编译好的.class文件

public class Hello{

public static void main(String []args){

 System.out.println("Hello from java !!!");

}

}  

进入目录下:cd /d D:\JNI\day1\coder

查看目录下有什么:dir

编译命令:javac Hello.java

执行命令:java Hello

 system("java Hello");

 直接运行报错,需要把Hello.class文件添加到classpath环境变量中

 验证:打开doc命令行:java Hello

 Dev-c++工具关闭退出后才起作用。