Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
17458740
D
DoraemonKit
项目概览
DiDi
/
DoraemonKit
12 个月 前同步成功
通知
166
Star
19623
Fork
3062
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DoraemonKit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
17458740
编写于
2月 10, 2020
作者:
J
jackjintai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify:
1、bug fix
上级
08aa759b
变更
27
隐藏空白更改
内联
并排
Showing
27 changed file
with
108 addition
and
74 deletion
+108
-74
Android/app/src/main/java/com/didichuxing/doraemondemo/App.java
...d/app/src/main/java/com/didichuxing/doraemondemo/App.java
+1
-1
Android/config.gradle
Android/config.gradle
+3
-3
Android/doraemonkit-leakcanary/src/main/java/com/squareup/leakcanary/HeapAnalyzer.java
...y/src/main/java/com/squareup/leakcanary/HeapAnalyzer.java
+0
-1
Android/doraemonkit-no-op/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/OrderBean.java
...om/didichuxing/doraemonkit/kit/methodtrace/OrderBean.java
+0
-1
Android/doraemonkit/src/main/java/com/android/tools/perflib/vmtrace/CallStackReconstructor.java
...android/tools/perflib/vmtrace/CallStackReconstructor.java
+0
-2
Android/doraemonkit/src/main/java/com/android/tools/perflib/vmtrace/VmTraceData.java
...n/java/com/android/tools/perflib/vmtrace/VmTraceData.java
+0
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java
...ain/java/com/didichuxing/doraemonkit/DoraemonKitReal.java
+10
-16
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/constant/DokitConstant.java
...a/com/didichuxing/doraemonkit/constant/DokitConstant.java
+5
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/blockmonitor/bean/BlockInfo.java
...ichuxing/doraemonkit/kit/blockmonitor/bean/BlockInfo.java
+9
-13
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/blockmonitor/core/BlockMonitorManager.java
...oraemonkit/kit/blockmonitor/core/BlockMonitorManager.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java
...didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java
+2
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/HealthFragmentChild0.java
...ichuxing/doraemonkit/kit/health/HealthFragmentChild0.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/HealthKit.java
...ava/com/didichuxing/doraemonkit/kit/health/HealthKit.java
+12
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/model/AppHealthInfo.java
...dichuxing/doraemonkit/kit/health/model/AppHealthInfo.java
+6
-6
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/largepicture/LargePictureKit.java
...chuxing/doraemonkit/kit/largepicture/LargePictureKit.java
+6
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/AppHealthMethodCostBean.java
.../doraemonkit/kit/methodtrace/AppHealthMethodCostBean.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/OrderBean.java
...om/didichuxing/doraemonkit/kit/methodtrace/OrderBean.java
+6
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/TraceScanner.java
...didichuxing/doraemonkit/kit/methodtrace/TraceScanner.java
+2
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/MockKit.java
...java/com/didichuxing/doraemonkit/kit/network/MockKit.java
+13
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/NetworkKit.java
...a/com/didichuxing/doraemonkit/kit/network/NetworkKit.java
+6
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/proxy/HttpUrlConnectionProxy.java
...twork/httpurlconnection/proxy/HttpUrlConnectionProxy.java
+0
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/proxy/HttpsUrlConnectionProxy.java
...work/httpurlconnection/proxy/HttpsUrlConnectionProxy.java
+0
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/TimeCounterManager.java
...uxing/doraemonkit/kit/timecounter/TimeCounterManager.java
+12
-11
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/bean/CounterInfo.java
...chuxing/doraemonkit/kit/timecounter/bean/CounterInfo.java
+3
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/weaknetwork/WeakNetworkKit.java
...dichuxing/doraemonkit/kit/weaknetwork/WeakNetworkKit.java
+8
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/widget/tableview/TableMeasurer.java
...huxing/doraemonkit/ui/widget/tableview/TableMeasurer.java
+1
-3
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/zxing/activity/CaptureActivity.java
...dichuxing/doraemonkit/zxing/activity/CaptureActivity.java
+0
-1
未找到文件。
Android/app/src/main/java/com/didichuxing/doraemondemo/App.java
浏览文件 @
17458740
...
...
@@ -29,7 +29,7 @@ public class App extends Application {
super
.
onCreate
();
List
<
IKit
>
kits
=
new
ArrayList
<>();
kits
.
add
(
new
DemoKit
());
DoraemonKit
.
install
(
this
,
kits
,
"a49842eeebeb1989b3f9565eb12c276b"
);
DoraemonKit
.
install
(
this
,
kits
,
"a49842eeebeb1989b3f9565eb12c276b"
);
//是否显示入口icon
//DoraemonKit.setAwaysShowMainIcon(false);
DoraemonKit
.
disableUpload
();
...
...
Android/config.gradle
浏览文件 @
17458740
...
...
@@ -4,9 +4,9 @@ ext {
// 线上包不会接入DoraemonKit,测试包会自动接入
applyPlugin
:
true
,
//上传到远程仓库时需要打开
uploadArchives
:
fals
e
,
uploadArchives
:
tru
e
,
//是否发布插件到远程仓库
publishPluginToRemote:
fals
e
publishPluginToRemote:
tru
e
]
android
=
[
compileSdkVersion
:
28
,
suppotrSdkVersion
:
"27.1.1"
,
...
...
@@ -20,7 +20,7 @@ ext {
//jcenter dokit版本号
jcenterArchivesVersionName:
"2.2.4"
,
//didi内部仓库版本号
didiArchivesVersionName
:
"1000.0.1
3
"
,
didiArchivesVersionName
:
"1000.0.1
7
"
,
//打包上传时 dokit的版本名字
versionName
:
"2.2.4"
,
glide
:
"4.8.0"
,
...
...
Android/doraemonkit-leakcanary/src/main/java/com/squareup/leakcanary/HeapAnalyzer.java
浏览文件 @
17458740
...
...
@@ -273,7 +273,6 @@ public final class HeapAnalyzer {
retainedSize
=
leakingInstance
.
getTotalRetainedSize
();
// TODO: check O sources and see what happened to android.graphics.Bitmap.mBuffer
if
(
SDK_INT
<=
N_MR1
)
{
listener
.
onProgressUpdate
(
AnalyzerProgressListener
.
Step
.
COMPUTING_BITMAP_SIZE
);
retainedSize
+=
computeIgnoredBitmapRetainedSize
(
snapshot
,
leakingInstance
);
...
...
Android/doraemonkit-no-op/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/OrderBean.java
浏览文件 @
17458740
...
...
@@ -144,7 +144,6 @@ public class OrderBean implements Comparable<OrderBean> {
@Override
public
int
compareTo
(
OrderBean
o
)
{
// TODO Auto-generated method stub
//return 0;
return
(
int
)
(
order
-
o
.
order
);
}
...
...
Android/doraemonkit/src/main/java/com/android/tools/perflib/vmtrace/CallStackReconstructor.java
浏览文件 @
17458740
...
...
@@ -156,8 +156,6 @@ public class CallStackReconstructor {
// top level call.
exitMethod
(
mTopLevelCallId
,
0
,
0
,
mTopLevelCalls
);
// TODO: use global / thread times to infer context switches
// Build calls from their respective builders
// Now that we've added the top level call, there should be only 1 top level call
assert
mTopLevelCalls
.
size
()
==
1
;
...
...
Android/doraemonkit/src/main/java/com/android/tools/perflib/vmtrace/VmTraceData.java
浏览文件 @
17458740
...
...
@@ -107,7 +107,6 @@ public class VmTraceData {
public
static
TimeUnit
getDefaultTimeUnits
()
{
// The traces from the VM currently use microseconds.
// TODO: figure out if this can be obtained/inferred from the trace itself
return
TimeUnit
.
MICROSECONDS
;
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java
浏览文件 @
17458740
...
...
@@ -152,6 +152,8 @@ class DoraemonKitReal {
//OkHttp 拦截器 注入
OkHttpHook
.
installInterceptor
();
LogHelper
.
i
(
TAG
,
"IS_HOOK====>"
+
IS_HOOK
);
//赋值全局变量
DokitConstant
.
IS_HOOK
=
IS_HOOK
;
//注册全局的activity生命周期回调
app
.
registerActivityLifecycleCallbacks
(
new
DokitActivityLifecycleCallbacks
());
DokitConstant
.
KIT_MAPS
.
clear
();
...
...
@@ -185,25 +187,19 @@ class DoraemonKitReal {
tool
.
add
(
new
CrashCaptureKit
());
tool
.
add
(
new
LogInfoKit
());
tool
.
add
(
new
DataCleanKit
());
if
(
IS_HOOK
)
{
tool
.
add
(
new
WeakNetworkKit
());
}
tool
.
add
(
new
WeakNetworkKit
());
tool
.
add
(
new
DbDebugKit
());
//添加性能监控kit
performance
.
add
(
new
FrameInfoKit
());
performance
.
add
(
new
CpuKit
());
performance
.
add
(
new
RamKit
());
if
(
IS_HOOK
)
{
performance
.
add
(
new
NetworkKit
());
}
performance
.
add
(
new
NetworkKit
());
performance
.
add
(
new
BlockMonitorKit
());
performance
.
add
(
new
TimeCounterKit
());
performance
.
add
(
new
MethodCostKit
());
performance
.
add
(
new
UIPerformanceKit
());
if
(
IS_HOOK
)
{
performance
.
add
(
new
LargePictureKit
());
}
performance
.
add
(
new
LargePictureKit
());
try
{
//动态添加leakcanary
...
...
@@ -227,11 +223,9 @@ class DoraemonKitReal {
ui
.
add
(
new
AlignRulerKit
());
ui
.
add
(
new
ViewCheckerKit
());
ui
.
add
(
new
LayoutBorderKit
());
if
(
IS_HOOK
&&
!
TextUtils
.
isEmpty
(
DokitConstant
.
PRODUCT_ID
))
{
//新增数据mock工具 由于Dokit管理平台还没完善 所以暂时关闭入口
platform
.
add
(
new
MockKit
());
platform
.
add
(
new
HealthKit
());
}
//新增数据mock工具 由于Dokit管理平台还没完善 所以暂时关闭入口
platform
.
add
(
new
MockKit
());
platform
.
add
(
new
HealthKit
());
//增加浮标模式
floatMode
.
add
(
new
FloatModeKit
());
...
...
@@ -301,9 +295,9 @@ class DoraemonKitReal {
/**
* 单个文件的阈值为1M
*/
//
private static long FILE_LENGTH_THRESHOLD = 1 * 1024 * 1024;
private
static
long
FILE_LENGTH_THRESHOLD
=
1
*
1024
*
1024
;
//todo 测试时为1k 对外时需要修改回来
private
static
long
FILE_LENGTH_THRESHOLD
=
1024
;
//
private static long FILE_LENGTH_THRESHOLD = 1024;
private
static
void
traverseFile
(
File
rootFileDir
)
{
if
(
rootFileDir
==
null
)
{
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/constant/DokitConstant.java
浏览文件 @
17458740
...
...
@@ -26,6 +26,11 @@ import java.util.Map;
* ================================================
*/
public
class
DokitConstant
{
public
static
boolean
IS_HOOK
=
false
;
/**
* 产品id
*/
public
static
String
PRODUCT_ID
=
""
;
/**
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/blockmonitor/bean/BlockInfo.java
浏览文件 @
17458740
...
...
@@ -24,36 +24,32 @@ import java.util.Locale;
*/
public
class
BlockInfo
{
public
static
final
String
SEPARATOR
=
"\r\n"
;
p
ublic
static
final
String
KV
=
" = "
;
p
ublic
static
final
SimpleDateFormat
TIME_FORMATTER
=
p
rivate
static
final
String
KV
=
" = "
;
p
rivate
static
final
SimpleDateFormat
TIME_FORMATTER
=
new
SimpleDateFormat
(
"MM-dd HH:mm:ss.SSS"
,
Locale
.
CHINESE
);
public
static
final
String
NEW_INSTANCE_METHOD
=
"newInstance: "
;
p
ublic
static
final
String
KEY_TIME_COST
=
"time"
;
p
ublic
static
final
String
KEY_THREAD_TIME_COST
=
"thread-time"
;
p
ublic
static
final
String
KEY_TIME_COST_START
=
"time-start"
;
p
ublic
static
final
String
KEY_TIME_COST_END
=
"time-end"
;
p
ublic
static
final
String
KEY_STACK
=
"stack"
;
p
rivate
static
final
String
KEY_TIME_COST
=
"time"
;
p
rivate
static
final
String
KEY_THREAD_TIME_COST
=
"thread-time"
;
p
rivate
static
final
String
KEY_TIME_COST_START
=
"time-start"
;
p
rivate
static
final
String
KEY_TIME_COST_END
=
"time-end"
;
p
rivate
static
final
String
KEY_STACK
=
"stack"
;
// Per Block Info fields
public
long
timeCost
;
p
ublic
long
threadTimeCost
;
p
rivate
long
threadTimeCost
;
public
long
time
;
public
String
timeStart
;
p
ublic
String
timeEnd
;
p
rivate
String
timeEnd
;
public
ArrayList
<
String
>
threadStackEntries
=
new
ArrayList
<>();
private
StringBuilder
timeSb
=
new
StringBuilder
();
private
StringBuilder
stackSb
=
new
StringBuilder
();
public
String
concernStackString
;
public
BlockInfo
()
{
}
public
static
BlockInfo
newInstance
()
{
BlockInfo
blockInfo
=
new
BlockInfo
();
return
blockInfo
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/blockmonitor/core/BlockMonitorManager.java
浏览文件 @
17458740
...
...
@@ -113,7 +113,7 @@ public class BlockMonitorManager {
String
activityName
=
ActivityUtils
.
getTopActivity
().
getClass
().
getCanonicalName
();
AppHealthInfo
.
DataBean
.
BlockBean
blockBean
=
new
AppHealthInfo
.
DataBean
.
BlockBean
();
blockBean
.
setPage
(
activityName
);
blockBean
.
setBlockTime
(
""
+
TimeUtils
.
getNowMills
()
);
blockBean
.
setBlockTime
(
blockInfo
.
timeCost
);
blockBean
.
setDetail
(
blockInfo
.
toString
());
AppHealthInfoUtil
.
getInstance
().
addBlockInfo
(
blockBean
);
}
catch
(
Exception
e
)
{
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java
浏览文件 @
17458740
...
...
@@ -57,7 +57,7 @@ public class AppHealthInfoUtil {
baseInfoBean
.
setCaseName
(
caseName
);
baseInfoBean
.
setAppName
(
AppUtils
.
getAppName
());
baseInfoBean
.
setAppVersion
(
AppUtils
.
getAppVersionName
());
baseInfoBean
.
setDokitVersion
(
BuildConfig
.
VERSION_NAME
);
baseInfoBean
.
setDokitVersion
(
BuildConfig
.
DOKIT_VERSION
);
baseInfoBean
.
setPlatform
(
"Android"
);
baseInfoBean
.
setPhoneMode
(
DeviceUtils
.
getModel
());
baseInfoBean
.
setTime
(
TimeUtils
.
getNowString
());
...
...
@@ -72,7 +72,7 @@ public class AppHealthInfoUtil {
* @param costTime
* @param costDetail
*/
public
void
setAppStartInfo
(
Stri
ng
costTime
,
String
costDetail
,
List
<
AppHealthInfo
.
DataBean
.
AppStartBean
.
LoadFuncBean
>
loadFunc
)
{
public
void
setAppStartInfo
(
lo
ng
costTime
,
String
costDetail
,
List
<
AppHealthInfo
.
DataBean
.
AppStartBean
.
LoadFuncBean
>
loadFunc
)
{
AppHealthInfo
.
DataBean
.
AppStartBean
appStartBean
=
new
AppHealthInfo
.
DataBean
.
AppStartBean
();
appStartBean
.
setCostTime
(
costTime
);
appStartBean
.
setCostDetail
(
costDetail
);
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/HealthFragmentChild0.java
浏览文件 @
17458740
...
...
@@ -125,7 +125,7 @@ public class HealthFragmentChild0 extends BaseFragment {
}
else
{
new
AlertDialog
.
Builder
(
getActivity
())
.
setTitle
(
"健康体检"
)
.
setMessage
(
"
确认是否
开始执行健康体检?"
)
.
setMessage
(
"
是否确认
开始执行健康体检?"
)
.
setPositiveButton
(
"ok"
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/HealthKit.java
浏览文件 @
17458740
package
com.didichuxing.doraemonkit.kit.health
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.constant.FragmentIndex
;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
...
...
@@ -32,6 +35,15 @@ public class HealthKit extends AbstractKit {
@Override
public
void
onClick
(
Context
context
)
{
if
(!
DokitConstant
.
IS_HOOK
)
{
ToastUtils
.
showShort
(
"需要引入doraemonkit-plugin插件以后才能使用该功能"
);
return
;
}
if
(
TextUtils
.
isEmpty
(
DokitConstant
.
PRODUCT_ID
))
{
ToastUtils
.
showShort
(
"需要到www.dokit.cn上注册pId才能使用该功能"
);
return
;
}
startUniversalActivity
(
context
,
FragmentIndex
.
FRAGMENT_HEALTH
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/model/AppHealthInfo.java
浏览文件 @
17458740
...
...
@@ -265,15 +265,15 @@ public class AppHealthInfo {
* loadFunc : [{"className":"ClassA","costTime":"15"},{"className":"ClassB","costTime":"30"}]
*/
private
Stri
ng
costTime
;
private
lo
ng
costTime
;
private
String
costDetail
;
private
List
<
LoadFuncBean
>
loadFunc
;
public
Stri
ng
getCostTime
()
{
public
lo
ng
getCostTime
()
{
return
costTime
;
}
public
void
setCostTime
(
Stri
ng
costTime
)
{
public
void
setCostTime
(
lo
ng
costTime
)
{
this
.
costTime
=
costTime
;
}
...
...
@@ -493,7 +493,7 @@ public class AppHealthInfo {
*/
private
String
page
;
private
Stri
ng
blockTime
;
private
lo
ng
blockTime
;
private
String
detail
;
public
String
getPage
()
{
...
...
@@ -504,11 +504,11 @@ public class AppHealthInfo {
this
.
page
=
page
;
}
public
Stri
ng
getBlockTime
()
{
public
lo
ng
getBlockTime
()
{
return
blockTime
;
}
public
void
setBlockTime
(
Stri
ng
blockTime
)
{
public
void
setBlockTime
(
lo
ng
blockTime
)
{
this
.
blockTime
=
blockTime
;
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/largepicture/LargePictureKit.java
浏览文件 @
17458740
...
...
@@ -2,7 +2,9 @@ package com.didichuxing.doraemonkit.kit.largepicture;
import
android.content.Context
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.constant.FragmentIndex
;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
...
...
@@ -34,6 +36,10 @@ public class LargePictureKit extends AbstractKit {
@Override
public
void
onClick
(
Context
context
)
{
if
(!
DokitConstant
.
IS_HOOK
)
{
ToastUtils
.
showShort
(
"需要引入doraemonkit-plugin插件以后才能使用该功能"
);
return
;
}
startUniversalActivity
(
context
,
FragmentIndex
.
FRAGMENT_LARGE_PICTURE
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/AppHealthMethodCostBean.java
浏览文件 @
17458740
...
...
@@ -4,7 +4,7 @@ package com.didichuxing.doraemonkit.kit.methodtrace;
/**
* Created by hasee on 2017/4/20.
*/
public
class
AppHealthMethodCostBean
{
public
class
AppHealthMethodCostBean
{
private
String
functionName
;
private
String
costTime
=
"0"
;
private
String
threadId
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/OrderBean.java
浏览文件 @
17458740
...
...
@@ -11,7 +11,10 @@ public class OrderBean implements Comparable<OrderBean> {
private
String
functionName
;
private
boolean
isXit
;
private
String
content
;
private
String
costTime
=
"0"
;
/**
* 单位为微秒 us
*/
private
long
costTime
=
0
;
private
String
entTime
;
private
String
threadId
;
private
String
threadName
;
...
...
@@ -58,11 +61,11 @@ public class OrderBean implements Comparable<OrderBean> {
this
.
content
=
content
;
}
public
Stri
ng
getCostTime
()
{
public
lo
ng
getCostTime
()
{
return
costTime
;
}
public
void
setCostTime
(
Stri
ng
costTime
)
{
public
void
setCostTime
(
lo
ng
costTime
)
{
this
.
costTime
=
costTime
;
}
...
...
@@ -144,7 +147,6 @@ public class OrderBean implements Comparable<OrderBean> {
@Override
public
int
compareTo
(
OrderBean
o
)
{
// TODO Auto-generated method stub
//return 0;
return
(
int
)
(
order
-
o
.
order
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/TraceScanner.java
浏览文件 @
17458740
...
...
@@ -18,6 +18,7 @@ import java.util.Stack;
/**
* 文件扫描
* wiki:https://github.com/zjw-swun/AppMethodOrder
*/
class
TraceScanner
{
private
static
final
String
TAG
=
"TraceScanner"
;
...
...
@@ -111,7 +112,7 @@ class TraceScanner {
OrderBean
peek
=
stackMap
.
get
(
orderBean
.
getThreadId
()).
peek
();
if
(
peek
.
getFunctionName
().
equals
(
orderBean
.
getFunctionName
()))
{
OrderBean
pop
=
stackMap
.
get
(
orderBean
.
getThreadId
()).
pop
();
String
costTime
=
""
+
Math
.
abs
(
Long
.
parseLong
(
orderBean
.
getTime
())
-
Long
.
parseLong
(
pop
.
getTime
()));
long
costTime
=
Math
.
abs
(
Long
.
parseLong
(
orderBean
.
getTime
())
-
Long
.
parseLong
(
pop
.
getTime
()));
pop
.
setCostTime
(
costTime
);
}
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/MockKit.java
浏览文件 @
17458740
package
com.didichuxing.doraemonkit.kit.network
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.constant.FragmentIndex
;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
...
...
@@ -32,7 +35,16 @@ public class MockKit extends AbstractKit {
@Override
public
void
onClick
(
Context
context
)
{
startUniversalActivity
(
context
,
FragmentIndex
.
FRAGMENT_NETWORK_MOCK
);
if
(!
DokitConstant
.
IS_HOOK
)
{
ToastUtils
.
showShort
(
"需要引入doraemonkit-plugin插件以后才能使用该功能"
);
return
;
}
if
(
TextUtils
.
isEmpty
(
DokitConstant
.
PRODUCT_ID
))
{
ToastUtils
.
showShort
(
"需要到www.dokit.cn上注册pId才能使用该功能"
);
return
;
}
startUniversalActivity
(
context
,
FragmentIndex
.
FRAGMENT_NETWORK_MOCK
);
}
@Override
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/NetworkKit.java
浏览文件 @
17458740
...
...
@@ -2,7 +2,9 @@ package com.didichuxing.doraemonkit.kit.network;
import
android.content.Context
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.constant.FragmentIndex
;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
...
...
@@ -31,6 +33,10 @@ public class NetworkKit extends AbstractKit {
@Override
public
void
onClick
(
Context
context
)
{
if
(!
DokitConstant
.
IS_HOOK
)
{
ToastUtils
.
showShort
(
"需要引入doraemonkit-plugin插件以后才能使用该功能"
);
return
;
}
startUniversalActivity
(
context
,
FragmentIndex
.
FRAGMENT_NETWORK_MONITOR
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/proxy/HttpUrlConnectionProxy.java
浏览文件 @
17458740
...
...
@@ -64,7 +64,6 @@ public class HttpUrlConnectionProxy extends HttpURLConnection {
@Override
public
void
disconnect
()
{
// TODO Auto-generated method stub
if
(
DEBUG
)
{
Log
.
d
(
TAG
,
"disconnect. "
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/proxy/HttpsUrlConnectionProxy.java
浏览文件 @
17458740
...
...
@@ -79,7 +79,6 @@ public class HttpsUrlConnectionProxy extends HttpsURLConnection {
@Override
public
void
disconnect
()
{
// TODO Auto-generated method stub
if
(
DEBUG
)
{
Log
.
d
(
TAG
,
"disconnect. "
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/TimeCounterManager.java
浏览文件 @
17458740
...
...
@@ -4,6 +4,7 @@ import android.app.Application;
import
android.os.Looper
;
import
android.util.Log
;
import
com.blankj.utilcode.util.ConvertUtils
;
import
com.blankj.utilcode.util.GsonUtils
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.kit.health.AppHealthInfoUtil
;
...
...
@@ -17,7 +18,10 @@ import com.didichuxing.doraemonkit.kit.timecounter.counter.ActivityCounter;
import
com.didichuxing.doraemonkit.kit.timecounter.counter.AppCounter
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.util.FormatUtil
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -26,8 +30,10 @@ import java.util.List;
* @desc: App启动、Activity跳转的耗时统计类
*/
public
class
TimeCounterManager
{
//private static final String TAG = "TimeCounterManager";
private
boolean
mIsRunning
;
private
static
class
Holder
{
private
static
TimeCounterManager
INSTANCE
=
new
TimeCounterManager
();
}
...
...
@@ -45,7 +51,6 @@ public class TimeCounterManager {
* @param application
*/
public
void
onAppCreateStart
(
Application
application
)
{
// Log.i("APP_STAR","=====onAppCreateStart======");
mAppCounter
.
start
();
MethodCost
.
APPLICATION
=
application
;
MethodCost
.
startMethodTracing
(
"appStart"
);
...
...
@@ -57,42 +62,38 @@ public class TimeCounterManager {
* @param application
*/
public
void
onAppCreateEnd
(
Application
application
)
{
// Log.i("APP_STAR","=====onAppCreateEnd======");
mAppCounter
.
end
();
MethodCost
.
stopMethodTracingAndPrintLog
(
"appStart"
,
new
MethodCostCallback
()
{
@Override
public
void
onCall
(
ArrayList
<
OrderBean
>
orderBeans
)
{
try
{
CounterInfo
counterInfo
=
getAppSetupInfo
();
// List<AppHealthInfo.DataBean.AppStartBean.LoadFuncBean> loads = new ArrayList<>();
List
<
AppHealthMethodCostBean
>
appHealthMethodCostBeans
=
new
ArrayList
<>();
for
(
OrderBean
orderBean
:
orderBeans
)
{
long
costTime
=
Long
.
parseLong
(
orderBean
.
getCostTime
());
long
costTime
=
orderBean
.
getCostTime
();
//过滤掉小于l ms的
if
(
costTime
<
1000
)
{
continue
;
}
//详细信息调用函数
AppHealthMethodCostBean
appHealthMethodCostBean
=
new
AppHealthMethodCostBean
();
appHealthMethodCostBean
.
setCostTime
(
orderBean
.
getCostTime
()
);
appHealthMethodCostBean
.
setCostTime
(
String
.
format
(
"%.2f"
,
orderBean
.
getCostTime
()
/
1000.00f
)
+
"ms"
);
appHealthMethodCostBean
.
setFunctionName
(
orderBean
.
getFunctionName
());
appHealthMethodCostBean
.
setThreadId
(
orderBean
.
getThreadId
());
appHealthMethodCostBean
.
setThreadName
(
orderBean
.
getThreadName
());
appHealthMethodCostBeans
.
add
(
appHealthMethodCostBean
);
// AppHealthInfo.DataBean.AppStartBean.LoadFuncBean loadFuncBean = new AppHealthInfo.DataBean.AppStartBean.LoadFuncBean();
// loadFuncBean.setClassName(orderBean.getFunctionName());
// loadFuncBean.setCostTime(orderBean.getCostTime());
// loads.add(loadFuncBean);
}
if
(
appHealthMethodCostBeans
.
isEmpty
())
{
AppHealthMethodCostBean
appHealthMethodCostBean
=
new
AppHealthMethodCostBean
();
appHealthMethodCostBean
.
setCostTime
(
"-1"
);
appHealthMethodCostBean
.
setFunctionName
(
"has no method costTime greater than 1000"
);
appHealthMethodCostBean
.
setFunctionName
(
"has no method costTime greater than 1000
ms
"
);
appHealthMethodCostBean
.
setThreadId
(
"-1"
);
appHealthMethodCostBean
.
setThreadName
(
"-1"
);
appHealthMethodCostBeans
.
add
(
appHealthMethodCostBean
);
}
AppHealthInfoUtil
.
getInstance
().
setAppStartInfo
(
""
+
counterInfo
.
totalCost
,
GsonUtils
.
toJson
(
appHealthMethodCostBeans
),
new
ArrayList
<
AppHealthInfo
.
DataBean
.
AppStartBean
.
LoadFuncBean
>());
AppHealthInfoUtil
.
getInstance
().
setAppStartInfo
(
counterInfo
.
totalCost
,
GsonUtils
.
toJson
(
appHealthMethodCostBeans
),
new
ArrayList
<
AppHealthInfo
.
DataBean
.
AppStartBean
.
LoadFuncBean
>());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/bean/CounterInfo.java
浏览文件 @
17458740
...
...
@@ -13,6 +13,9 @@ public class CounterInfo {
public
long
time
;
public
int
type
;
public
String
title
;
/**
* 单位为ms
*/
public
long
totalCost
;
public
long
pauseCost
;
public
long
launchCost
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/weaknetwork/WeakNetworkKit.java
浏览文件 @
17458740
...
...
@@ -2,14 +2,16 @@ package com.didichuxing.doraemonkit.kit.weaknetwork;
import
android.content.Context
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.constant.FragmentIndex
;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
/**
* 模拟弱网
*
*
<p>
* Created by xiandanin on 2019/5/7 19:05
*/
public
class
WeakNetworkKit
extends
AbstractKit
{
...
...
@@ -30,7 +32,11 @@ public class WeakNetworkKit extends AbstractKit {
@Override
public
void
onClick
(
Context
context
)
{
startUniversalActivity
(
context
,
FragmentIndex
.
FRAGMENT_WEAK_NETWORK
);
if
(!
DokitConstant
.
IS_HOOK
)
{
ToastUtils
.
showShort
(
"需要引入doraemonkit-plugin插件以后才能使用该功能"
);
return
;
}
startUniversalActivity
(
context
,
FragmentIndex
.
FRAGMENT_WEAK_NETWORK
);
}
@Override
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/widget/tableview/TableMeasurer.java
浏览文件 @
17458740
...
...
@@ -151,9 +151,7 @@ public class TableMeasurer<T> {
int
width
=
column
.
getDrawFormat
().
measureWidth
(
column
,
position
);
measureRowHeight
(
lineHeightArray
,
column
,
currentPosition
,
position
);
currentPosition
+=
1
;
/**
*Todo 为了解决合并单元宽度过大问题
*/
//为了解决合并单元宽度过大问题
if
(
rangeCells
!=
null
)
{
Cell
cell
=
rangeCells
[
position
][
columnPos
];
if
(
cell
!=
null
)
{
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/zxing/activity/CaptureActivity.java
浏览文件 @
17458740
...
...
@@ -97,7 +97,6 @@ public class CaptureActivity extends Activity implements Callback {
inactivityTimer
.
onActivity
();
playBeepSoundAndVibrate
();
String
resultString
=
result
.
getText
();
//FIXME
if
(
TextUtils
.
isEmpty
(
resultString
))
{
Toast
.
makeText
(
CaptureActivity
.
this
,
"Scan failed!"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录