Dokit SDK常见问题

Android

1、为什么接入后看不到悬浮窗入口?

先确认是否打开应用的悬浮窗权限,同时确认是否错误引用no-op版本。

2、 com.didichuxing.doraemonkit:kit和com.didichuxing.doraemonkit:kit-no-op有什么区别?

no-op版本提供空实现,DoraemonKit不推荐集成到线上版本使用的,可通过gradle配置动态切换正常版本和no-op版本。

3、 流量监控无数据

目前流量监测功能只支持OkHttp3和HttpUrlConnection的自动注入,其他网络库暂不支持。 其他网络库可以使用NetworkPrinterHelper类进行请求数据的手动注入,使用参考demo。

4、 性能监控中,CPU、RAM无数据

旧版本SDK的CPU监控实现在8.0系统读取不到数据。新版本已修改实现方式,可以正常读取。

5、 帧率、CPU、RAM数据不准确

由于读取cpu、内存数据本身需要消耗cpu和内存,加上心跳图绘制需要消耗性能,所以开启这几项功能后,数据比app实际使用值有升高。

6、 com.hujiang.aspectjx:gradle-android-plugin-aspectjx是否必须?

注意:该插件只在低版本的dokit sdk中采用,新版本已经替换为ASM的技术方案,可以去掉。

这个插件的用处是在编译阶段在okhttp和httpurlconnection的调用处进行插桩,用来收集网络请求数据从而实现流量监控功能,如果不需要流量监控功能或者使用的是非okhttp和httpurlconnection网络库,可以不引用这个插件。 因为这个插件会涉及到字节码的修改,同时会插入一些代码到网络请求中,对性能和稳定性有影响,所以非常不推荐在线上版本中使用。在线上版本中,务必去除该插件的引用。

7、 沙盒游览功能能否打开数据库、sp文件?

目前已经支持

8、为什么地图的经纬度 hook 不成功

请检查是否集成了dokit-plugin插件

9、dokit 的数据mock以及健康体检到需要依赖dokit-plugin。

请检查是否集成了dokit-plugin插件

10、拾色器功能失效。

请先检查你当前app的targetSdkVersion是否大于等于29(Android Q).

1)假如你的app没有针对Android Q进行适配,可以考虑将targetSdkVersion设置为小于29即可。

2)我当前app的功能已经针对Android Q进行适配,想要正常使用拾色器。你可以添加以下代码到你项目的AndroidManifest.xml中。(线上真实版本记得一定要去掉以下代码,dokit的所有功能只在开发环境中使用,千万不要带到线上)

  1. <service
  2. android:name="com.didichuxing.doraemonkit.kit.colorpick.ScreenRecorderService"
  3. android:enabled="true"
  4. android:foregroundServiceType="mediaProjection"
  5. tools:targetApi="q" />

如果编译过程中报找不到foregroundServiceType属性,请检查你项目的compileSdkVersion是否已经设置为29.一般情况下targetSdkVersion总是小于或等于compileSdkVersion。

原理: 因为Android Q针对屏幕截图的权限进行了调整。假如你项目的targetSdkVersion设置为29,系统会要求你的截图操作必须在前台服务中进行操作。否则无法正常进行屏幕截图。

11、Android Dokit为什么迟迟不升级成Androidx

其实现阶段Dokit的所有功能都是只支持在开发阶段,所以就意味着dokit依赖库所依赖的所有第三方库都不会带到线上,于此同时dokit-no-op中没有依赖任何第三方库,并且所有入口方法都是空实现。开发者根本不用担心线上包变大或者依赖冲突等问题。所以Android端现阶段升级Androidx的意义并不是很大。

12、大图检测功能未生效

当前安卓平台只支持glide4.0+、fresco、picasso、Imageloader 4个图片框架的自动检测。 当fileSize显示为0的时候,有可能是你设置了图片缓存,所以请请你一下缓存再重试。fileSize只会在通过网络加载时才会拦截。

13、编译demo失败

1、确认你的androidStudio版本时候升级到3.6.0及以上,因为项目中使用到了databind 2、去除和doraemonkit-rpc相关的引入,主要存在setting文件和build.gradle中,因为该module中使用滴滴自己的网络库外部并不能下载。

14、dokit版本的问题

|DoKit|最新版本|描述| |-|-|-|-| |支持Androidx|3.1.2|从v3.1.0版本开始支持androidx |支持android support|3.0.3|support 支持还会维护一到两个版本,请大家尽快拥抱androidx吧

15、数据mock不成功

1、当前dokit的数据mock逻辑为实际的接口path+query 必须包含在平台端配置的path+query 否则会匹配不到 2、如果你的项目中使用了retrofit,请确认你的okhttp版本时候大于3.14.0,如果是请把版本版本降低到3.12.1。参考代码如下:

  1. app modulebuild.gradle下添加以下代码
  2. configurations.all {
  3. resolutionStrategy.eachDependency { details ->
  4. if (details.requested.group == 'com.squareup.okhttp3'
  5. && details.requested.name == 'okhttp') {
  6. details.useVersion "3.12.1"
  7. }
  8. }
  9. }

iOS

待补充