JNI
永远的红姐
不积跬步,不至千里!
展开
-
C语言--指针与数组
指针指针就是地址,地址就是指针,地址是内存单元的编号. 指针变量是存放地址的变量指针的长度int * ipoit;char* arr;printf("%d",sizeof(ipoint)); // 4printf("%d",sizeof(arr)); // 4多级指针定义一级指针指向i的地址int i = 100;int* address1 = &i;二级指针指向address1原创 2016-11-30 23:18:40 · 264 阅读 · 0 评论 -
FFMPEG命令参数
命令解析进入bin目录,输入ffmpeg -help可以查看相关命令参数,如下:Getting help: -h -- print basic options -h long -- print more options -h full -- print all options (including all format and codec specific opt原创 2017-02-08 14:29:04 · 765 阅读 · 0 评论 -
Eclipse编译使用SO步骤
好久没有在Eclipse上通过NDK根据编译使用so,今天写了一个简单的demo就各种报错,下面做个笔记记录在Eclipse使用so的步骤:1.创建工程,添加支持创建工程,添加native支持:add native support,指定对应的so名称!2.编写native关键字代码编写调用native代码,同时加上: static { System.loadLibrary(原创 2017-02-18 20:15:53 · 3113 阅读 · 0 评论 -
RTMP协议推流
RTMP协议Real Time Messaging Protocol(实时消息传送协议协议)是Adobe 公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。RTMP协议是TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息,当RTMP协议通过网络传送数据的时候,消息将会被拆分成更小的数据单元,称为消息快(CHUNK)。RTMP消息结构消息是RTMP协议中最原创 2017-03-01 12:48:31 · 1260 阅读 · 0 评论 -
Linux nginx+rtmp服务器配置
nginx服务器nginx服务器是开源的高性能的http服务器,反向代理服务器,是俄罗斯的大佬开发的,在国内许多公司应用比较多,具体看百科!反向代理服务器:代理服务器接收internet请求,然后改代理服务器将请求转向内部的服务器,内部服务器将处理的结果返回代理服务器,这个代理服务器就为反向代理服务器!rtmp实时消息传输协议(real time messaging protocol),主要应用在原创 2017-02-12 21:53:25 · 4295 阅读 · 0 评论 -
条件变量与互斥锁
互斥锁互斥锁也叫互斥变量,是一把锁,在访问共享资源时,给共享变量加一把锁,其他线程由于没有持有互斥变量的锁将会阻塞直到该线程释放该互斥锁! c通过pthread.h下几个方法来实现互斥锁: pthread_mutex_init:初始化互斥变量 pthread_mutex_lock:给互斥变量加锁 pthread_mutex_unlock:释放互斥变量锁 pth原创 2017-02-13 22:26:49 · 368 阅读 · 0 评论 -
C语言几个常用的函数
有几个函数我是经常用到,但是老师分不清楚具体参数的含义,下面做个记录:memsetextern void *memset(void *buffer, int c, int count);将buffer区域的前count个字节设置成字符cchar *s="Golden Global View";memset(s,'G',6);memcpyextern void *memcpy(void *dest原创 2017-03-02 22:00:28 · 459 阅读 · 0 评论 -
I.P.B与DTS.PTS
I.P.B在音视频解码时,从Avpacket读取数据一帧一帧的数据,这些帧数据都是经过一定的算法进行压缩了的,根据压缩算法的分为I帧,P帧以及B帧。I帧I帧称为关键帧,属于帧内压缩帧,经过解压可以得到一帧完整的数据!压缩到原来的80%!P帧P帧称为前向预测帧,表示与上一帧的差别,需要缓存前面一帧才能得到完整的数据!可压缩到50%左右!B帧B帧称为双向预测帧,表示与上一阵以及下一帧的差别,需要缓冲上,原创 2017-02-15 20:58:57 · 560 阅读 · 0 评论 -
Android视频数据采集,H.264编码
Andriod视频采集在Android端通过摄像头可以采集到视频数据,通过parameters.setPreviewFormat(ImageFormat.NV21)通过adb logcat -s jw可以查看支持的格式,一般是NV21,YV12可以指定视频的格式! 采集完成后的数据buffer就可以传到JNI层,进行格式转换以及编码!NV,YUV格式转换Android端采集完成的数据是NV21原创 2017-02-25 15:26:57 · 2319 阅读 · 0 评论 -
C++中的类
构造函数、析构函数、拷贝构造函数构造函数class Teacher{private: char *name; int age;public: //无参构造函数(写了,就会覆盖默认的无参构造函数) Teacher(){ cout << "无参构造函数" << endl; } //有参构造函数会覆盖默认的构造函数 Teacher原创 2016-12-18 01:04:07 · 286 阅读 · 0 评论 -
C++基础语法
大学学的C++全部忘记完了,现在又得花时间把错过的东西找回来!基础语法命名空间命名空间类似于Java中包,主要防止命名重复!引入头文件#include <stdlib.h>#include <iostream>标准命名空间(包含很多标准的定义)using namespace std;自定义命名空间namespace NSP_A{ int a = 9; struct Teache原创 2016-12-18 00:46:26 · 373 阅读 · 0 评论 -
C语言内存分配
C语言内存分配C语言的内存分配有静态内存以及动态动态,静态内存由系统分配并释放,动态内存由自己申请与释放.静态内存静态内存是由栈空间分配的,由系统自动分配,自动释放(随机释放)main() { int* p; func(&p); printf("%#x",*p);//不确定 printf("%#x",*p);//不确定 printf("%#x",*p);...}原创 2016-11-30 23:28:24 · 476 阅读 · 0 评论 -
C基础回顾
大学学的C现在已经忘得差不多了,最近研究JNI需要用到C方面的知识,所以的重新温习下C的知识C的基本类型 JAVA C byte 1 xxboolean 1 xx(0 false 非0 true)signed xx -128~127unsigned xx 0~255void xx 代表任意类型char原创 2016-11-29 23:05:54 · 239 阅读 · 0 评论 -
结构体与指针
结构体是一种构造数据类型,将不同数据了类型结合起来成为自定义的数据类型struct Man m = {"name",20};// 只能在申明的时候赋值m = {"age",20} XXX几种写法:1.申明结构体的时候预先定义了一个全局变量struct Man{ char* name; int age;} m1,m2={"ch",20};2.匿名结构体(控制结构体变量的个数,相当原创 2016-12-11 00:06:17 · 303 阅读 · 0 评论 -
AS NDK开发配置
AS开发JNI环境搭建1.下载NDK工具 2.配置在local.properties文件中指定NDK路径(转义)ndk.dir=J:\\AndroidNDK\\android-ndk-r10e 在gradle.properties文件中兼容老的NDKandroid.useDeprecatedNdk=true在build.gradle中ndk { // 指定so库的名称原创 2016-12-02 00:40:09 · 875 阅读 · 0 评论 -
JNI 在native方法中打印日志
在AS中的native方法不能debug调试,为了便于开发调试,需要在native 方法中打印log,需要配置以下:1.build.gradle配置// 可以多写ndk{}ndk { ldLibs "log" }2.C文件中引用#include <android/log.h>#define LOG_TAG "nativeprint"#define原创 2016-12-03 12:06:37 · 4148 阅读 · 0 评论 -
JNI JAVA与C的互相调用
Java调用C例子:java端调用c端的add,两个数相加1.java端void test() { int addr = add(100,200); test.setText("add ="+addr); } static { System.loadLibrary("javacallc"); } private native int a原创 2016-12-03 12:02:38 · 408 阅读 · 0 评论 -
JNI C与JAVA互调
函数调用每个native函数,都至少有两个参数(JNIEnv*,jclass或者jobject)1)当native方法为静态方法时:jclass 代表native方法所属类的class对象(JniTest.class)2)当native方法为非静态方法时:jobject 代表native方法所属的对象下面是C与Java互调的例子程序返回一个Java的字符串NewStringUTF//函数实现原创 2016-12-12 23:44:25 · 507 阅读 · 0 评论 -
Eclipse NDK开发配置
为什么用Eclipse1.之前下载了一个Cygwin根据来编译NDK,发现巨慢,特别麻烦,转到AS 2.AS更新到2.2,对NDK的支持也不是,写NDK代码老是报一大堆的错误以及警告,效率不高. 打算用Eclipse来进行NDK学习,下面是Eclipse的NDK配置.Eclipse NDK配置步骤1.旧版本Eclipse没有add native suport选项,需要下载插件com.androi原创 2016-12-15 00:02:19 · 500 阅读 · 0 评论 -
Android LibJpeg图片压缩
Android的图片压缩Android的图片压缩的几种方式:质量压缩,尺寸压缩,采样率压缩,通过NDK调用libjpeg库进行压缩!质量压缩通过设置bitmap options属性,降低图片的质量,但是像素不会减少 public static void compressImageToFile(Bitmap bmp,File file) { // 0-100 100为不压原创 2017-03-25 22:58:44 · 1246 阅读 · 0 评论