android-debugdata-webtool
android-debugdata-webtool copied to clipboard
android debug database SharedPreference FileManager 查看并修改手机数据库、共享参数和文件管理的工具,优化了好多细节功能和代码,部分重写
android_debugdata_webtool
android debug database SharedPreference 查看并修改手机数据库和共享参数的工具,优化了amitshekhar工程的好多细节功能和代码
支持云端远程控制版本:https://github.com/itgowo/RemoteDataControllerForAndroid
http://itgowo.com
QQ:1264957104
Email:[email protected]
这个版本不再更新,遗留了一些bug,请用新版
前辈版本 Github:https://github.com/amitshekhariitbhu/Android-Debug-Database 大家可以去膜拜一下前辈
因为一次使用中发现国外前辈写的服务和接口无法满足我的使用,主要是用的GET请求方式,再编码后url过于长,超出范围就会数据丢失,所以我改成了POST请求的,并且重写了Server逻辑,从Socket拿到流再解析http报文,再到业务处理,同时增加了文件管理功能,相对前辈作品来说这个bug少,功能强,有问题欢迎提问,最好放到issues里,直接问也会回答但是issues也是人气的表现,谢谢各位啦!
懒人模式,1.0.4版只需要一行代码就可以了,compile就会自动延时1.2秒开启,也保留了旧版手动开启,第二次开启会自动关闭第一次服务;
自动识别开发者使用的三方Json库并使用,同时用反射找Json工具类,一如既往不引入第三方,不管你用的是fastjson还是Gson,都能自动使用,目前只支持两个最常用的,优先使用fastjson。
优化与改进
1.增加多线程处理请求
2.手动解析http报文数据,增加HttpRequest类
3.web端get请求改成post请求,满足大数据量需求
4.服务端增加post处理能力,支持大数据量传输
5.增加文件管理功能(接口已完成)
6.更改布局和页面逻辑,数据库和共享参数分开,文件管理功能目前简单实现了目录浏览和文件下载功能
7.增加跨域请求Options处理,解决跨域问题
8.统一规范:返回值Response类,请求Request类,接口规范GET请求为资源请求,options请求为跨域说明,POST请求为数据交互
9.POST请求统一用action表示意向操作
10.本支持库为了尽量少的引用第三方,降低耦合性,由使用者定义json工具
Server:android app(纯java和android原生代码实现http报文解析操作等)
web:JQuery、BootStrap和DataTables框架,资源放到app内部,无需联网也可访问
使用方法
1:可以将webToolLibrary.aar文件放到工程lib库里直接依赖,亦可以下载工程单独把lib放到项目里( compile project(':webtoollibrary'))
2.依赖
buildscript {
repositories {
jcenter()
*****
}
*****
}
maven依赖
<dependency>
<groupId>com.itgowo</groupId>
<artifactId>android-WebDebugTool</artifactId>
<version>1.0.10</version>
<type>pom</type>
</dependency>
Gradle依赖
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'
3.初始化
可以在App启动后任意需要时刻初始化,不手动或手动触发较晚,都会在2秒内自动自动初始化,如果开发者自己手动启动且在application的onCreat()中,自动启动将失效。 ###最简单的是,下面都不配置代码,是会自动启动服务器的。
第一个参数为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) {
//捕捉到的服务器异常
});
4.说明
app启动后日志会打印手机网路地址(请在wifi下测试,模拟器无效),用浏览器打开对应地址就可以正常使用了,如果偶尔数据请求不到刷新页面即可,可能是某个js文件加载失败造成的,demo的屏幕打印了部分日志,方便测试。
API
Database 数据库
getDbList
getTableList
getDataFromDbTable
addDataToDb
deleteDataFromDb
updateDataToDb
query
SharedPreferences 共享参数
getSpList
getDataFromSpFile
addDataToSp
deleteDataFromSp
updateDataToSp
FileManager 文件管理
getFileList
downloadFile
deleteFile
图片示例(web界面功能开发中,样式有待调整)






