diff --git a/Android/app/src/main/java/com/didichuxing/doraemondemo/App.java b/Android/app/src/main/java/com/didichuxing/doraemondemo/App.java index 122dd58935ac836bed8e863dac19cb9d9aac71d4..a48b246a4c255d952b5f18b41c8a1e6c4a16cfac 100644 --- a/Android/app/src/main/java/com/didichuxing/doraemondemo/App.java +++ b/Android/app/src/main/java/com/didichuxing/doraemondemo/App.java @@ -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 diff --git a/Android/build.gradle b/Android/build.gradle index c40953bd71fd471b7f8c8d9befa57bda69884ac8..2b24077c0a08e74446c0c54f9afc8d2348a17581 100644 --- a/Android/build.gradle +++ b/Android/build.gradle @@ -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 diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java index d110bc7ef7b8a56cd9ca81c5f2f881fece4eea41..3793ca08ae2a846e5860d4e9eaa167f8ad315e19 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java @@ -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) { } } diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/constant/DokitConstant.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/constant/DokitConstant.java index 8640f258686858445df480ef8852d402372be901..87e5ef97f24e210e4589a3bea5cbdc93aa6c1091 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/constant/DokitConstant.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/constant/DokitConstant.java @@ -103,7 +103,6 @@ public class DokitConstant { Class.forName("com.didichuxing.doraemonkit.DoraemonKitRpc"); isRpcSdk = true; } catch (ClassNotFoundException e) { - e.printStackTrace(); isRpcSdk = false; } diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/datapick/DataPickManager.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/datapick/DataPickManager.java index 5ef4ff0c23b37a6a7ec3c33cec73c7c37804d9d4..2c4e4332a2580216e28972f2203e2b45fa390087 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/datapick/DataPickManager.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/datapick/DataPickManager.java @@ -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.post("http://dokit-test.intra.xiaojukeji.com/pointData/addPointData") + //LogHelper.i(TAG,"content===>" + content); + //LogHelper.i(TAG, "====realPost======from==>" + from); + OkGo.post(NetworkManager.APP_DATA_PICK_URL) .upJson(content) .execute(new StringCallback() { @Override diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java index fc7e1d11f4516aea7a3c898571398b7aab69983b..a4a5fb78e4818c613f6797de12207fb22c70b2b0 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/health/AppHealthInfoUtil.java @@ -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.post("https://www.dokit.cn/healthCheck/addCheckData") + OkGo.post(NetworkManager.APP_HEALTH_URL) .upJson(GsonUtils.toJson(mAppHealthInfo)) .execute(new StringCallback() { @Override diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/MethodCostFragment.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/MethodCostFragment.java index 7108548cc8482044b596a3fe5ee669a78f4e5ef7..9792e80d3a0ff715969005b1620573efb14944cb 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/MethodCostFragment.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/methodtrace/MethodCostFragment.java @@ -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); } diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/NetworkManager.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/NetworkManager.java index e2a87348847440d29ff871252c63e2bf4b3c3bb0..be393befefe295c7b5fd2c9ec76642880db4acb4 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/NetworkManager.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/NetworkManager.java @@ -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; diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/sysinfo/SysInfoFragment.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/sysinfo/SysInfoFragment.java index d165c3b93a92836e143c5938357e2e6c9963c710..32f3e083160925713581498f1bcca208297224f3 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/sysinfo/SysInfoFragment.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/sysinfo/SysInfoFragment.java @@ -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 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 sysInfoItems) { + private void addDeviceData(List 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"; } } diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/DoraemonStatisticsUtil.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/DoraemonStatisticsUtil.java index 87aa3355843813d5e27f774bbd23f52ba2c97bd4..d57fe2c6d988ac76e2ef7a98dc69c65b0261f80f 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/DoraemonStatisticsUtil.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/DoraemonStatisticsUtil.java @@ -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