android NDK开发
文章平均质量分 85
NDK开发学习
袁震
真知即所以为行,不行不足谓之知
展开
-
Android JNI3--JNI基础
C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。使用命令javah -classpath . -jni com.test.MainActivity 生成头文件com_test_MainActivity.h。Java调用native方法,native方法调用java方法,互调。在native-lib.cpp里面实现changeName()方法。宏函数,宏函数都是大写。创建Student类。原创 2023-08-12 14:21:13 · 583 阅读 · 2 评论 -
Android JNI2--C++基础
对象的声明我们可以写在.h的头文件里,头文件里面只写声明 不写实现 .h头文件如下。拷贝构造函数默认有,我们看不到,一旦我们写了拷贝构造函数,会覆盖它。C++和Java一样 都是面向对象的语言。前面说到过,std是C++自己的命名空间。C++是支持函数重载的,C语言不支持。Student.cpp文件里面写实现。这样就完成了一个Student对象。原创 2023-08-08 20:33:06 · 848 阅读 · 3 评论 -
Android JNI1--C语言基础
在函数局部内,创建的数据,在执行函数的时候会进栈操作,函数执行完毕,会执行弹栈。因此会释放栈内的成员,栈内的数据也称之为栈内成员,这种方式开辟的内存,称为静态开辟,执行完会弹栈。使用malloc函数,可以动态开辟内存,这种方式的空间属于在堆中开辟,函数执行完毕之后,不会释放堆空间,因此我们一定要手动释放free,并把指针指向NULL。悬空指针:指针指向一块内存,如果这块内存稍后被操作系统回收(被释放),但是指针仍然指向这块内存,那么,此时该指针就是“悬空指针”函数不能写在main函数的下面,会报错。原创 2023-08-08 17:29:47 · 474 阅读 · 3 评论