標題: Android logs 分析 :機智云SDK Logs 分析教程 [打印本頁]
作者: gizwits 時間: 2021-7-13 12:33
標題: Android logs 分析 :機智云SDK Logs 分析教程
一,概述
機智云的SDK日志中包含了大量的信息,極大的方便開發(fā)者定位問題,但很多開發(fā)者都看不懂這些日志,因此該份教程講述如何從SDK的日志中找到自己需要的信息以及定位問題。
該份文檔的閱讀前提是開發(fā)者已經(jīng)具備獲取Android日志的條件和能力,并且已經(jīng)熟悉機智云SDK相關使用方法。如不具備這些前提,請先參考網(wǎng)絡上的相關資料。
二,設置SDK級別
要查看SDK的日志,首先需要調(diào)用SDK設置日志級別的方法,將其設為所有級別,以及設置在后臺輸出二進制數(shù)據(jù)。
調(diào)用方法:
XPGWifiSDK.setLogLevel(XPGWifiLogLevel logLevel, String logFile, boolean bPrintDataInDebug);
參數(shù)說明:
三,過濾日志
SDK的日志主要有兩個“TAG”,一個是“xpgc”,一個是“XPGWifiSDK”。一般情況下,LogCat的Log Tag 設置為“xpg”即可。
如圖:
“xpgc”代表該日志屬于SDK底層邏輯所打印的日志。
“XPGWifiSDK”代表該日志屬于SDK外部公共接口所打印的日志。
如圖:

四,日志分析
SDK在執(zhí)行每一步操作的時候,都會打印出相關信息,具體信息課參考如下說明:
云端請求
SDK里包含的大量的云端交互操作,其中與云端交互部分,會以“W”(警告)級別打印,在Eclipse的Log Cat中會以橘黃色來標記。如下圖:
該日志包含了請求的相關信息,如請求的Header以及Body。
其中Header包含了AppID以及Token等比較重要的信息,App發(fā)布的時候請注意關閉日志輸出。
SDK內(nèi)部使用的網(wǎng)絡接口都是使用機智云OpenAPI的相關接口,接口的詳情可參考官網(wǎng)的文檔。
根據(jù)該日志,可以看出發(fā)出自己的接口調(diào)用是否正確,例如缺少token或者缺少AppID等;同時也可以判斷自己的網(wǎng)絡質(zhì)量,是否發(fā)起請求以后長時間未收到云端回復。
一些常見的問題分析會在該文檔后面再詳細描述。
云端響應
SDK發(fā)起請求后,在網(wǎng)絡正常的情況下,SDK會收到云端的響應,響應結果也會打印在日志中。如圖:
具體的reponse會以“W”級別標出。上圖是獲取賬號下綁定的設備的請求響應。一般情況下,開發(fā)者無需理會具體的網(wǎng)絡請求和響應,SDK會自行處理并作出回調(diào)。只有在網(wǎng)絡情況不好的情況下,開發(fā)者才需要從日志中分析網(wǎng)絡請求是否正常。
發(fā)現(xiàn)設備
SDK發(fā)現(xiàn)本地設備的過程實際上是UDP的收發(fā)過程。SDK會往路由器發(fā)送一個UDP廣播,燒寫了機智云模塊的設備在收到改廣播后,會回復一個響應幀到SDK端。具體的過程可由下圖看出來:
“xpgBroadcast(),port = 12414”該日志說明SDK向路由器的12414端口發(fā)送了一個UDP廣播,具體的指令內(nèi)容可參考協(xié)議文檔。如果發(fā)送成功,SDK會打印“udp package send success”。
當設備收到了指定的UDP廣播以后,會回復相關響應幀,該響應幀包含了設備的Productkey、Did、IP地址、MAC地址等信息。具體的指令內(nèi)容可參考協(xié)議文檔。
SDK收到設備的回復以后,會回調(diào)didDiscoverd接口。
從該日志可以看出SDK發(fā)出廣播后,是否有設備回復。如果沒有收到回復,說明有幾點原因:
本地沒有設備
路由器不支持UDP廣播
可根據(jù)實際情況定位問題和解決問題。
小循環(huán)登錄設備
小循環(huán)登錄即是手機與設備在同一路由器內(nèi),通過設備IP建立TCP連接。登錄的過程如下圖:
由圖中的“Connected to server 192.168.1.102:12416”可以看出SDK發(fā)起的是小循環(huán)登錄,連接的是設備的IP地址,端口號為12416。
登錄成功后,SDK內(nèi)部會打印“OnLogin(int): 0”,返回值0說明登錄成功了,會回調(diào)“didLogin”接口通知UI進行處理。
通過該日志,可以判斷設備是進行大循環(huán)還是小循環(huán)連接,并且可以看出連接成功或者失敗,以及失敗的原因。具體失敗的原因會在本文檔后面進一步描述。
大循環(huán)登錄設備
大循環(huán)登錄即是手機與設備不在同一路由器(網(wǎng)段)內(nèi),通過機智云云端建立MQTT連接。登錄的過程如下圖:
由圖中的“Connected to server m2m.gizwits.com:1883”可以看出SDK發(fā)起的是大循環(huán)登錄,連接的是機智云云端域名地址,端口號為1883。
登錄成功后,SDK內(nèi)部會打印“OnLogin(int): 0”,返回值0說明登錄成功了,會回調(diào)“didLogin”接口通知UI進行處理。
通過該日志,可以判斷設備是進行大循環(huán)還是小循環(huán)連接,并且可以看出連接成功或者失敗,以及失敗的原因。具體失敗的原因會在本文檔后面進一步描述。
小循環(huán)收發(fā)指令
小循環(huán)發(fā)送指令通過TCP/IP進行收發(fā)。開發(fā)者調(diào)用SDK方法,傳入JSON格式的指令,由SDK內(nèi)部解析成為二進制指令,并發(fā)送給設備。設備收到后做出狀態(tài)改變,按照機智云串口協(xié)議要求,把自己的狀態(tài)用二進制指令返回,SDK收到后再封裝為JSON格式,回調(diào)給相關接口。詳見下圖:
其中“writePi()”說明是通過IP的方式發(fā)送的指令,也即是小循環(huán)發(fā)送。
通過該日志,可以看出二進制指令是否按照協(xié)議文檔收發(fā),是否能正常解析為JSON格式,解析的JSON格式是否正確。具體的分析過程會在本文檔后面進一步描述。
收發(fā)指令詳解
SDK收發(fā)指令的過程,均在SDK中打印顯示,App的調(diào)試,也可以從日志中獲得大量很有用的信息。一個收發(fā)指令的過程如下圖:

