diff --git a/.idea/misc.xml b/.idea/misc.xml index d5d35ec..d513d83 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,9 @@ + + + + diff --git a/app/build.gradle b/app/build.gradle index a7f3471..33f314b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'com.didi.dokit' android { compileSdkVersion 30 @@ -8,8 +9,8 @@ android { applicationId "com.bytedance.tiktok" minSdkVersion 21 targetSdkVersion 29 - versionCode 1 - versionName "1.0" + versionCode 10 + versionName "2.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -30,6 +31,41 @@ android { } } +dokitExt { + //通用设置 + comm { + //地图经纬度开关 + gpsSwitch true + //网络开关 + networkSwitch true + //大图开关 + bigImgSwitch true + //webView js 抓包 + webViewSwitch true + } + + slowMethod { + //调用栈模式配置 对应gradle.properties中DOKIT_METHOD_STRATEGY=0 + stackMethod { + //默认值为 5ms 小于该值的函数在调用栈中不显示 + thresholdTime 10 + //调用栈函数入口 千万不要用我默认的配置 如果有特殊需求修改成项目中自己的入口 假如不需要可以去掉该字段 + enterMethods = ["com.didichuxing.doraemondemo.MainDebugActivity.test1"] + //黑名单 粒度最小到类 暂不支持到方法 千万不要用我默认的配置 如果有特殊需求修改成项目中自己的入口 假如不需要可以去掉该字段 + methodBlacklist = ["com.facebook.drawee.backends.pipeline.Fresco"] + } + //普通模式配置 对应gradle.properties中DOKIT_METHOD_STRATEGY=1 + normalMethod { + //默认值为 500ms 小于该值的函数在运行时不会在控制台中被打印 + thresholdTime 500 + //需要针对函数插装的包名 千万不要用我默认的配置 如果有特殊需求修改成项目中自己的项目包名 假如不需要可以去掉该字段 + packageNames = ["com.didichuxing.doraemondemo"] + //不需要针对函数插装的包名&类名 千万不要用我默认的配置 如果有特殊需求修改成项目中自己的项目包名 假如不需要可以去掉该字段 + methodBlacklist = ["com.didichuxing.doraemondemo.dokit"] + } + } +} + dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.2' @@ -58,11 +94,11 @@ dependencies { implementation "androidx.core:core-ktx:+" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -// implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' -// implementation 'androidx.lifecycle:lifecycle-viewmodel:2.0.0' -// implementation 'androidx.lifecycle:lifecycle-livedata:2.0.0' -// implementation 'me.tatarka.bindingcollectionadapter2:bindingcollectionadapter:3.2.0' -// implementation 'me.tatarka.bindingcollectionadapter2:bindingcollectionadapter-recyclerview:3.2.0' + debugImplementation 'com.didichuxing.doraemonkit:dokitx:3.3.5' + releaseImplementation 'com.didichuxing.doraemonkit:dokitx-no-op:3.3.5' + +// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.5' + } repositories { mavenCentral() diff --git a/app/src/main/java/com/bytedance/tiktok/application/App.kt b/app/src/main/java/com/bytedance/tiktok/application/App.kt index 85e4bcf..eba3989 100644 --- a/app/src/main/java/com/bytedance/tiktok/application/App.kt +++ b/app/src/main/java/com/bytedance/tiktok/application/App.kt @@ -1,6 +1,7 @@ package com.bytedance.tiktok.application import android.app.Application +import com.didichuxing.doraemonkit.DoraemonKit /** * create by libo @@ -10,5 +11,7 @@ import android.app.Application class App : Application() { override fun onCreate() { super.onCreate() + + DoraemonKit.install(this, "pId") } } \ No newline at end of file diff --git a/app/src/main/java/com/bytedance/tiktok/base/CommPagerAdapter.kt b/app/src/main/java/com/bytedance/tiktok/base/CommPagerAdapter.kt index fa5bbe9..3f94874 100644 --- a/app/src/main/java/com/bytedance/tiktok/base/CommPagerAdapter.kt +++ b/app/src/main/java/com/bytedance/tiktok/base/CommPagerAdapter.kt @@ -11,7 +11,7 @@ import java.util.* * create on 2020/5/19 * description 公共viewPageradapter */ -class CommPagerAdapter(fm: FragmentManager?, private val items: ArrayList, private val mTitles: Array) : FragmentStatePagerAdapter(fm) { +class CommPagerAdapter(fm: FragmentManager?, private val items: ArrayList, private val mTitles: Array) : FragmentStatePagerAdapter(fm!!) { override fun getCount(): Int { return if (items.size == 0) 0 else items.size } diff --git a/app/src/main/java/com/bytedance/tiktok/utils/ViewPagerPlayManager.kt b/app/src/main/java/com/bytedance/tiktok/utils/ViewPagerPlayManager.kt deleted file mode 100644 index 239e4d2..0000000 --- a/app/src/main/java/com/bytedance/tiktok/utils/ViewPagerPlayManager.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.bytedance.tiktok.utils - -/** - * create by apple - * create on 2020-05-20 - * description - */ -class ViewPagerPlayManager \ No newline at end of file diff --git a/build.gradle b/build.gradle index a51c8a6..387c454 100644 --- a/build.gradle +++ b/build.gradle @@ -11,6 +11,8 @@ buildscript { classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.didichuxing.doraemonkit:dokitx-plugin:3.3.5' + // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/gradle.properties b/gradle.properties index 199d16e..4901cdb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,3 +18,20 @@ android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true +// dokit全局配置 +// 插件开关 +DOKIT_PLUGIN_SWITCH=true +// DOKIT读取三方库会和booster冲突 如果你的项目中也集成了booster 建议将开关改成false +DOKIT_THIRD_LIB_SWITCH=true +// 插件日志 +DOKIT_LOG_SWITCH=true +// 自定义Webview的全限定名 主要是作用于h5 js抓包和数据mock +DOKIT_WEBVIEW_CLASS_NAME=com/didichuxing/doraemonkit/widget/webview/MyWebView +// dokit 慢函数开关 +DOKIT_METHOD_SWITCH=true +// dokit 函数调用栈层级 +DOKIT_METHOD_STACK_LEVEL=4 +// 0:默认模式 打印函数调用栈 需添加指定入口 默认为application onCreate 和attachBaseContext +// 1:普通模式 运行时打印某个函数的耗时 全局业务代码函数插入 +DOKIT_METHOD_STRATEGY=0 +