AAC / G711A / PCM 音频格式解析

Android利用AudioTrack录制和播放PCM格式音频:public class PCMTalk { private AudioRecord audioRecord; private int sampleRate; private int channel; ...

2018-03-17 14:59:05

阅读数 2864

评论数 1

JNI编程——Java与c++代码互相调用及数据传递

Java层作为应用层,需要启动一个c++服务,同时需要互相调用及数据交互。Java调用c++,并传递int型参数JNIEXPORT void JNICALL Java_com_lp_lcmedia_LCInterface_initJni(JNIEnv *env, jobject instance,...

2018-01-15 19:06:43

阅读数 1220

评论数 0

gdb调试相关知识

如果是release版本的程序(编译的时候没有加-g选项),程序崩溃后用gdb分析core文件,只能定位到哪个函数挂了,而如果是debug版本,则能定位具体哪一行挂了。

2017-11-04 16:19:33

阅读数 105

评论数 0

jni层调用java层方法遇到的bug

今天试了各种方法,想在jni c++的其他线程调用java层的代码,不管是java的静态方法还是实例的非静态方法都不行。只要app运行是一运行到调用的地方,就奔溃。就只能在native函数的当前线程调用java方法。然后用c代码却可以。这也太奇怪了。不过我项目用的是c++,就只能这样了,把我的c+...

2017-10-26 21:16:18

阅读数 313

评论数 0

Android调用不符合JNI命名规范的so库

现在有一个纯c++风格的arm平台的动态链接库libbytebuffer.so和头文件ByteBuffer.h,接下来我将先将其封装成符合JNI命名规范的so库,这样JNI能直接调用,然后将JNI层的代码制作成jar包,然后再给Android App调用。 这过程中有灰常多的bug,比如我电脑(W...

2017-10-13 16:03:15

阅读数 1407

评论数 1

在JNI c++中使用c11

在上篇文章中我们使用gradle自动生成Android.mk并自动调用ndk-build编译生成JNI so库,但是cpp源文件非常简单,当我们需要用到std::thread等c11特性时,还需要对gradle脚本做些改动。cpp源文件中包含<thread>,编译报错:E:\Share...

2017-09-28 16:39:47

阅读数 542

评论数 0

使用aar库封装c++动态库并在Android app中使用

我们要使用某服务的SDK,但是对方只有纯c++风格的第三方的arm架构的动态库(.so),因此无法直接在java app中直接使用,需要将原始so库封装成符合JNI命名规范的so库(以下简称JNI so库),然后才能通过JNI在java app中使用。我的需求并非直接在Android app中使用...

2017-09-27 20:28:56

阅读数 1730

评论数 0

c++ 如何高效传递对象,避免不必要的复制

今天在看c11的右值引用特性,遇到个毁三观的问题。在我认知中,函数返回变量会经历两次复制过程,如下例子:#include class A { public: A() { std::cout << " constructor" <&...

2017-07-17 17:07:51

阅读数 300

评论数 0

boost::asio的失败尝试

异步服务端写数据没问题,读数据总是失败。网上的异步服务端的例子要么是只有写的,要么是分为两个类的。我这个例子,accept和读写封装在一个类总是失败。 #include #include #include #include #include #include #include #in...

2017-05-11 17:14:12

阅读数 710

评论数 0

作为一个c++而非c程序员,该弃函数指针投函数对象了

本文主要讲了一个例子,通过std/boost::bind/function将c风格的函数指针替换为c++风格的函数对象.

2017-03-31 13:33:10

阅读数 931

评论数 0

std::runtime_error 异常传递失败

最近开始学习使用cpp的异常。有这样一个使用场景,函数A可能会抛出异常,函数B调用函数A,捕获到A抛出的异常后,做一定的处理,再把这个异常往上抛。main函数调用函数B,捕获到B抛出的异常,但内容却是空的。void A() {     throw runtime_error("hello...

2017-02-20 11:21:41

阅读数 3035

评论数 0

招银科技2017 c++ 面试题

程序内存分布,全局变量、静态变量的存储位置 static修饰符作用 static全局变量跟普通全局变量区别,存储方式有何区别 c++设计一个单例模式,多线程环境下如何设计?用线程锁是否会影响性能?有其他方案吗 介绍下c++ socket 模型, 建立tcp连接的步骤。 多线程同...

2017-02-18 21:33:17

阅读数 3803

评论数 2

CentOS下Connector/C++的使用

安装依赖: yum install boost yum install boost-devel yum install boost-doc yum install mysql-devel 下载Connector/C++库: CentOS6 64位 CentOS6 32位 下载解压得到里面...

2017-01-04 16:48:08

阅读数 709

评论数 0

shell下用 %% ## 自定义规则提取字符

Android手机上每个已安装的程序都有对应的安装包即apk文件存在,放在/data/app/下,这也是那些软件备份软件的原理。但是必须要root后才能访问到。 我现在要备份应用,就是要复制这些apk文件到其他地方,比如sdcard。用adb shell登录到手机 adb shell ...

2016-11-28 21:20:48

阅读数 1726

评论数 0

RTP解包

这里讨论的场景为,流媒体服务器推送H264码流,且RTP over tcp。 当服务器返回RTSP play 回应后,会发送  | ‘$’(1byte) | channel number(1byte) | rtp packet size(2byte) | 然后客户端根据size读取随后服务器发送的...

2016-11-02 15:28:28

阅读数 5112

评论数 0

ByteBuffer的初始化及赋值语句

ByteBuffer类没有构造函数,只能通过 ByteBuffer.allocate(int capacity) 或者 warp 构造对象。 如果将一个ByteBuffer 对象a赋值给另一个ByteBuffer 对象b,或者将a作为参数传入函数,都是值引用,可以理解为c++里对象指针,都不涉及内...

2016-11-02 14:48:51

阅读数 3134

评论数 1

Linux下activeMQ与c++客户端的部署与应用

activeMQ作为一个消息中间件,用于p2p或pub/sub模式的消息模型。此时业务上的客户端服务器都是客户端,而activeMQ作为服务器。 1. 怎么使用? 1. 以p2p模式为例,下载安装activeMQ,然后启动,然后运行。 2. 编写客户端1作为消息生产者,发送消...

2016-08-17 23:53:38

阅读数 585

评论数 0

浅谈select与epoll函数

第一篇技术博客,哈哈。这里讲的内容都是很浅的,很多细节没讲到,比如select函数读集数量上限,超时,非堵塞设置等等,自己百度吧~~ 应用场景: 很多个客户端同时访问服务器,服务器需要处理各个客户端消息。 用法: select: 1. 设置读集:将一堆客户端fd通通装入readfds集合 ...

2015-01-31 00:16:32

阅读数 809

评论数 0

准程序员的自我介绍

我现在是杭电大四在校生,目前在滨江某外企做java开发。 我专业是电子信息技术及仪器,其实就是测控技术及仪器。专业上是偏硬件类的,但是这个专业多数人都去做软件了。因为需求摆在那。 大二暑假前的两年简直浪费掉了,游戏也没打,恋爱也没谈,技术也没学。直到大二那个暑假,开始跟着电子设计竞赛的大牛学单...

2015-01-28 00:23:16

阅读数 4372

评论数 2

提示
确定要删除当前文章?
取消 删除
关闭
关闭