首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
NDK
订阅
SuperLearner
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
Android studio项目添加c++文件
如果不想引用so文件,想要直接在AS中实现native方法也是可以的。此时需要在项目中添加cpp文件,且需要做相关的配置,下面详细说明。 要想在AS中编译cpp文件,则需要下载NDK和安装cmake工具,否则无法使用。 按如上点击,找到SDK Tools,就可以看到一系列的工具…
Android JNI介绍(八)- CMakeLists的使用
(ndk-build + android.mk + application.mk的方式也可以编译,但是用的已经不多了),工欲善其事,必先利其器,如果熟悉了CMakeLists的编写,对于JNI开发会有不小的帮助。本文将介绍一些常见的CMakeLists的脚本编写方法。 简单来说…
Android JNI介绍(七)- 引用的管理
在前面的文章中,我们已经了解了JNI的工程结构、调用流程、异常处理等知识,本文将介绍JNI中的引用管理。 局部引用,引用表的持有者是JNIEnv,在函数执行完时会自动释放,但是在函数执行过程中创建过多就会导致内存溢出或引用表溢出。 全局强引用,引用表的持有者是JVM,引用对象不…
Android JNI介绍(六)- 依赖其他库
在前面的文章中,我们已经了解了Java函数和native函数的绑定过程,了解了Java和native的绑定方法,本文将介绍如何让一个库依赖其他库。 首先介绍下动态库和静态库的概念。 在开发过程中,我们常常会用到一些常用的公共函数,我们可以将这些函数编到库中,在编写其他程序的时候…
Android JNI介绍(五)- 函数的注册
在前面的文章中,我们已经了解了JNI基本的代码编写方法和异常处理,但是函数的注册这一块我们还只是按照规则来,比如静态注册时,JNI是怎么按照Java_包名_类名_函数名这个规则来找native函数的?本文将对这一块进行解析。 我们已经了解到,JNI会按照类似Java_包名_类名…
Android JNI介绍(四)- 异常的处理
在上一篇文章中,我们已经了解了如何进行Java和Native的交互,本文将介绍在JNI中如何进行Java异常处理。 JNI也可以进行异常的捕获,我们也来看一下如何在native进行异常的处理。 需要注意的是,这里抛出的是Throwable,也就是说,不仅可以抛出Exceptio…
Android JNI介绍(二)- 第一个JNI工程的详细分析
在上一篇文章中,我们已经介绍了一个JNI工程的大致结构,接下来本文将对这个工程中的一些细节进行介绍。 以上大致就是使用的一个流程,接下来回到工程,对这个默认的工程的一些细节进行解释。 1. extern "C" 这个提示是在运行后点击按钮出现的,也就是说,动态库加载成功了,那只…
Android JNI介绍(一)- 第一个Android JNI工程
在平时的开发过程中,大多数人可能没有JNI方面的需求,因此JNI方面的工程配置、如何开始也都不太了解,而网上对此方面的介绍也比较少。因此,本系列文章将从一个新手的角度开始,介绍JNI编程。 Android NDK 是一套允许您使用 C 和 C++ 等语言,以原生代码实现部分应用…
Android JNI介绍(三)- Java和Native的互相调用
在上一篇文章中,我们已经了解了第一个JNI工程的一些细节,以及对JNI调用进行了一些简单说明。接下来详细介绍下如何在Java和Native代码之间进行互相调用。 这个函数的内容也很简单,创建了一个string对象,然后将其转换为jstring对象并回传。 该函数的功能是根据传入…
Android JNI 中的线程操作
学习一下如何在 Native 代码中使用线程。 Native 中支持的线程标准是 POSIX 线程,它定义了一套创建和操作线程的 API 。 这个头文件中定义了很多和线程相关的函数,这里就暂时使用到了其中部分内容。 __pthread_ptr 为指向 pthread_t 类型变…