在当代物联网行业中,由于隐私和安全问题,很多的公司选择使用自定义的私有二进制协议。
在C语言中,由于有结构体的加持,对象和字节数组转换起来就特别简单;但在java中,在没有原生支持的情况下,开发人员就只能够靠码力去读取并解析数据然后转译成为对象
,流程如下图:
在这看似简单的转译过程中其实会伴随很多人头疼的问题,例如:
- 大小端/网络字节序的处理
- 无符号数/有符号数的处理
- 多字节整数转换处理
- ASCII码与字节之间的转换处理
- 空指针/填充数据的处理
- 数组对象/嵌套对象的处理
所以此项目项目来了,此项目将尽可能的解决上述问题,在MagicByte
中,你可以在类的定义时便通过注解申明好这复杂的序列化流程。
并且序列化也只需要简单的调用两个方法,用于对象转字节的MagicByte.unpack();
和用于字节转对象的MagicByte.pack()
。
这个确实使用挺方便的,哈哈