前提(可以略過)
舊項目已停止更新,新項目遠程數據控制,修復bug,支持云端控制
android開發中需要對數據庫、共享參數和文件(data目錄非sdcard目錄)進行操作,簡單App配置信息存儲使用共享參數就可以了,對數據量和效率有要求的使用數據庫,例如IM消息,數據量大使用頻繁。
但是,我們開發初期寫的代碼不敢說百分百對,這時候我們要驗證一下數據是否正常寫入(主要針對新手),或者某個功能不對,我們要查看數據是否符合邏輯(前端還是后臺的鍋得分清楚)。
新版優化了不少:
配置庫引用就可以自動開啟服務了,手動初始化服務方式依然保留,自由選擇;
自動開啟服務后,智能識別Json工具,優先使用FastJson,其次是Gson,不給開發者帶來新的庫,也不會引入版本。
超級簡單的引入方法
compile 'com.itgowo:android-WebDebugTool:1.0.10'
debugcompile 'com.itgowo:android-WebDebugTool:1.0.10' //推薦
Android Gradle plugin 3.0或更高
debugApi 'com.itgowo:android-WebDebugTool:1.0.10' //推薦
api 'com.itgowo:android-WebDebugTool:1.0.10'
介紹
說了這么多,我要介紹一個工具,App添加依賴再做簡單初始化就可以使用了,log會打印出手機聯網的wifi地址(模擬器和數據不行,代碼是只獲取了wifi的ip)。
Github歡迎star https://github.com/hnsugar/android-debugdata-webtool
工具是以android App作為服務器端,直接使用Socket監聽獲取數據,并對數據流做http報文解析,數據交互使用POST方式,文件請求使用GET方式,也實現了ajax跨域請求options,web端使用JQuery、BootStrap和DataTables框架,資源放到app內部,無需聯網也可訪問。為了不給使用者引入可能不需要的庫,所以內部json工具并未實現,需要在初始化方法的第四個參數中實現兩個Json文本和對象的轉化,demo中使用的是fastjson庫。
初始化方法
第一個參數為context,第二個參數為端口,第三個參數為線程模式(是否是多線程),第四個為服務器狀態監聽。
public static void initialize(Context context, int mPortNumber, boolean isMultMode, onDebugToolListener mOnDebugToolListener) {
DebugDataTool.initialize(this, 8088, false, new onDebugToolListener() {
@Override
public void onSystemMsg(final String mS) {
//系統信息,主要是一些提示性信息,例如服務器地址
}
@Override
public String onObjectToJson(Object mObject) {
//對象轉換為json文本,本支持庫為了盡量少的因為第三方,降低耦合性,由使用者定義json工具,可以用Gson或者fastjson等,demo使用的是fastjson。
return JSON.toJSONString(mObject);
}
@Override
public <T> T onJsonStringToObject(String mJsonString, Class<T> mClass) {
//文本轉換為Json對象,本支持庫為了盡量少的因為第三方,降低耦合性,由使用者定義json工具,可以用Gson或者fastjson等,demo使用的是fastjson。
return JSON.parseObject(mJsonString, mClass);
}
@Override
public void onGetRequest(String mRequest, final HttpRequest mHttpRequest) {
//服務器收到請求,文件請求只打印請求path,數據接口交互HTTPRequest包含報文全部信息
}
@Override
public void onResponse(final String mResponse) {
//服務器返回給頁面的信息,只有跨域請求Options和POST數據交互時才會觸發,文件下載不觸發。
}
@Override
public void onError(final String mTip, final Throwable mThrowable) {
//捕捉到的服務器異常
});
功能劃分為3部分:
1。數據庫操作(增刪改查,數據庫文件下載,刪除在文件管理那里可以實現)
img1.png
2。共享參數操作(增刪改查,與數據庫基本一致,文件下載,刪除在文件管理那里可以實現)
img2.png
3。文件操作(文件下載,文件刪除,根目錄是App的data目錄)
img3.png
img5.png
依賴
maven依賴
<dependency>
<groupId>com.itgowo</groupId>
<artifactId>android-WebDebugTool</artifactId>
<version>1.0.1</version>
<type>pom</type>
</dependency>
Gradle依賴
compile 'com.itgowo:android-WebDebugTool:1.0.1'
Demo界面(包含日志功能)
img6.png
個人比較懶,相信大家看圖就明白了是做什么的,具體使用方法和接口api什么的請到Github上看,歡迎提建議。