一次指令的收發(fā),具體經(jīng)過了以下幾個步驟:
1.調(diào)用SDK的“write()”方法發(fā)送JSON指令
如上圖日志中的JSON指令,包含了“fan_speed”這個數(shù)據(jù)點。通過該日志,可以看出發(fā)送的JSON格式是否正確,數(shù)據(jù)點是否正確,數(shù)據(jù)點的key跟value是不是目標數(shù)據(jù)。
2.SDK把JSON指令解析為原始業(yè)務指令
“writeP0()”代表了SDK把JSON格式的指令解析為二進制指令,下面會打印出字節(jié)格式的指令。
3.SDK把二進制指令小循環(huán)發(fā)往設備或大循環(huán)發(fā)往云端
“writePm()”代表了SDK加入了機智云協(xié)議的包頭后把指令發(fā)往云端。
如果是“writePi()”,則說明是小循環(huán)發(fā)送指令。
通過該日志,可以看出當前發(fā)送的指令屬于大循環(huán)還是屬于小循環(huán)。
4.SDK接收到本地或云端的二進制指令
“readPm()”代表了SDK接收到了云端返回的二進制指令,如果是”readPi()”,則說明SDK接收到了本地設備返回的二進制指令。
通過該日志,可以看出當前接收的指令屬于大循環(huán)還是屬于小循環(huán)。
5.SDK把二進制指令去除包頭后變?yōu)樵紭I(yè)務指令
如果SDK接收到了云端的指令,會去除機智云協(xié)議的包頭,保留原始的字節(jié)業(yè)務指令并打印在控制臺中。
6.SDK把原始業(yè)務指令封裝為JSON格式
SDK獲取到二進制指令后會根據(jù)自動加載的配置文件解析為JSON格式指令。如上圖的“receive data”中打印出的JSON指令。通過該日志,可以看出解析是否正常以及具體每個數(shù)據(jù)點的key和value。
7.SDK把JSON格式指令通過接口回調(diào)給UI層
SDK解析結束后會通過回調(diào)接口把數(shù)據(jù)回調(diào)到UI層,TAG為“XPGWiFiSDK”,接口名一般是”did”開頭,例如圖中的”didReceiveData”。
通過該日志可以看出SDK是否已經(jīng)成功調(diào)用了回調(diào)接口,以及調(diào)用的回調(diào)接口具體的接口名。
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
黄色1级视频
|
久草新视频
|
国产成人在线视频
|
亚洲在线中文字幕
|
久久亚洲免费视频
|
在线精品一区
|
在线观看黄网
|
国产成人在线视频
|
精品欧美日韩
|
国产福利在线视频
|
亚洲一区二区免费
|
黄色大片免费在线观看
|
久久久久久久成人
|
日韩中文字幕第一页
|
免费一级a毛片
|
成人性色生活片
|
国产精品国产成人国产三级
|
四虎影院在线免费观看
|
69精品人人人人
|
日本一级大毛片a一
|
a免费视频|
在线播放亚洲
|
极品av在线
|
麻豆精品一区二区
|
拍床戏真做h文黄肉1v1
|
成年人黄色片
|
福利视频网址
|
精品一区视频
|
中文字幕在线观看一区
|
日韩免费在线
|
亚洲精品久久久久久久久久久
|
日韩免费视频
|
日本一级片在线观看
|
久久理论片
|
久操视频在线
|
久久在线免费观看
|
成人免费看片'
|
欧美成人猛片aaaaaaa
|
亚洲午夜天堂
|
欧美色图在线视频
|
精品一二区
|