Android使用JavaStruct處理結(jié)構(gòu)體

1.基本使用參考:

https://blog.csdn.net/jazzsoldier/article/details/75669757

2.特殊使用

  • 存在繼承關(guān)系時(shí),使用方法:
@StructClass
public class AVServer_Header {

    @StructField(order = 0)
    public short u16Headtag = (short) 0xF0F1;   ///<0xF0F1
    @StructField(order = 1)
    public int u32SrcIP;     ///<源IP地址,小端模式數(shù)據(jù)
    @StructField(order = 2)
    public short  u16DeviceType; ///<源設(shè)備類型
}
@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];      ///<設(shè)備ID
    @StructField(order = 2)
    public  short u8DevType;                        ///<設(shè)備類型 @see eDeviceType
    @StructField(order = 3)
  

    public static int getLength(){
        return AVServer_Header.getLength() + 57 + 20;
    }
}

3.混淆

  • 當(dāng)要做proguard時(shí)添加如下代碼避免被處理
-keep @struct.StructClass class * {*;}
-keep,allowobfuscation @interface struct.StructClass
-keepclassmembers class * {
    @struct.StructField *;
}

4.可以大端,小端準(zhǔn)確轉(zhuǎn)換的javaStruct.jar下載,以及demo參考學(xué)習(xí),可以下載以下demo:

https://download.csdn.net/download/u012587623/11139284

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容