提交 b41dadba 编写于 作者: J jackjintai

modify:

1、新增慢函数统计功能
上级 af2460a1
......@@ -30,10 +30,11 @@ public class App extends Application {
kits.add(new DemoKit());
//测试环境:a49842eeebeb1989b3f9565eb12c276b
//线上环境:749a0600b5e48dd77cf8ee680be7b1b7
DoraemonKit.install(this, kits, "a49842eeebeb1989b3f9565eb12c276b");
DoraemonKit.disableUpload();
//是否显示入口icon
//DoraemonKit.setAwaysShowMainIcon(false);
DoraemonKit.disableUpload();
DoraemonKit.install(this, kits, "749a0600b5e48dd77cf8ee680be7b1b7");
Fresco.initialize(this);
DoraemonKit.setWebDoorCallback(new WebDoorManager.WebDoorCallback() {
@Override
......
......@@ -14,7 +14,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.0'
classpath 'com.android.tools.build:gradle:3.6.1'
classpath 'com.novoda:bintray-release:0.9.2'
classpath 'com.didichuxing.doraemonkit:doraemonkit-plugin:1000.0.2'
// NOTE: Do not place your application dependencies here; they belong
......
......@@ -266,12 +266,8 @@ class DoraemonKitReal {
AbstractKit devToolKit = (AbstractKit) Class.forName("com.didichuxing.doraemonkit.weex.devtool.DevToolKit").newInstance();
weex.add(devToolKit);
DokitConstant.KIT_MAPS.put(Category.WEEX, weex);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (Exception e) {
}
DokitConstant.KIT_MAPS.put(Category.PERFORMANCE, performance);
......@@ -285,7 +281,11 @@ class DoraemonKitReal {
DokitViewManager.getInstance().init(app);
//上传app基本信息便于统计
if (sEnableUpload) {
DoraemonStatisticsUtil.uploadUserInfo(app);
try {
DoraemonStatisticsUtil.uploadUserInfo(app);
} catch (Exception e) {
e.printStackTrace();
}
}
installLeakCanary(app);
initAndroidUtil(app);
......@@ -472,14 +472,7 @@ class DoraemonKitReal {
Method install = leakCanaryManager.getMethod("install", Application.class);
//调用静态的install方法
install.invoke(null, app);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (Exception e) {
}
}
......
......@@ -103,7 +103,6 @@ public class DokitConstant {
Class.forName("com.didichuxing.doraemonkit.DoraemonKitRpc");
isRpcSdk = true;
} catch (ClassNotFoundException e) {
e.printStackTrace();
isRpcSdk = false;
}
......
......@@ -7,6 +7,7 @@ import com.blankj.utilcode.util.FileIOUtils;
import com.blankj.utilcode.util.FileUtils;
import com.blankj.utilcode.util.GsonUtils;
import com.blankj.utilcode.util.PathUtils;
import com.didichuxing.doraemonkit.kit.network.NetworkManager;
import com.didichuxing.doraemonkit.okgo.OkGo;
import com.didichuxing.doraemonkit.okgo.callback.StringCallback;
import com.didichuxing.doraemonkit.okgo.model.Response;
......@@ -102,9 +103,9 @@ public class DataPickManager {
* 真正需要上传的方法
*/
private void realPost(final int from, String content) {
LogHelper.i(TAG,"content===>" + content);
LogHelper.i(TAG, "====realPost======from==>" + from);
OkGo.<String>post("http://dokit-test.intra.xiaojukeji.com/pointData/addPointData")
//LogHelper.i(TAG,"content===>" + content);
//LogHelper.i(TAG, "====realPost======from==>" + from);
OkGo.<String>post(NetworkManager.APP_DATA_PICK_URL)
.upJson(content)
.execute(new StringCallback() {
@Override
......
......@@ -13,6 +13,7 @@ import com.didichuxing.doraemonkit.kit.blockmonitor.core.BlockMonitorManager;
import com.didichuxing.doraemonkit.kit.common.PerformanceDataManager;
import com.didichuxing.doraemonkit.kit.crash.CrashCaptureManager;
import com.didichuxing.doraemonkit.kit.health.model.AppHealthInfo;
import com.didichuxing.doraemonkit.kit.network.NetworkManager;
import com.didichuxing.doraemonkit.okgo.OkGo;
import com.didichuxing.doraemonkit.okgo.callback.StringCallback;
import com.didichuxing.doraemonkit.okgo.model.Response;
......@@ -289,7 +290,7 @@ public class AppHealthInfoUtil {
}
//线上地址:https://www.dokit.cn/healthCheck/addCheckData
//测试环境地址:http://dokit-test.intra.xiaojukeji.com/healthCheck/addCheckData
OkGo.<String>post("https://www.dokit.cn/healthCheck/addCheckData")
OkGo.<String>post(NetworkManager.APP_HEALTH_URL)
.upJson(GsonUtils.toJson(mAppHealthInfo))
.execute(new StringCallback() {
@Override
......
......@@ -8,6 +8,7 @@ import android.view.View;
import android.widget.TextView;
import com.didichuxing.doraemonkit.R;
import com.didichuxing.doraemonkit.kit.network.NetworkManager;
import com.didichuxing.doraemonkit.ui.base.BaseFragment;
import com.didichuxing.doraemonkit.ui.widget.titlebar.HomeTitleBar;
import com.didichuxing.doraemonkit.ui.widget.webview.MyWebView;
......@@ -41,7 +42,7 @@ public class MethodCostFragment extends BaseFragment {
}
});
mWebView = findViewById(R.id.webview);
mWebView.loadUrl("http://xingyun.xiaojukeji.com/docs/dokit/#/TimeProfiler");
mWebView.loadUrl(NetworkManager.APP_DOCUMENT_URL);
}
......
......@@ -16,15 +16,44 @@ import java.util.concurrent.atomic.AtomicBoolean;
* @desc: 提供网络抓包功能开启、关闭、数据统计功能的manager
*/
public class NetworkManager {
/**
* ########以下为数据mock 的相关网络接口#########
*/
public static final String MOCK_SCHEME_HTTP = "http://";
public static final String MOCK_SCHEME_HTTPS = "https://";
// private static final String MOCK_HOST_DEBUG = "xyrd.intra.xiaojukeji.com";
// private static final String MOCK_HOST_DEBUG = "xyrd.intra.xiaojukeji.com";
private static final String MOCK_HOST_DEBUG = "mock.dokit.cn";
private static final String MOCK_HOST_RELEASE = "mock.dokit.cn";
private static final String MOCK_DEBUG_DOMAIN = MOCK_SCHEME_HTTP + MOCK_HOST_DEBUG;
private static final String MOCK_RELEASE_DOMAIN = MOCK_SCHEME_HTTPS + MOCK_HOST_RELEASE;
public static final String MOCK_DOMAIN = BuildConfig.DEBUG ? MOCK_DEBUG_DOMAIN : MOCK_RELEASE_DOMAIN;
public static final String MOCK_HOST = BuildConfig.DEBUG ? MOCK_HOST_DEBUG : MOCK_HOST_RELEASE;
/**
* ########以上为数据mock 的相关网络接口#########
*/
/**
* ########app健康体检相关接口 的相关网络接口#########
* 线上地址:https://www.dokit.cn/healthCheck/addCheckData
* 测试环境地址:http://dokit-test.intra.xiaojukeji.com/healthCheck/addCheckData
*/
public static final String APP_HEALTH_URL = "https://www.dokit.cn/healthCheck/addCheckData";
/**
* ########业务埋点的网络接口#########
*/
public static final String APP_DATA_PICK_URL = "http://dokit-test.intra.xiaojukeji.com/pointData/addPointData";
/**
* 慢函数操作文档
*/
public static final String APP_DOCUMENT_URL = "http://xingyun.xiaojukeji.com/docs/dokit/#/TimeProfiler";
/**
* app 启动数据埋点
*/
public static final String APP_START_DATA_PICK_URL = "https://doraemon.xiaojukeji.com/uploadAppData";
private static final int MAX_SIZE = 100;
......
......@@ -45,8 +45,13 @@ public class SysInfoFragment extends BaseFragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView();
initData();
try {
initView();
initData();
} catch (Exception e) {
e.printStackTrace();
}
}
private void initView() {
......@@ -67,7 +72,7 @@ public class SysInfoFragment extends BaseFragment {
mInfoList.addItemDecoration(decoration);
}
private void initData() {
private void initData() throws Exception {
List<SysInfoItem> sysInfoItems = new ArrayList<>();
addAppData(sysInfoItems);
addDeviceData(sysInfoItems);
......@@ -91,27 +96,70 @@ public class SysInfoFragment extends BaseFragment {
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_package_target_sdk), String.valueOf(getContext().getApplicationInfo().targetSdkVersion)));
}
private void addDeviceData(List<SysInfoItem> sysInfoItems) {
private void addDeviceData(List<SysInfoItem> sysInfoItems) throws Exception {
sysInfoItems.add(new TitleItem(getString(R.string.dk_sysinfo_device_info)));
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_brand_and_model), Build.MANUFACTURER + " " + Build.MODEL));
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_android_version), Build.VERSION.RELEASE + " (" + Build.VERSION.SDK_INT + ")"));
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_ext_storage_free), DeviceUtils.getSDCardSpace(getContext())));
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_rom_free), DeviceUtils.getRomSpace(getContext())));
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_display_size), UIUtils.getWidthPixels() + "x" + UIUtils.getRealHeightPixels()));
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_display_inch), "" + UIUtils.getScreenInch(getActivity())));
sysInfoItems.add(new SysInfoItem("ROOT", String.valueOf(DeviceUtils.isRoot(getContext()))));
sysInfoItems.add(new SysInfoItem("DENSITY", String.valueOf(UIUtils.getDensity())));
sysInfoItems.add(new SysInfoItem("IP", TextUtils.isEmpty(NetworkUtils.getIPAddress(true)) ? "null" : NetworkUtils.getIPAddress(true)));
sysInfoItems.add(new SysInfoItem("Mac", TextUtils.isEmpty(com.blankj.utilcode.util.DeviceUtils.getMacAddress()) ? "null" : com.blankj.utilcode.util.DeviceUtils.getMacAddress()));
try {
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_ext_storage_free), DeviceUtils.getSDCardSpace(getContext())));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_rom_free), DeviceUtils.getRomSpace(getContext())));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_display_size), UIUtils.getWidthPixels() + "x" + UIUtils.getRealHeightPixels()));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem(getString(R.string.dk_sysinfo_display_inch), "" + UIUtils.getScreenInch(getActivity())));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem("ROOT", String.valueOf(com.blankj.utilcode.util.DeviceUtils.isDeviceRooted())));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem("DENSITY", String.valueOf(UIUtils.getDensity())));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem("IP", TextUtils.isEmpty(NetworkUtils.getIPAddress(true)) ? "null" : NetworkUtils.getIPAddress(true)));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem("Mac", TextUtils.isEmpty(com.blankj.utilcode.util.DeviceUtils.getMacAddress()) ? "null" : com.blankj.utilcode.util.DeviceUtils.getMacAddress()));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem("IMEI", TextUtils.isEmpty(PhoneUtils.getIMEI()) ? "null" : PhoneUtils.getIMEI()));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem("Sign MD5", AppUtils.getAppSignatureMD5()));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem("Sign SHA1", AppUtils.getAppSignatureSHA1()));
} catch (Exception e) {
e.printStackTrace();
}
try {
sysInfoItems.add(new SysInfoItem("Sign SHA256", AppUtils.getAppSignatureSHA256()));
} catch (Exception e) {
e.printStackTrace();
}
sysInfoItems.add(new SysInfoItem("Sign MD5", AppUtils.getAppSignatureMD5()));
sysInfoItems.add(new SysInfoItem("Sign SHA1", AppUtils.getAppSignatureSHA1()));
sysInfoItems.add(new SysInfoItem("Sign SHA256", AppUtils.getAppSignatureSHA256()));
}
/**
......@@ -174,7 +222,12 @@ public class SysInfoFragment extends BaseFragment {
}
private String checkPermission(String... perms) {
return PermissionUtil.hasPermissions(getContext(), perms) ? "YES" : "NO";
try {
return PermissionUtil.hasPermissions(getContext(), perms) ? "YES" : "NO";
} catch (NullPointerException e) {
e.printStackTrace();
}
return "NO";
}
}
......@@ -3,6 +3,7 @@ package com.didichuxing.doraemonkit.util;
import android.content.Context;
import com.didichuxing.doraemonkit.BuildConfig;
import com.didichuxing.doraemonkit.kit.network.NetworkManager;
import org.json.JSONException;
import org.json.JSONObject;
......@@ -27,8 +28,7 @@ public class DoraemonStatisticsUtil {
private DoraemonStatisticsUtil() {
}
public static void uploadUserInfo(Context context) {
String url = "https://doraemon.xiaojukeji.com/uploadAppData";
public static void uploadUserInfo(Context context) throws Exception {
String appId = SystemUtil.getPackageName(context);
String appName = SystemUtil.getAppName(context);
String type = "Android";
......@@ -52,14 +52,14 @@ public class DoraemonStatisticsUtil {
RequestBody requestBody = RequestBody.create(mediaType,
jsonObject.toString());
Request request = new Request.Builder()
.url(url)
.url(NetworkManager.APP_START_DATA_PICK_URL)
.post(requestBody)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册