![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓中使用JNI编程
文章平均质量分 71
_Ataraxia
这个作者很懒,什么都没留下…
展开
-
GetStringUTFChars和GetStringUTFRegion的使用示例
常用的字符串传递有2种方式 使用例程进行测试示例一 GetStringUTFRegion#include <stdio.h>// demo.cppjstring jni_debug_string(JNIEnv *jenv, jobject thiz, jstring str){ LOGI("[%s]START#1\n", __FUNCTION__); char outputbuf[128]; char inputbuf[128]; int len = jenv-&原创 2021-11-17 10:31:59 · 5657 阅读 · 0 评论 -
GetByteArrayElements和GetByteArrayRegion的使用示例
GetByteArrayElements官方解释为获取数组内容,直到ReleaseByteArrayElements()被调用。言下之意,就是在 ReleaseByteArrayElements 被调用之前 这个数据一直有效。所以必须伴随有 ReleaseByteArrayElements 进行使用,是否会导致指针不被释放。GetByteArrayRegion官方解释为从缓冲区中获取数组的数据。其中 ReleaseByteArrayElements 官方释义拷贝数组到第一个参数,并且释放第原创 2021-11-15 19:20:45 · 8158 阅读 · 0 评论 -
安卓JNI下的静态库和动态库编译及使用
安卓使用原生代码一般都是以编译成动态库的形式直接在Java中应用 当需要构建大型项目的时候,一般希望向上层提供一个动态库,而内部能够引用多个静态库 分模块的形式达到解耦合的目的以实例说明,编译生成静态库后,在动态库中引用静态库,并最终生成一个动态库提供到上层 生成静态库 Android.mk LOCAL_PATH := $(call my-dir)inclu...原创 2018-03-08 14:03:24 · 1968 阅读 · 0 评论 -
ijkplayer项目编译脚本详解及安卓工程测试(eclipse编译)
ijkplayer库官方教程已经给出明确的编译过程以及编译脚本https://github.com/Bilibili/ijkplayer但是因为我是从window中直接下载的整个工程的zip包 拷贝到Linux下进行库的编译 出现一些教程中未提及的问题 主要是软链接的问题和ndk库新版本与github中发布的ijkplayer库更新时使用的ndk版本的部分兼容问题原创 2017-12-15 17:48:24 · 1100 阅读 · 0 评论 -
JNI方法的静态注册和动态注册RegisterNatives
代码结构如下: Android下的Java代码 仍然还是使用了eclipse开发环境 这里在NDKUtils.java文件里定义了所有的本地方法 Linux下的C代码 这里是在Linux系统目录下新建的文件 其中libs/和obj/都是由ndk-build编译后编译器产生 点击查看完整项目代码JniDemo-master// MainActivity.javapublic ...原创 2017-11-25 10:37:57 · 1335 阅读 · 0 评论 -
第一次完成FFmepg的移植,编译ffmpeg4Android
文章使用了 ffmpeg3.1.4 版本的库编译并使用SDL进行播放转载 2017-12-05 22:58:49 · 381 阅读 · 0 评论 -
JNI下使用AndroidBitmap_lockPixels修改位图为黑白照片
这次使用的场景是QQ好友下线后头像变黑白 使用了NDK中提供的位图解析接口 android\bitmap.h库中的三个接口 并且一共也是三个接口 至少到目前为止是三个 关于这个库的接口 点击查看android-ndk-r9d\android\bitmap.h好友下线的效果图如下(图片尺寸900*675,位深度24) android部分代码 public class Ma原创 2017-12-05 11:30:00 · 7007 阅读 · 5 评论 -
android-ndk-r9d\android\bitmap.h
翻译 android-ndk-r9d\platforms\android-19\arch-arm\usr\include\android\bitmap.h 对应的库 android-ndk-r9d\platforms\android-19\arch-arm\usr\lib\libjnigraphics.so android-ndk-r9d\platforms\android-19\arch-翻译 2017-12-04 11:21:40 · 1058 阅读 · 0 评论 -
C语言实现字符串替换函数
#include #include #include #include //字符串替换函数/******************************************************************** * Function: my_strstr() * Description: 在一个字符串中查找一个子串; * Input: ps:转载 2015-12-18 16:47:48 · 3289 阅读 · 0 评论 -
文件读写NDK(或Linux)
使用NDK进行文件读写,有利于保存数据的安全性,项目需要,要文件读写从Java中处理搬到Linux平台,为了方便两个平台的代码维护一致,使用JNI进行重写编写;public class MainActivity extends Activity implements OnClickListener { private String tag = getClass().getSimpleNam原创 2015-12-17 16:05:21 · 1022 阅读 · 0 评论 -
__android_log_vprint可变参数打印日志
想到把JNI下的__android_log_print();函数进行封装,可是这个函数的参数是可变长参数;对于可以变长的参数,我们可以使用以下函数msdn提供的变量和函数进行实现封装可变参数传递的函数;type va_arg( va_list arg_ptr, type );void va_end( va_list arg_ptr );void va_start( va_list ar原创 2015-12-15 17:52:35 · 10927 阅读 · 0 评论 -
使用多个目录生成多个so库
在只生成一个so库的时候可以直接在jni目录下编写,但是需要使用多个so库的时候就需要每个库在对应目录下结构才比较清晰;jni下的目录为:其中:Application.mkLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)APP_PROJECT_PATH := $(call my-dir)/../APP_MODULES原创 2015-11-15 13:07:36 · 3170 阅读 · 1 评论 -
安卓使用JNI输出字符和LOG输出
11sds原创 2014-08-09 11:55:40 · 2630 阅读 · 1 评论 -
C++也来操作线程之JNI线程创建
Jni中使用线程虽然没有Java那么简单,但是有些情况还是需要使用的,当然有原创 2014-09-09 09:58:21 · 3899 阅读 · 0 评论 -
一个初级例子讲述C和CPP在JNI中调用安卓Java代码
写本文来自CSDN博客,转载请联系作者注明出处 http://blog.csdn.net/dreamintheworld原创 2014-09-05 11:25:26 · 2988 阅读 · 1 评论