NDK&JNI
文章平均质量分 83
跨平台编译
Martin89
这个作者很懒,什么都没留下…
展开
-
linux常用命令--开发调试篇
Linux常用命令中有一些命令可以在开发或调试过程中起到很好的帮助作用,有些可以帮助了解或优化我们的程序,有些可以帮我们定位疑难问题。本文将简单介绍一下这些命令。本文对以上命令仅介绍其经典使用,这些命令都还有其他一些有帮助的用法,但由于篇幅有限,不在此介绍,更多使用方法可以通过man命令名的方式去了解。......转载 2022-07-31 16:54:00 · 332 阅读 · 0 评论 -
Makefile通配符
%.o" 把我们需要的所有的 ".o" 文件组合成为一个列表,从列表中挨个取出的每一个文件,"%" 表示取出来文件的文件名(不包含后缀),然后找到文件中和 "%"名称相同的 ".c" 文件,然后执行下面的命令,直到列表中的文件全部被取出来为止。说到底,Makefile的东西就是这样一点,好像我的这篇文档也该结束了。我们去执行这个命令的时候会出现错误,提示我们没有 "*.c" 文件,实例中我们相要表示的是当前目录下所有的 ".c" 文件,但是我们在使用的时候并没有展开,而是直接识别成了一个文件。...转载 2022-08-13 17:47:35 · 777 阅读 · 0 评论 -
JNI 原理与静态、动态注册
除了性能的之外,最主要的原因就是在Java诞生之前,就有很多程序和库都是由Native语言写的,因此,重复利用这些Native语言编写的库是十分必要的,况且Native语言编写的库具有更好的性能。其中JNIEnv指代的是当前java环境,可以利用JNIEnv可以操作java层代码;在JNI_OnLoad函数的结尾处,我们一定要有返回值,而且必须是JNI_VERSION_1_4或JNI_VERSION_1_6,也就是JNI的版本号,我们一定要返回正确的版本号,否则系统也是无法加载的。.........转载 2022-07-30 09:40:13 · 437 阅读 · 0 评论 -
JNI 数据类型与 Java 数据类型的映射关系
在JNI中将基本数据类型与引用类型定义在一个联合类型中,表示用jvalue定义的变量,可以存储任意JNI类型的数据,后面会介绍jvalue在JNI编程当中的应用。从头文件函数的原型可以得知,test方法中形参的数据类型自动转换成了JNI中相应的数据类型,不难理解,在调用Javanative方法将实参传递给C/C++函数的时候,会自动将java形参的数据类型自动转换成C/C++相应的数据类型,所以我们在写JNI程序的时候,必须要明白它们之间数据类型的对应关系。...转载 2022-07-24 22:23:16 · 382 阅读 · 0 评论 -
Android NDK编程(七)--- JNI中List结构的类数据返回
上一篇文章我们介绍了《AndroidNDK编程(六)---JNI中类参数的传递与返回》学会了使用类的返回,在做开发中,往往我们返回的参数带有List的数据,所以我们今天这一章来说一下List的数据返回方法。我们在JAVA中生成LIst的方式就是先实例化一这个ArrayList,然后在把当前面定义好后,通过List的add的方法增加。原文链接https//blog.csdn.net/Vaccae/article/details/111596282。.........转载 2022-07-24 22:10:50 · 957 阅读 · 0 评论 -
protobuf使用(一)android ndk 编译 protobuf-3.6.x windows
注意】每个版本可能需要编译的源文件不同,要编译的源码在src目录下的Makefile.am文件。比如你要编译protobuf-lite,在Makefile.am文件中搜索libprotobuf_lite_la_SOURCES,将对应的代码直接拷贝到LOCAL_SRC_FILES=即可。ProtoBufprotobuf-3.6.x下载链接https//github.com/protocolbuffers/protobuf/tree/3.6.x。...转载 2022-07-27 14:10:27 · 727 阅读 · 0 评论 -
使用clang编译openssl1.1.1d
使用clang编译openssl1.1.1dopenssl下载地址ndk要使用r19以上ndk各个 版本的下载地址使用clang编译 要设置ANDROID_API>=21,配置ndk的路径,如果需要编译其他平台的,只需要修改architecture的值#!转载 2022-08-09 14:10:29 · 390 阅读 · 0 评论 -
JNI/NDK 调试工具 LLDB, CMake
今天不是来讲lldb ,因为用的是android studio 3.0,只能用CMake 才能调试(3.0 以下可以配合 ,不过也要有改动,这里不再细说),所以需要把原来的 Android.mk 转成CMake,前提,自己去下载 lldb,cmake,ndk,这个在sdk 管理中,见下图:这里主要讲一下,怎么手机编写CMakeList.txt只要在Android中有使用过jni的应该都了解我们要编译写的c/c++文件都需要配置编译用的配置文件,在eclipse中要写mk文件;在Android Studio中转载 2022-07-30 10:50:20 · 345 阅读 · 0 评论 -
Android Studio build.gradle 中配置 cmake,及各 arguments 详解
原文链接:https://blog.csdn.net/afei__/article/details/81271594一、简介 在 Android Studio 2.2 以上的版本,推荐使用 CMake 来编译工程里的 C/C++ 代码(包括 JNI 部分)。 一般来言,我们只需要关注和编写 CMakeLists.txt 即可,至于 CMake 如何编译,以及使用的什么样的配置选项是不怎么关心的(会有一系列默认的配置)。不过,如果你需要更改或者定制化一些编译的选项,你就需要了解一下如果在 gra转载 2022-07-31 11:08:32 · 1539 阅读 · 0 评论 -
Android.mk语法详解
解析CLEAR_VARS变量是构建系统提供,同时指向一个特殊的GNUMakefile,主要是用来清除如LOCAL_XXX所定义的变量(e.g.LOCAL_MODULE,LOCAL_SRC_FILES,LOCAL_STATIC_LIBRARIES,etc...)、以及LOCAL_PATH环境中的异常(CLEAR_VARS可简单理解为初始化环境)。声明的module的名称必须在该工程内是唯一的,该名称不可以包含任何的空格,同时需要声明在任何的$(BUILD_XXXX)变量前。............转载 2022-07-24 22:05:41 · 334 阅读 · 0 评论 -
android.mk中添加目录中所有cpp
通过wildcard可以进行文件遍历,如果是单目录结构,通过这个同样可以达到非常简洁的效果。加强版本(遍历所有文件,但是忽略某一个目录的文件),通过-prune可以指定忽略 "LogicLayer"这个目录。android开发中,经常遇到需要在andoid.mk文件中包含特定的cpp文件(或c文件)使用这个方法可以遍历子目录所有.cpp文件,替换find的参数可以实现遍历和过滤任意文件。另附一个更加简单的宏,可以实现遍历一个目录下的所有文件(但是不会递归调用)# 从所有文件中提取出所有.cpp文件。转载 2022-09-08 10:40:32 · 510 阅读 · 0 评论 -
VC开发JNI环境搭建
2.1、安装cmake模块并配置VisualStudioJNI开发环境此处并不是必须的步骤,你也可以自己去配置普通的VS项目,但是使用cmakeProject更方便些,所以这里推荐先安装cmake模块(工具——>获取工具和功能),然后在CMakeList里引入jni头文件HelloC的CMake项目,包括源和定义#此处特定于项目的逻辑。##将源添加到此项目的可执行文件,编译打包后默认生成的是可执行的文件。...转载 2022-07-30 12:09:19 · 1109 阅读 · 0 评论 -
Android Studio 配置一键生成 JNI 头文件工具
https://blog.csdn.net/afei__/article/details/87998625转载 2022-07-31 11:38:48 · 452 阅读 · 0 评论