1. 程式人生 > >ProtocolBuffer在Android端的解析

ProtocolBuffer在Android端的解析

test 選擇 ont eclipse andro number enc mod 問題

開題篇

近期公司在使用Protocol Buffer替代原先的json作為移動端的數據交互格式。雖然服務端和CTO把這項新技術吹的天花亂墜,說什麽體積小,不易被破解亂七八糟的。可是作為Android端人員,我僅僅關心數據怎樣解析的問題。折騰了兩天,終於解析成功,我來分享下我的過程,有什麽更好的建議大家都提提。

生成Java實體類篇

網上找了一大堆的攻略。都是講protocol的下載與編譯,給的鏈接大部分已經不能直接下載。我直接說我怎麽做的。


下載最新的proctoc.exe 鏈接地址https://github.com/google/protobuf/releases“>https://github.com/google/protobuf/releases
裏面有個protoc-3.0.0-alpha-3-win32.zip直接下載。能夠在裏面拿到protoc.exe
配置到環境變量,這個都是老手了。在系統中自己配置下方便於在不論什麽地方使用黑窗體使用就能夠。


拿到server端提供的他定義好的 .proto文件
編譯.proto文件 protoc --java_out=D:/ test.proto Javaout後面的是編譯輸出的路勁地址,第二個參數是須要編譯的proto文件。

編譯成功後直接將生成的Javabean拷貝到Android項目中。

解析工具篇

曾經接項目當中網絡訪問層使用的是xutils框架中的HttpUtils,這個有長處也有缺點,好像是國人自己封裝的,在請求成功的方法中直接將結果強制轉化成了字符串,我這此試驗了非常久使用的是android-async-http 鏈接https://github.com/loopj/android-async-http 直接能夠返回字節流,使用字節流解析。(PS不是懶得自己寫框架,程序猿界那句話:不要反復造輪子。再說項目經理也不能給你時間自己寫一個近乎完美的框架出來)。

這樣解析工具就準備好了。

項目依賴庫篇

依賴庫,由於protocolbuffer是Google提供的,所以使用AndroidStudio非常easy引入最新的依賴庫。直接選中項目 按下F4,選擇Dependencies選項卡,從網絡加入依賴庫,輸入keywordcom.google.protobuf就能夠搜索到最新的protocolbuffer依賴庫。(eclipse 的開發人員在studio引入後直接把studio下載好的jar拖進去就好)

解析篇

解析工具、依賴庫和實體類所有導入到項目中後。就能夠依據服務端提供的接口訪問成功後解析了
非常簡單的解析,我的實體類叫做API。解析就一句話
API api = API.parseFrom(byte[] data)
語文不好。僅僅能說這麽多,有須要我幫助的直接評論就好。

總結

protocolbuffer的長處我就明確體積小不易被破解,其它的感覺沒什麽,作為移動端開發人員,事實上關心的還是假設解析這玩意。

ProtocolBuffer在Android端的解析