AndroidToolkit
项目Github地址
在Android开发中,我们经常会碰到需要抓取网络接口日志的场景,虽然已经有了很多抓取接口的工具,但是,还是免不了需要设置网络的一些繁琐步骤,如果能在应用中直接集成一个工具包来实现它并节约时间,那将会提供很多便利。这个工具包目前主要有以下功能:
- 可以帮助你更方便地查看网络接口日志。
- 你可以在列表中查看网络接口请求的状态、地址和时间。
- 在详情页中,由于json已经上色,整个数据看起来更直观。
- 你也可以通过其他应用将数据分享给你想分享的人
步骤 1 : 更新根项目 build.gradle
buildscript {
repositories {
mavenCentral()
}
}
步骤 2 : 在 module的 build.gradle 添加依赖
dependencies {
implementation 'io.github.weilianyang:toolkit:1.0.0'
}
步骤 3 : 初始化 Toolkit
- 我建议你尽可能早的在Application的onCreate方法中初始化toolkit
class App : Application() {
override fun onCreate() {
super.onCreate()
// set config data
val config = ToolkitConfig.Builder().setDebugMode(BuildConfig.DEBUG).build()
// init toolkit
ToolkitPanel.init(this, config)
}
}
步骤 4 : 展示 Toolkit 入口
// Request the permission of the floating window and display the toolkit entrance
// The logic of applying for permissions and callbacks
// has been automatically processed inside the method
ToolkitPanel.showFloating(this)
步骤 5 : 捕获网络接口日志
- 如果你正在使用okhttp,只需要添加这个已定义好的拦截器 ApiRecordInterceptor 就可以实现日志捕获
fun getOkHttpClient(): OkHttpClient {
val builder = OkHttpClient().newBuilder()
builder.run {
// Add the interceptor defined in the package
addInterceptor(ApiRecordInterceptor())
connectTimeout(TIMEOUT, TimeUnit.SECONDS)
readTimeout(TIMEOUT, TimeUnit.SECONDS)
writeTimeout(TIMEOUT, TimeUnit.SECONDS)
}
return builder.build()
}
- 如果不想使用拦截器,也可以使用库中提供的方法手动保存数据,就像这样:
fun saveRecord() {
val bean = ApiRecordBean(
url = "https://developer.android.com/",
method = "POST",
headers = "{\"os\":\"android\", \"language\":\"en\"}",
request = "{\"param1\": \"first param\",\"param2\": \"second param\"}",
response = "{\"code\": code, \"success\": true, \"msg\": \"execute msg\"}",
requestTime = System.currentTimeMillis(),
duration = 100,
httpCode = 200
)
DataManager.saveRecord(bean)
}
后续功能规划
- 崩溃数据详情展示
- 界面元素的通用信息展示
- APP相关性能指标展示
- 其他在开发中的实际痛点场景
欢迎留言与讨论
- 如果你发现组件无法正常工作, 请留言或发布 issue