提交 cc3ee0d9 编写于 作者: 糕冷羊's avatar 糕冷羊

update 其他issue处理及1.2.0版本发布

上级 3f43b4e7
...@@ -30,10 +30,8 @@ android { ...@@ -30,10 +30,8 @@ android {
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.0' implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation project(':doraemonkit')
// implementation 'com.didichuxing.doraemonkit:doraemonkit:1.0.0'
implementation 'com.squareup.okhttp3:okhttp:3.12.1' implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'com.squareup.okio:okio:1.15.0' implementation 'com.squareup.okio:okio:1.15.0'
......
...@@ -10,59 +10,61 @@ ...@@ -10,59 +10,61 @@
android:id="@+id/btn_test_urlconnection" android:id="@+id/btn_test_urlconnection"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:text="HttpUrlConnection Test" /> android:text="HttpUrlConnection Test"/>
<Button <Button
android:id="@+id/btn_test_okhttp" android:id="@+id/btn_test_okhttp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:text="OkHttp Test" /> android:text="OkHttp Test"/>
<Button <Button
android:id="@+id/btn_test_custom" android:id="@+id/btn_test_custom"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:text="其他网络库 Test" /> android:text="其他网络库 Test"/>
<Button <Button
android:id="@+id/btn_show_hide_icon" android:id="@+id/btn_show_hide_icon"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:text="显示/隐藏入口" /> android:text="显示/隐藏入口"/>
<Button <Button
android:id="@+id/btn_time_count" android:id="@+id/btn_time_count"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:text="页面跳转耗时" /> android:text="页面跳转耗时"/>
<Button <Button
android:id="@+id/btn_test_crash" android:id="@+id/btn_test_crash"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:text="模拟 Crash" /> android:text="模拟 Crash"/>
<Button <Button
android:id="@+id/btn_create_database" android:id="@+id/btn_create_database"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:text="创建数据库" /> android:text="创建数据库"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<Button <Button
android:id="@+id/btn_upload_test" android:id="@+id/btn_upload_test"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="50dp" android:layout_height="50dp"
android:text="上传测试" />
<Button
android:layout_weight="1" android:layout_weight="1"
android:text="上传测试"/>
<Button
android:id="@+id/btn_download_test" android:id="@+id/btn_download_test"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:text="下载测试" /> android:layout_weight="1"
android:text="下载测试"/>
</LinearLayout> </LinearLayout>
......
package parking.didi.com.aop; package parking.didi.com.aop;
import com.didichuxing.doraemonkit.kit.network.NetworkManager; import com.didichuxing.doraemonkit.kit.network.NetworkManager;
import com.didichuxing.doraemonkit.kit.network.httpurlconnection.HttpUrlConnectionProxy; import com.didichuxing.doraemonkit.kit.network.httpurlconnection.proxy.HttpUrlConnectionProxy;
import com.didichuxing.doraemonkit.kit.network.httpurlconnection.HttpsUrlConnectionProxy; import com.didichuxing.doraemonkit.kit.network.httpurlconnection.proxy.HttpsUrlConnectionProxy;
import com.didichuxing.doraemonkit.kit.network.okhttp.DoraemonInterceptor; import com.didichuxing.doraemonkit.kit.network.okhttp.DoraemonInterceptor;
import com.didichuxing.doraemonkit.kit.network.okhttp.DoraemonWeakNetworkInterceptor; import com.didichuxing.doraemonkit.kit.network.okhttp.DoraemonWeakNetworkInterceptor;
......
...@@ -37,4 +37,7 @@ public class DoraemonKit { ...@@ -37,4 +37,7 @@ public class DoraemonKit {
public static void disableUpload() { public static void disableUpload() {
} }
public static void enableRequestPermissionSelf() {
}
} }
\ No newline at end of file
...@@ -3,7 +3,7 @@ apply plugin: 'com.novoda.bintray-release' ...@@ -3,7 +3,7 @@ apply plugin: 'com.novoda.bintray-release'
publish { publish {
def groupProjectID = 'com.didichuxing.doraemonkit' def groupProjectID = 'com.didichuxing.doraemonkit'
def artifactProjectID = 'doraemonkit-no-op' def artifactProjectID = 'doraemonkit-no-op'
def publishVersionID = '1.1.8' def publishVersionID = '1.2.0'
userOrg = 'doraemonkit' userOrg = 'doraemonkit'
repoName = 'DoraemonKit' repoName = 'DoraemonKit'
......
...@@ -294,4 +294,8 @@ public class DoraemonKit { ...@@ -294,4 +294,8 @@ public class DoraemonKit {
} }
return null; return null;
} }
public static void enableRequestPermissionSelf() {
sHasRequestPermission = true;
}
} }
...@@ -2,7 +2,10 @@ package com.didichuxing.doraemonkit.config; ...@@ -2,7 +2,10 @@ package com.didichuxing.doraemonkit.config;
import android.content.Context; import android.content.Context;
import com.didichuxing.doraemonkit.constant.CachesKey;
import com.didichuxing.doraemonkit.constant.SharedPrefsKey; import com.didichuxing.doraemonkit.constant.SharedPrefsKey;
import com.didichuxing.doraemonkit.core.model.LatLng;
import com.didichuxing.doraemonkit.util.CacheUtils;
import com.didichuxing.doraemonkit.util.SharedPrefsUtil; import com.didichuxing.doraemonkit.util.SharedPrefsUtil;
/** /**
...@@ -17,4 +20,12 @@ public class GpsMockConfig { ...@@ -17,4 +20,12 @@ public class GpsMockConfig {
public static void setGPSMockOpen(Context context, boolean open) { public static void setGPSMockOpen(Context context, boolean open) {
SharedPrefsUtil.putBoolean(context, SharedPrefsKey.GPS_MOCK_OPEN, open); SharedPrefsUtil.putBoolean(context, SharedPrefsKey.GPS_MOCK_OPEN, open);
} }
public static LatLng getMockLocation(Context context) {
return (LatLng) CacheUtils.readObject(context, CachesKey.MOCK_LOCATION);
}
public static void saveMockLocation(Context context, LatLng latLng) {
CacheUtils.saveObject(context, CachesKey.MOCK_LOCATION, latLng);
}
} }
\ No newline at end of file
package com.didichuxing.doraemonkit.core.model;
import java.io.Serializable;
/**
* Created by wanglikun on 2019-07-19
*/
public class LatLng implements Serializable {
public double latitude;
public double longitude;
public LatLng(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
}
...@@ -27,6 +27,7 @@ import com.didichuxing.doraemonkit.util.threadpool.ThreadPoolProxyFactory; ...@@ -27,6 +27,7 @@ import com.didichuxing.doraemonkit.util.threadpool.ThreadPoolProxyFactory;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.RandomAccessFile; import java.io.RandomAccessFile;
...@@ -40,10 +41,8 @@ import java.util.Date; ...@@ -40,10 +41,8 @@ import java.util.Date;
public class PerformanceDataManager { public class PerformanceDataManager {
private static final String TAG = "PerformanceDataManager"; private static final String TAG = "PerformanceDataManager";
private static final float SECOND_IN_NANOS = 1000000000f;
private static final int MAX_FRAME_RATE = 60; private static final int MAX_FRAME_RATE = 60;
private static final int NORMAL_FRAME_RATE = 1; private static final int NORMAL_FRAME_RATE = 1;
private String filePath;
private String memoryFileName = "memory.txt"; private String memoryFileName = "memory.txt";
private String cpuFileName = "cpu.txt"; private String cpuFileName = "cpu.txt";
private String fpsFileName = "fps.txt"; private String fpsFileName = "fps.txt";
...@@ -163,8 +162,7 @@ public class PerformanceDataManager { ...@@ -163,8 +162,7 @@ public class PerformanceDataManager {
} }
public void init(Context context) { public void init(Context context) {
mContext = context; mContext = context.getApplicationContext();
filePath = getFilePath(context);
mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mAboveAndroidO = true; mAboveAndroidO = true;
...@@ -198,12 +196,7 @@ public class PerformanceDataManager { ...@@ -198,12 +196,7 @@ public class PerformanceDataManager {
} }
private String getFilePath(Context context) { private String getFilePath(Context context) {
boolean hasExternalStorage = Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); return context.getCacheDir() + File.separator + "doraemon/";
if (hasExternalStorage) {
return context.getExternalFilesDir(null).getAbsolutePath() + "/doraemon/";
} else {
return Environment.getExternalStorageDirectory().getAbsolutePath() + "/doraemon/";
}
} }
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
...@@ -315,7 +308,7 @@ public class PerformanceDataManager { ...@@ -315,7 +308,7 @@ public class PerformanceDataManager {
ThreadPoolProxyFactory.getThreadPoolProxy().execute(new Runnable() { ThreadPoolProxyFactory.getThreadPoolProxy().execute(new Runnable() {
@Override @Override
public void run() { public void run() {
FileManager.writeTxtToFile(JsonUtil.jsonFromObject(mUploadMonitorBean), filePath, customFileName); FileManager.writeTxtToFile(JsonUtil.jsonFromObject(mUploadMonitorBean), getFilePath(mContext), customFileName);
} }
}); });
} }
...@@ -336,7 +329,7 @@ public class PerformanceDataManager { ...@@ -336,7 +329,7 @@ public class PerformanceDataManager {
stringBuilder.append(mLastCpuRate); stringBuilder.append(mLastCpuRate);
stringBuilder.append(" "); stringBuilder.append(" ");
stringBuilder.append(simpleDateFormat.format(new Date(System.currentTimeMillis()))); stringBuilder.append(simpleDateFormat.format(new Date(System.currentTimeMillis())));
FileManager.writeTxtToFile(stringBuilder.toString(), filePath, cpuFileName); FileManager.writeTxtToFile(stringBuilder.toString(), getFilePath(mContext), cpuFileName);
} }
private void writeMemoryDataIntoFile() { private void writeMemoryDataIntoFile() {
...@@ -344,7 +337,7 @@ public class PerformanceDataManager { ...@@ -344,7 +337,7 @@ public class PerformanceDataManager {
stringBuilder.append(mLastMemoryInfo); stringBuilder.append(mLastMemoryInfo);
stringBuilder.append(" "); stringBuilder.append(" ");
stringBuilder.append(simpleDateFormat.format(new Date(System.currentTimeMillis()))); stringBuilder.append(simpleDateFormat.format(new Date(System.currentTimeMillis())));
FileManager.writeTxtToFile(stringBuilder.toString(), filePath, memoryFileName); FileManager.writeTxtToFile(stringBuilder.toString(), getFilePath(mContext), memoryFileName);
} }
private void writeFpsDataIntoFile() { private void writeFpsDataIntoFile() {
...@@ -352,7 +345,7 @@ public class PerformanceDataManager { ...@@ -352,7 +345,7 @@ public class PerformanceDataManager {
stringBuilder.append(mLastFrameRate); stringBuilder.append(mLastFrameRate);
stringBuilder.append(" "); stringBuilder.append(" ");
stringBuilder.append(simpleDateFormat.format(new Date(System.currentTimeMillis()))); stringBuilder.append(simpleDateFormat.format(new Date(System.currentTimeMillis())));
FileManager.writeTxtToFile(stringBuilder.toString(), filePath, fpsFileName); FileManager.writeTxtToFile(stringBuilder.toString(), getFilePath(mContext), fpsFileName);
} }
private float getCPUData() { private float getCPUData() {
...@@ -456,19 +449,19 @@ public class PerformanceDataManager { ...@@ -456,19 +449,19 @@ public class PerformanceDataManager {
} }
public String getCpuFilePath() { public String getCpuFilePath() {
return filePath + cpuFileName; return getFilePath(mContext) + cpuFileName;
} }
public String getMemoryFilePath() { public String getMemoryFilePath() {
return filePath + memoryFileName; return getFilePath(mContext) + memoryFileName;
} }
public String getFpsFilePath() { public String getFpsFilePath() {
return filePath + fpsFileName; return getFilePath(mContext) + fpsFileName;
} }
public String getCustomFilePath() { public String getCustomFilePath() {
return filePath + customFileName; return getFilePath(mContext) + customFileName;
} }
public long getLastFrameRate() { public long getLastFrameRate() {
return mLastFrameRate; return mLastFrameRate;
......
...@@ -41,6 +41,12 @@ public class PerformanceFragment extends BaseFragment { ...@@ -41,6 +41,12 @@ public class PerformanceFragment extends BaseFragment {
return R.layout.dk_fragment_cpu_cache_log; return R.layout.dk_fragment_cpu_cache_log;
} }
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PerformanceDataManager.getInstance().init(getContext());
}
@Override @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
......
...@@ -18,6 +18,8 @@ import com.didichuxing.doraemonkit.ui.KitFloatPage; ...@@ -18,6 +18,8 @@ import com.didichuxing.doraemonkit.ui.KitFloatPage;
import com.didichuxing.doraemonkit.ui.base.BaseFragment; import com.didichuxing.doraemonkit.ui.base.BaseFragment;
import com.didichuxing.doraemonkit.ui.base.FloatPageManager; import com.didichuxing.doraemonkit.ui.base.FloatPageManager;
import com.didichuxing.doraemonkit.ui.base.PageIntent; import com.didichuxing.doraemonkit.ui.base.PageIntent;
import com.didichuxing.doraemonkit.ui.dialog.DialogInfo;
import com.didichuxing.doraemonkit.ui.dialog.SimpleDialogListener;
import com.didichuxing.doraemonkit.ui.realtime.OnFloatPageChangeListener; import com.didichuxing.doraemonkit.ui.realtime.OnFloatPageChangeListener;
import com.didichuxing.doraemonkit.ui.realtime.RealTimeChartIconPage; import com.didichuxing.doraemonkit.ui.realtime.RealTimeChartIconPage;
import com.didichuxing.doraemonkit.ui.realtime.RealTimeChartPage; import com.didichuxing.doraemonkit.ui.realtime.RealTimeChartPage;
...@@ -91,15 +93,43 @@ public class MonitorDataUploadFragment extends BaseFragment implements OnFloatPa ...@@ -91,15 +93,43 @@ public class MonitorDataUploadFragment extends BaseFragment implements OnFloatPa
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (mCommitButton.getText().equals(getString(R.string.dk_platform_monitor_data_button_stop))) { if (mCommitButton.getText().equals(getString(R.string.dk_platform_monitor_data_button_stop))) {
mCommitButton.setText(R.string.dk_platform_monitor_data_button); DialogInfo dialogInfo = new DialogInfo();
PerformanceDataManager.getInstance().stopUploadMonitorData(); dialogInfo.title = getString(R.string.dk_platform_monitor_data_button_stop);
FloatPageManager.getInstance().removeAll(RealTimePerformDataFloatPage.class); dialogInfo.listener = new SimpleDialogListener() {
@Override
public boolean onPositive() {
mCommitButton.setText(R.string.dk_platform_monitor_data_button);
PerformanceDataManager.getInstance().stopUploadMonitorData();
FloatPageManager.getInstance().removeAll(RealTimePerformDataFloatPage.class);
return true;
}
@Override
public boolean onNegative() {
return true;
}
};
showDialog(dialogInfo);
} else { } else {
mCommitButton.setText(R.string.dk_platform_monitor_data_button_stop); DialogInfo dialogInfo = new DialogInfo();
PerformanceDataManager.getInstance().startUploadMonitorData(); dialogInfo.title = getString(R.string.dk_platform_monitor_data_button);
PageIntent pageIntent = new PageIntent(RealTimePerformDataFloatPage.class); dialogInfo.listener = new SimpleDialogListener() {
pageIntent.mode = PageIntent.MODE_SINGLE_INSTANCE; @Override
FloatPageManager.getInstance().add(pageIntent); public boolean onPositive() {
mCommitButton.setText(R.string.dk_platform_monitor_data_button_stop);
PerformanceDataManager.getInstance().startUploadMonitorData();
PageIntent pageIntent = new PageIntent(RealTimePerformDataFloatPage.class);
pageIntent.mode = PageIntent.MODE_SINGLE_INSTANCE;
FloatPageManager.getInstance().add(pageIntent);
return true;
}
@Override
public boolean onNegative() {
return true;
}
};
showDialog(dialogInfo);
} }
} }
}); });
......
...@@ -19,13 +19,9 @@ import java.io.BufferedReader; ...@@ -19,13 +19,9 @@ import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.TreeMap; import java.util.TreeMap;
public class PageDataFragment extends BaseFragment { public class PageDataFragment extends BaseFragment {
...@@ -37,6 +33,12 @@ public class PageDataFragment extends BaseFragment { ...@@ -37,6 +33,12 @@ public class PageDataFragment extends BaseFragment {
return R.layout.dk_fragment_monitor_pagedata; return R.layout.dk_fragment_monitor_pagedata;
} }
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PerformanceDataManager.getInstance().init(getContext());
}
@Override @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
......
...@@ -49,6 +49,7 @@ public class RealTimePerformDataFloatPage extends BaseFloatPage implements Touch ...@@ -49,6 +49,7 @@ public class RealTimePerformDataFloatPage extends BaseFloatPage implements Touch
mHandler.sendEmptyMessageDelayed(UPDATE_DATA_WHAT, 1000); mHandler.sendEmptyMessageDelayed(UPDATE_DATA_WHAT, 1000);
} }
}; };
PerformanceDataManager.getInstance().init(context);
} }
@Override @Override
......
...@@ -6,7 +6,6 @@ import android.support.annotation.Nullable; ...@@ -6,7 +6,6 @@ import android.support.annotation.Nullable;
import android.view.View; import android.view.View;
import com.didichuxing.doraemonkit.R; import com.didichuxing.doraemonkit.R;
import com.didichuxing.doraemonkit.config.PerformanceInfoConfig;
import com.didichuxing.doraemonkit.constant.BundleKey; import com.didichuxing.doraemonkit.constant.BundleKey;
import com.didichuxing.doraemonkit.kit.parameter.AbsParameterFragment; import com.didichuxing.doraemonkit.kit.parameter.AbsParameterFragment;
import com.didichuxing.doraemonkit.kit.common.PerformanceDataManager; import com.didichuxing.doraemonkit.kit.common.PerformanceDataManager;
......
...@@ -27,9 +27,7 @@ public class HandlerHooker { ...@@ -27,9 +27,7 @@ public class HandlerHooker {
hookInstrumentation(); hookInstrumentation();
isHookSucceed = true; isHookSucceed = true;
} catch (Exception e) { } catch (Exception e) {
if (DEBUG) { e.printStackTrace();
LogHelper.e(TAG, e.toString());
}
} }
} }
......
...@@ -87,7 +87,11 @@ public class ViewBorderFrameLayout extends FrameLayout { ...@@ -87,7 +87,11 @@ public class ViewBorderFrameLayout extends FrameLayout {
new ViewBorderDrawable(view) new ViewBorderDrawable(view)
}); });
} }
view.setBackground(newDrawable); try {
view.setBackground(newDrawable);
} catch (UnsupportedOperationException e) {
e.printStackTrace();
}
} }
private void clearChild(View view) { private void clearChild(View view) {
......
...@@ -38,6 +38,12 @@ public class RealTimeChartIconPage extends BaseFloatPage implements View.OnClick ...@@ -38,6 +38,12 @@ public class RealTimeChartIconPage extends BaseFloatPage implements View.OnClick
return imageView; return imageView;
} }
@Override
protected void onCreate(Context context) {
super.onCreate(context);
PerformanceDataManager.getInstance().init(getContext());
}
@Override @Override
protected void onViewCreated(View view) { protected void onViewCreated(View view) {
super.onViewCreated(view); super.onViewCreated(view);
......
...@@ -3,7 +3,7 @@ apply plugin: 'com.novoda.bintray-release' ...@@ -3,7 +3,7 @@ apply plugin: 'com.novoda.bintray-release'
publish { publish {
def groupProjectID = 'com.didichuxing.doraemonkit' def groupProjectID = 'com.didichuxing.doraemonkit'
def artifactProjectID = 'doraemonkit' def artifactProjectID = 'doraemonkit'
def publishVersionID = '1.1.8' def publishVersionID = '1.2.0'
userOrg = 'doraemonkit' userOrg = 'doraemonkit'
repoName = 'DoraemonKit' repoName = 'DoraemonKit'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册