继承 #include <iostream> //代码的重用性 using namespace std; //人类 class Human { public: void say() { cout << "说话" <<
类大小 //类的大小 class A { public: int i; int j; int k; static int m; }; class B { public: int i; int j; int k; void print
构造函数属性初始化 //构造函数的属性初始化列表 class Teacher { private: char* name; public: Teacher(char* name) { this->name = name; cout <&l
函数 函数默认参数 //函数默认参数 void print(int x, int y = 6, int z = 8) { cout << x << endl; } //重载 void print(int x, bool ret) { cout <&l
C与C++的关系 1.C++可以与C代码进行混编 2.C++面向对象编程语言、C面向过程的编程 3.C++对C的一个增强 命名空间 #include <stdlib.h> #include <iostream> //标准命名空间(包含很多标准的定义) using na
GetStringUTFChars注意事项 jboolean isCopy = NULL //函数内部复制,isCopy为JNI_TURE,没有复制为JNI_FALSE,不是外部参数所能控制的 char *c_str = (*env)->GetStringUTFChars(env, jstr,
文件加解密 public class Cryptor { public native static void crypt(String normal_path, String crypt_path); public native static void decrypt(Strin
Eclipse NDK开发流程 1.编写Java层Native方法 2.javah命令生成头文件 3.创建jni目录 4.添加本地支持Android Tools -> Add Native Support 5.实现头文件中定义的函数 6.编译生成.so动态库 7.加载动态库 Eclips
异常处理 1.保证Java代码可以运行 2.补救措施保证C代码继续运行 //JNI自己抛出的异常,在Java层可以被捕捉(需注意是Exception、Throwable或者Error),也可在C层清空 //用户通过ThrowNew抛出的异常,可以在Java层捕捉 JNIEXPORT void
JNI数组处理 传入数组 public class JniTest { public native void giveArray(int[] arr); public static void main(String[] args) { JniTest t = ne
JNI数据类型 jclass和jobject //每个native函数,都至少有两个参数(JNIEnv*, jclass或者jobject) //1)当native方法为静态方法时: //jclass 代表native方法所属类的class对象(JniTest.class) //2)当native方
JNI JNI(Java Native Interface) Java调用C/C++,C/C++调用Java的一套API 1.编写native方法 2.javah命令,生成.h头文件,生成的C/C++的函数声明名称:Java_完整类名_函数名 3.复制.h头文件到C/C++工程中 4.复制jni
include指令 #include <stdlib.h> #include <stdio.h> //预编译(预处理),为编译做准备工作,完成代码文本的替换工作 //C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
文件IO #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <stdio.h> #include <string.h> //读取文本文件 void main() { char *pa
typedef 类型取别名 //typedef 类型取别名 //1.不同名称代表在干不同的事情typedef int jint; //2.不同情况下,使用不同的别名 /* #if defined(__cplusplus) typedef _JNIEnv JNIEnv; typedef _Java