Protocol buffer是Google出品的一种轻便高效的结构化数据存储格式,可对结构化数据进行序列化,并具有语言无关.平台无关等特点,在通信协议和数据存储等领域已经得到广泛的应用.目前其已经提供 C/C++.Java.Python 等语言的 API. 一.Protocol buffer和XML 在数据通信传输时,一般需要将结构化的数据序列化成流进行传送,接收方再反序列化为原始格式数据进行处理.在Web通信领域,XML应用算是最通用的了.在时间性能上,虽然XML的序列化开销还可以,但是反序…
前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太!多! 由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将讲解为什么Protocol Buffer的性能如此的好: a. 序列化速度 & 反序列化速度快 b. 数据压缩效果好,即序列化后的数据量体积小 阅读本文前请先…
了解Protocol Buffer 首先要知道什么是Protocol Buffer,在编程过程中,当涉及数据交换时,我们往往需要将对象进行序列化然后再传输.常见的序列化的格式有JSON,XML等,这些格式虽然可读性较好,但占用的空间大小并不是最优的.基于此,Google创建了一种名叫Protocol Buffer的序列化格式,它与JSON,XML相比可读性较差,但占用的空间也会更小,在一些对于速度要求比较高的场景中较为常用. Java序列化Protocol Buffer框架-ProtoStuff…
初识 Protocol Buff是谷歌推出的一种序列化协议. 而Java序列化协议也是一种协议. 两者的目的是, 将对象序列化成字节数组, 或者说是二进制数据, 那么他们之间有什么差异呢. proto对象 要使用PB, 我们需要定义一个proto对象, 其支持的数据类型如下: Protobuf定义了一套基本数据类型.几乎都可以映射到C++\Java等语言的基础数据类型. protobuf 数据类型 描述 打包 C++语言映射 bool 布尔类型 1字节 bool double 64位浮点数 N…
今天闲遐时学习了 Protocol Buffer 在网上看到了许多资料,其中不泛精品,想要详细了解的请看文章结尾的友情链接,我这里就做加深印象,快速入门的一个完整的demo,仅此而已. 学完你可以得到什么: 可以使用protoc工具序列化类,反序列化类 基于java语言的对protoc工具的基本使用 基本protoc的基础api使用 首先我们需要下载官方的编译工具, FQ版: 官方文档 不翻版:我的仓库 整体流程:序列化一个实体类,在反序列出来得到结果: 先放出结果来瞅瞅: 可以看到数据压缩了将…
一.从信息的传输说起  上图是一个典型的蓝牙耳机应用场景.手机上的音频信息经过编码以后通过蓝牙协议被蓝牙耳机接收,经过解码以后,蓝牙耳机成功获取手机上的音频信息,然后再转化为振动被人耳识别.这是一个典型的数字通信系统,下面是数字通信系统的一般模型.  信源即需要传输的信息. 信源编码即对信源的编码,目的是为了减少冗余,起到数据压缩的作用,常见的信源编码有Huffman编码.H.264编码等. 信道编码的目的是对抗信道中的噪音和衰减,原理是加入冗余,常见的方法包括CRC校验.卷积码等. 信道即…
一.SBC的原理 SBC是subband codec的缩写,中文叫做次频带编码,也叫子带编码.其基本原理是把信号的频率分为若干子带,然后对每个子带进行编码,并根据每个子带的重要性及特点分配不同的位数(采样深度)来表示数据.例如,在音频编码中,由于人耳对不同频率的敏感度不同,可以在对人耳敏感的子带使用较细的量化(较大的采样深度),对人耳不敏感的子带使用较粗糙的量化(较小的采样深度),从而在不降低主观听觉效果的情况下达到较好的压缩效果.又例如,离散余弦变换(DCT)时一种处理数字信号的方法,广泛应用…
微信硬件平台使用蓝牙作为近场控制的连接件,并拟定了<微信蓝牙外设协议>.这份协议更像一个标准,用于规范微信和蓝牙外设之间的数据交互场景和接口.但从开发者来看,要完全读懂这份协议,恐怕需要熟读很多遍,并且要结合调试才能真正实现微信Airsync通信.笔者对IOT和微信硬件平台的整个框架和技术都比较熟悉了,并且已经在TI的CC254X和Dialog的DA14580上实现了微信Airsync协议通信.现在回过头来,从开发的角度,对微信Airsync协议进行重新解读,以帮助新进入物联网领域的开发者更快…
习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太!多!  由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将详细介绍Protocol Buffer在Android平台 的具体使用 阅读本文前请先阅读:快来看看Google出品的Protocol Buffer,别只会用Json和…
1 平台框架简介 微信蓝牙BLE由三个模块组成,分别是蓝牙设备.微信和第三方服务器,如下图: 蓝牙设备与微信之间的通信是通过蓝牙GATT协议进行. 微信与第三方服器之间的通信是通过网络http 接口进行. 调试流程: 2蓝牙BLE固件调试 2.1 需要的资料和工具 <微信蓝牙外设协议> 微信蓝牙协议调试工具AirSyncDebugger <微信蓝牙计步Profile协议> Nordic nRF51822接入教程芯片源代码v0.2 以上资料都可以在下面网址下载:http://iot.…