- 博客(24)
- 资源 (9)
- 收藏
- 关注
原创 【USB读写速率 android USB HID通信】成功的实现了每125微妙接收到一包数据,每秒8000包数据(256字节一包)
Android实现读取USB数据,每秒读取8000包的功能
2022-06-18 13:54:23
4226
3
原创 c++ map的增删改查
仅仅记录在开发过程中对MAP的使用;包括修改、添加、删除、遍历;二、给map集合添加数据1.方式一代码如下:2.方式二代码如下:二、给map集合修改数据1.方式一代码如下:二、给map集合遍历数据1.方式一代码如下:2.方式二代码如下:3.方式三代码如下:...
2022-06-17 18:10:04
1810
原创 基于Android的C++线程池、线程的使用
由于项目的需要,把原本应该放在JAVA层进行读取和解析USB数据的逻辑放在了JNI层;这就意味着,要在native层进行高并发操作;这时就需要涉及到线程和线程池的操作了;本文主要记录线程和线程池的创建与封装;`线程是操作系统能够进行运算调度的最小单位,被包含在进程中,是进程中实际运作、被系统独立调度和分派的基本单位;一个标准的线程由线程ID、当前指令的指针、寄存器集合和堆栈组成。一个线程可以创建和撤销另一个线程,同一个进程中多个线程可以并发进行。下面就线程库pthread.h说起;理论网上有很多,这里就
2022-06-17 17:28:19
867
原创 使用JsonCpp在android NDK中解析Json
`json文件是比较轻量级的文件,格式简单,使用方便。用来存放信息相比其他方式有自己得天独厚的优势。今天给大家分享的是如何利用C++来操作json文件。如果你知道如何使用jsoncpp类库,可以不用看附,如果第一次使用,请先到最后,将环境配置好,再进行操作。JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次
2022-06-07 20:55:34
1565
原创 NDK进程间通讯
Linux下的进程间通讯的一种方式——管道通讯。管道通讯可以视作两个进程之间有一个管道相连接,通过这个管道来进行进程间的数据交换。首先创建管道,然后要传输数据的一方向管道中写入要传输的数据,然后接收方从管道中将数据取走,这样一来就完成了两个进程间的通讯。int pipe(int fileds[2])创建管道:fileds[2](文件描述符数组):创建管道时传入的用于管道IO的文件描述符。fileds[0]:通过管道接收数据时的文件描述符,即管道的出口fileds[1]:通过管道发送数据时的文件描述符,即管道
2022-06-07 20:16:43
280
原创 使用CMake引入jsoncpp
在jni的cpp中使用json,百度了一下,大多都是下面这个库,但是和之前的文档有点出入了,记录一下。jsoncpp库地址:https://github.com/open-source-parsers/jsoncpp添加jsoncpp库1、在cpp目录下创建一个jsoncpp目录2、下载jsoncpp项目3.把src\lib_json文件夹下的文件都拉到项目的cpp/jsoncpp文件夹下(除CMakeLists.txt)4.再把include\json文件夹下的文件都拉到项目的cpp/jsoncp
2022-06-07 20:06:30
2342
1
原创 【C语言】线程二
基于Linux API的多线程文章目录基于Linux API的多线程前言一、操作系统1.多线程相关与线程之间同步技术1.1.linux下的线程创建、等待、获取线程id1.2.互斥体1.3.信号量1.3.条件变量1.4.读写/自旋锁2.熟悉守护进程的创建、原理3.了解计划作业crontab4.熟悉进程、线程状态查看命令(top、strace、pstack)5.熟悉内存状态查看命令memstat、free6.熟悉IO状态查看命令iostat、df、du7.了解linux文件的权限、用户、时间(ctime、m
2022-05-19 10:50:08
130
原创 【C语言】线程原理及实现
文章目录前言一、原理图二、线程1.线程标识2.线程创建3.修改线程属性4.线程与进程4.线程分离5.线程退出总结前言提示:这里可以添加本文要记录的大概内容:什么是线程?我们首先要知道的一件事情是一个进程里面可以包括多个线程,不能反过来,我们之前了解到的不同进程可以做不一样的事情,我们举一个简单易懂的例子:我们的电脑上面有很多的应用程序,微信、QQ,酷狗音乐等等,我们运行一个应用程序就有一个进程,那什么是线程呢?比如其中一个,我们打开了酷狗音乐,打开音乐听着,这时候你觉得歌好听你就去看评论,这时候你想
2022-05-19 10:22:07
4271
1
原创 C语言pthread.h运用
线程概念什么是多线程,提出这个问题的时候,我还是很老实的拿出操作系统的书,按着上面的话敲下“为了减少进程切换和创建开销,提高执行效率和节省资源,我们引入了线程的概念,与进程相比较,线程是CPU调度的一个基本单位。”当 Linux 最初开发时,在内核中并不能真正支持线程。那为什么要使用多线程?使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线
2022-05-18 20:00:46
8244
1
原创 【C语言】文件的读写、复制
C语言文件的读写与加密、解密文章目录C语言文件的读写与加密、解密前言一、文件的读二、文件的写1.导入头文件2.打开文件路径3.写入文件4.完整实现三、文件的复制1.导入头文件2.打开文件3.读取文件并写入4.复制的完整实现四、获取文件的大小1.导入头文件2.代码实现五、文件的加密1.导入头文件2.代码实现六、文件的解密1.导入头文件2.代码实现七、文件使用密钥的方式进行加密1.导入头文件2.代码实现八、文件使用密钥的方式进行解密1.导入头文件2.代码实现前言本文主要记录在C语言开发过程中关于文件操作
2022-05-14 15:38:25
380
原创 Android下的多线程下Handler的使用
在Android下面也有多线程的概念,在C/C++中,子线程可以是一个函数,一般都是一个带有循环的函数,来处理某些数据,优先线程只是一个复杂的运算过程,所以可能不需要while循环,运算完成,函数结束,线程就销毁。对于那些需要控制的线程,一般我们都是和互斥锁相互关联,从而来控制线程的进度,一般我们创建子线程,一种线程是很常见的,那就是带有消息循环的线程。消息循环是一个很有用的线程方式,曾经自己用C在Linux下面实现一个消息循环的机制,往消息队列里添加数据,然后异步的等待消息的返回。当消息队列为空的时候就
2022-04-28 11:47:15
2374
1
原创 Android通过Handler传递byte[]
方法一:把byte[]放在Bundle对象中;byte[] buff={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};Bundle bundle=new Bundle();bundle.putByteArray("bytes",buff);Message mag=new Message();msg.what=0;msg.obj=bundle;Bundle b=(Bundle)msg.obj;byte[] c=bundle.getByteArra
2022-04-28 11:15:43
1348
原创 android向byte插入字节
public static byte[] sendSocketData(byte[] buff){ int len=buff.length; byte [] sendData=new byte[len+12]; byte phb1=(byte)0xBF; byte phb2=(byte)0xBF; byte phb3=(byte)0xBF; byte phb4=(byte)0xBF; by..
2022-04-28 10:34:37
1223
原创 Android拼接Byte数组
/** * * * @param byte_1 Sou1原数组1 * @param byte_2 Sou2原数组2 * @param size 长度 * @return bytestr 返回一个新的数组,包括了原数组1和原数组2 */ public static byte[] subPackage(byte[] byte_1, byte[] byte_2, int size) { // java 合并两个b.
2022-04-28 10:32:15
2236
原创 Android强行关闭指定进程
public static void closeProcess(Context context,String namePro){ try{ //1.拿到进程的报名 String name = namePro.trim() ; //判断内容 Log.e("zpx","开始关闭"+name); //调用系统服务api杀死进程 //此种方式不能自杀,也..
2022-04-28 10:28:40
986
原创 Android Handler与Looper
本文分析下Android的消息处理机制,主要是针对Handler、Looper、MessageQueue组成的异步消息处理模型,先主观想一下这个模型需要的材料:消息队列:通过Handler发送的消息并是即刻执行的,因此需要一个队列来维护工作线程:需要一个线程不断摘取消息,并执行回调,这种线程就是Looper线程互斥机制,会有不同的线程向同一个消息队列插入消息,这个时候就需要同步机制进行保证空消息队列时候的同步机制,生产者消费者模型上面的三个部分可以简单的归结为如下图:APP端UI线程都是Loope
2022-04-28 10:24:18
294
原创 基于JAVA的USB-HID设备通信设计与实现
摘要:针对Java语言本身没有指针的类型,使用Java语言调用API与USB—HID设备通信显得尤为困难的问题,介绍了如何使用JNative框架实现在windows平台下访问USB—HID设备,使java开发人员可以直接调用API完成程序与设备的通信。关键词:Java;USB—HID;JNative0 引言Java调用DLL的常用方法大致为几种,JNI,JNA,JNArI’IVE等,但实现与易用性差距还是很大…。JNI使用最繁琐,先要编写带有native声明的方法的Java类,使用javac命令编
2022-04-21 14:46:21
4114
1
原创 【USB】Android实现读写USB串口数据
最近在研究USB方面的内容;先后做了关于Android读写HID、串口设备的DEMO。本文比较简单,主要介绍的是Android实现读取串口数据的功能废话不多说,先看一下业务层是如何调用的;如图:首先,监听USB连接状况,当USB 进行请求USB权限,当USB权限申请成功,进行调用打开Usb设备的方法;当监听到USB断开,进行关闭连接;这是向串口写入数据的方法;本DEMO主要使用Handle进行数据各个线程之间的数据传到,以及USB连接读写情况的反馈;下面直接上代码:连接USB设备的代码 p
2022-04-20 22:50:49
11891
15
原创 [usb专题]别让 USB 传输速度影响 Android 开发效率
别让 USB 传输速度影响 Android 开发效率概览迭代速度是构建高质量 Android 应用的关键要素。处理的速度越快,应用程序的体验就越顺畅。这篇文章将和大家聊聊如何优化部署时间。部署在 Android Studio 3.5 版本中,我们在多个方面改进了迭代速度。开发者可以使用 Apply Changes: 根据代码结构,它可以替换更改的代码,并且重启当前 Activity; 如果代码和 Activity 生命周期无关,则会调用 “Apply Code Changes” 来仅替换代码而不会
2022-04-20 22:05:42
429
原创 Java中bytebuffer和string的转换记录
Java中bytebuffer和string的转换记录byte[] bytes = k.getBytes( StandardCharsets.UTF_8 );String v = new String( bytes, StandardCharsets.UTF_8 );String s = StandardCharsets.UTF_8.decode(byteBuffer).toString();
2022-04-14 16:34:46
2724
zhousong-FFmpegAndroid-master.zip
2020-08-11
Android商城平台,移动端+服务端 源码.rar
2020-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人