1.基本使用参考:
2.特殊使用
存在继承关系时,使用方法:
@StructClass
public class AVServer_Header {
@StructField(order = 0)
public short u16Headtag = (short) 0xF0F1; ///<0xF0F1
@StructField(order = 1)
public int u32SrcIP; ///
@StructField(order = 2)
public short u16DeviceType; ///
}
@StructClass
public class Local_BrocastSelf extends AVServer_Header{
@StructField(order = 0)
AVServer_Header header;
//public byte[] header = new byte[AVServer_Header.getLength()];
@StructField(order = 1)
public byte[] au8DevID = new byte[MainActivity.DP_DEV_ID_LEN]; ///
@StructField(order = 2)
public short u8DevType; ///
@StructField(order = 3)
public static int getLength(){
return AVServer_Header.getLength() + 57 + 20;
}
}
3.混淆
当要做proguard时添加如下代码避免被处理
-keep @struct.StructClass class * {*;}
-keep,allowobfuscation @interface struct.StructClass
-keepclassmembers class * {
@struct.StructField *;
}
4.可以大端,小端准确转换的javaStruct.jar下载,以及demo参考学习,可以下载以下demo: