android-debugdata-webtool

Introduction: android debug database SharedPreference FileManager 查看并修改手机数据库、共享参数和文件管理的工具,优化了好多细节功能和代码,部分重写
More: Author   ReportBugs   
Tags:
Android-

android debug database SharedPreference 查看并修改手机数据库和共享参数的工具,优化了 amitshekhar 工程的好多细节功能和代码

支持云端远程控制版本:https://github.com/itgowo/RemoteDataControllerForAndroid

http://itgowo.com

QQ:1264957104

Email:lujianchao@itgowo.com

这个版本不再更新,遗留了一些 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 界面功能开发中,样式有待调整)

 image

 image

 image

 image

 image

 image

 image

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools