提交 ae879d82 编写于 作者: J jackjintai

modify:

1、优化日志输出和GPS H5地图定位功能
上级 892cb6dd
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
window['map'] = map; window['map'] = map;
//移动地图中心位置 //移动地图中心位置
map.panBy(120, 180); map.panBy(120, 150);
//创建marker //创建marker
var marker = new qq.maps.Marker({ var marker = new qq.maps.Marker({
position: center, position: center,
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
var map = window['map']; var map = window['map'];
map.setCenter(center); map.setCenter(center);
//移动地图中心位置 //移动地图中心位置
map.panBy(120, 180); map.panBy(120, 150);
} }
if(window['marker']){ if(window['marker']){
......
...@@ -12,9 +12,11 @@ import android.text.TextWatcher; ...@@ -12,9 +12,11 @@ import android.text.TextWatcher;
import android.view.View; import android.view.View;
import android.webkit.WebView; import android.webkit.WebView;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.blankj.utilcode.util.ToastUtils;
import com.didichuxing.doraemonkit.R; import com.didichuxing.doraemonkit.R;
import com.didichuxing.doraemonkit.config.GpsMockConfig; import com.didichuxing.doraemonkit.config.GpsMockConfig;
import com.didichuxing.doraemonkit.model.LatLng; import com.didichuxing.doraemonkit.model.LatLng;
...@@ -32,6 +34,7 @@ import java.util.List; ...@@ -32,6 +34,7 @@ import java.util.List;
/** /**
* Created by wanglikun on 2018/9/20. * Created by wanglikun on 2018/9/20.
* gps mock
*/ */
public class GpsMockFragment extends BaseFragment implements SettingItemAdapter.OnSettingItemSwitchListener, MyWebViewClient.InvokeListener { public class GpsMockFragment extends BaseFragment implements SettingItemAdapter.OnSettingItemSwitchListener, MyWebViewClient.InvokeListener {
...@@ -40,10 +43,13 @@ public class GpsMockFragment extends BaseFragment implements SettingItemAdapter. ...@@ -40,10 +43,13 @@ public class GpsMockFragment extends BaseFragment implements SettingItemAdapter.
private HomeTitleBar mTitleBar; private HomeTitleBar mTitleBar;
private RecyclerView mSettingList; private RecyclerView mSettingList;
private SettingItemAdapter mSettingItemAdapter; private SettingItemAdapter mSettingItemAdapter;
private EditText mLongitude; // private EditText mLongitude;
private EditText mLatitude; // private EditText mLatitude;
private TextView mMockLocationBtn; // private TextView mMockLocationBtn;
private ImageView mIvSearch;
private EditText mEdLongLat;
private MyWebView mWebView; private MyWebView mWebView;
private boolean isInit = true;
@Override @Override
public void onCreate(@Nullable Bundle savedInstanceState) { public void onCreate(@Nullable Bundle savedInstanceState) {
...@@ -72,77 +78,64 @@ public class GpsMockFragment extends BaseFragment implements SettingItemAdapter. ...@@ -72,77 +78,64 @@ public class GpsMockFragment extends BaseFragment implements SettingItemAdapter.
} }
private void initMockLocationArea() { private void initMockLocationArea() {
mLongitude = findViewById(R.id.longitude); mEdLongLat = findViewById(R.id.ed_long_lat);
mLatitude = findViewById(R.id.latitude); mIvSearch = findViewById(R.id.iv_search);
mLatitude.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (checkInput()) {
mMockLocationBtn.setEnabled(true);
} else {
mMockLocationBtn.setEnabled(false);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
mLongitude.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (checkInput()) {
mMockLocationBtn.setEnabled(true);
} else {
mMockLocationBtn.setEnabled(false);
}
}
@Override
public void afterTextChanged(Editable s) {
} mIvSearch.setOnClickListener(new View.OnClickListener() {
});
mMockLocationBtn = findViewById(R.id.mock_location);
mMockLocationBtn.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (!checkInput()) { if (!checkInput()) {
return; return;
} }
double latitude = Double.valueOf(mLatitude.getText().toString()); String strLongLat = mEdLongLat.getText().toString();
double longitude = Double.valueOf(mLongitude.getText().toString()); String[] longAndLat = strLongLat.split(" ");
double longitude, latitude;
try {
longitude = Double.valueOf(longAndLat[0]);
latitude = Double.valueOf(longAndLat[1]);
} catch (Exception e) {
ToastUtils.showShort("经纬度必须为数字");
return;
}
GpsMockManager.getInstance().mockLocation(latitude, longitude); GpsMockManager.getInstance().mockLocation(latitude, longitude);
GpsMockConfig.saveMockLocation(getContext(), new LatLng(latitude, longitude)); GpsMockConfig.saveMockLocation(getContext(), new LatLng(latitude, longitude));
//刷新地图 //刷新地图
String url = String.format("javascript:updateLocation(%s,%s)", latitude, longitude); String url = String.format("javascript:updateLocation(%s,%s)", latitude, longitude);
mWebView.loadUrl(url); mWebView.loadUrl(url);
//WebUtil.webViewLoadLocalHtml(mWebView, "html/map.html"); ToastUtils.showShort(getString(R.string.dk_gps_location_change_toast, "" + longitude, "" + latitude));
Toast.makeText(getContext(), getString(R.string.dk_gps_location_change_toast, mLatitude.getText(), mLongitude.getText()), Toast.LENGTH_SHORT).show();
} }
}); });
} }
private boolean checkInput() { private boolean checkInput() {
if (TextUtils.isEmpty(mLongitude.getText().toString())) { String strLongLat = mEdLongLat.getText().toString();
if (TextUtils.isEmpty(strLongLat)) {
ToastUtils.showShort("请输入经纬度");
return false; return false;
} }
if (TextUtils.isEmpty(mLatitude.getText().toString())) { String[] longAndLat = strLongLat.split(" ");
if (longAndLat.length != 2) {
ToastUtils.showShort("请输入符合规范的经纬度格式");
return false; return false;
} }
double longitude = Double.valueOf(mLongitude.getText().toString());
double latitude = Double.valueOf(mLatitude.getText().toString()); if (TextUtils.isEmpty(longAndLat[0])) {
return false;
}
if (TextUtils.isEmpty(longAndLat[1])) {
return false;
}
double longitude, latitude;
try {
longitude = Double.valueOf(longAndLat[0]);
latitude = Double.valueOf(longAndLat[1]);
} catch (Exception e) {
ToastUtils.showShort("经纬度必须为数字");
return false;
}
if (longitude > 180 || longitude < -180) { if (longitude > 180 || longitude < -180) {
return false; return false;
} }
...@@ -210,7 +203,24 @@ public class GpsMockFragment extends BaseFragment implements SettingItemAdapter. ...@@ -210,7 +203,24 @@ public class GpsMockFragment extends BaseFragment implements SettingItemAdapter.
if (TextUtils.isEmpty(lat) && TextUtils.isEmpty(lnt)) { if (TextUtils.isEmpty(lat) && TextUtils.isEmpty(lnt)) {
return; return;
} }
mLatitude.setText(lat); mEdLongLat.setText(String.format("%s %s", lnt, lat));
mLongitude.setText(lnt); if (!isInit) {
double longitude, latitude;
try {
//保存当前的经纬度
longitude = Double.valueOf(lnt);
latitude = Double.valueOf(lat);
} catch (Exception e) {
ToastUtils.showShort("经纬度必须为数字");
return;
}
GpsMockManager.getInstance().mockLocation(latitude, longitude);
GpsMockConfig.saveMockLocation(getContext(), new LatLng(latitude, longitude));
ToastUtils.showShort(getString(R.string.dk_gps_location_change_toast, "" + longitude, "" + latitude));
}
isInit = false;
} }
} }
\ No newline at end of file
...@@ -46,7 +46,7 @@ import java.util.Arrays; ...@@ -46,7 +46,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* 数据mock 详情页 * 数据mock 相关设置 详情页
*/ */
public class NetWorkMockFragment extends BaseFragment { public class NetWorkMockFragment extends BaseFragment {
private String projectId = DokitConstant.PRODUCT_ID; private String projectId = DokitConstant.PRODUCT_ID;
......
...@@ -12,74 +12,134 @@ ...@@ -12,74 +12,134 @@
app:dkIcon="@drawable/dk_close_icon_big" app:dkIcon="@drawable/dk_close_icon_big"
app:dkTitle="@string/dk_kit_gps_mock" /> app:dkTitle="@string/dk_kit_gps_mock" />
<FrameLayout
<android.support.v7.widget.RecyclerView
android:id="@+id/setting_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/title_bar" />
<com.didichuxing.doraemonkit.ui.widget.webview.MyWebView
android:id="@+id/web_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@id/setting_list" /> android:layout_below="@id/title_bar">
<RelativeLayout <com.didichuxing.doraemonkit.ui.widget.webview.MyWebView
android:id="@+id/mock_location_area" android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/setting_list"
android:layout_marginLeft="40dp"
android:layout_marginTop="25dp"
android:layout_marginRight="40dp"
android:background="@color/dk_color_EFFFFFFF"
android:padding="5dp">
<TextView
android:id="@+id/mock_location"
style="@style/DK.ConfirmButton.Positive"
android:layout_width="50dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:enabled="false"
android:text="@string/dk_gpsmock_tv_location" />
<EditText
android:id="@+id/longitude"
style="@style/DK.Input"
android:layout_marginRight="15dp"
android:layout_toLeftOf="@id/mock_location"
android:hint="@string/dk_gpsmock_hint_longitude"
android:inputType="numberSigned|numberDecimal" />
<View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="2px" android:layout_height="match_parent" />
android:layout_below="@id/longitude"
android:layout_marginRight="15dp" <LinearLayout
android:layout_toLeftOf="@id/mock_location"
android:background="@color/dk_color_E5E5E5" />
<EditText
android:id="@+id/latitude"
style="@style/DK.Input"
android:layout_below="@id/longitude"
android:layout_marginTop="5dp"
android:layout_marginRight="15dp"
android:layout_toLeftOf="@id/mock_location"
android:hint="@string/dk_gpsmock_hint_latitude"
android:inputType="numberSigned|numberDecimal" />
<View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="2px" android:layout_height="wrap_content"
android:layout_below="@id/latitude" android:layout_marginLeft="@dimen/dk_dp_5"
android:layout_marginRight="15dp" android:layout_marginTop="10dp"
android:layout_toLeftOf="@id/mock_location" android:layout_marginRight="@dimen/dk_dp_5"
android:background="@color/dk_color_E5E5E5" /> android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/setting_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/dk_color_FFFFFF"
android:orientation="vertical"
android:paddingLeft="@dimen/dk_dp_15"
android:paddingTop="10dp"
android:paddingRight="@dimen/dk_dp_15"
android:paddingBottom="10dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<ImageView
android:id="@+id/iv_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/dk_search_icon" />
<EditText
android:id="@+id/ed_long_lat"
style="@style/DK.Input"
android:layout_marginRight="15dp"
android:layout_toLeftOf="@id/iv_search"
android:hint="@string/dk_gpsmock_hint_longlat" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:background="@color/dk_color_E5E5E5" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(示例:120.15 30.28)"
android:textColor="#cfcfcf"
android:textSize="14sp" />
</LinearLayout>
<!-- <RelativeLayout-->
<!-- android:id="@+id/mock_location_area"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="10dp"-->
<!-- android:background="@color/dk_color_FFFFFF"-->
<!-- android:padding="5dp">-->
<!-- <TextView-->
<!-- android:id="@+id/mock_location"-->
<!-- style="@style/DK.ConfirmButton.Positive"-->
<!-- android:layout_width="50dp"-->
<!-- android:layout_alignParentRight="true"-->
<!-- android:layout_centerVertical="true"-->
<!-- android:layout_marginRight="15dp"-->
<!-- android:enabled="false"-->
<!-- android:text="@string/dk_gpsmock_tv_location" />-->
<!-- <EditText-->
<!-- android:id="@+id/longitude"-->
<!-- style="@style/DK.Input"-->
<!-- android:layout_marginRight="15dp"-->
<!-- android:layout_toLeftOf="@id/mock_location"-->
<!-- android:hint="@string/dk_gpsmock_hint_longitude"-->
<!-- android:inputType="numberSigned|numberDecimal" />-->
<!-- <View-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="2px"-->
<!-- android:layout_below="@id/longitude"-->
<!-- android:layout_marginRight="15dp"-->
<!-- android:layout_toLeftOf="@id/mock_location"-->
<!-- android:background="@color/dk_color_E5E5E5" />-->
<!-- <EditText-->
<!-- android:id="@+id/latitude"-->
<!-- style="@style/DK.Input"-->
<!-- android:layout_below="@id/longitude"-->
<!-- android:layout_marginTop="5dp"-->
<!-- android:layout_marginRight="15dp"-->
<!-- android:layout_toLeftOf="@id/mock_location"-->
<!-- android:hint="@string/dk_gpsmock_hint_latitude"-->
<!-- android:inputType="numberSigned|numberDecimal" />-->
<!-- <View-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="2px"-->
<!-- android:layout_below="@id/latitude"-->
<!-- android:layout_marginRight="15dp"-->
<!-- android:layout_toLeftOf="@id/mock_location"-->
<!-- android:background="@color/dk_color_E5E5E5" />-->
<!-- </RelativeLayout>-->
</LinearLayout>
</FrameLayout>
</RelativeLayout>
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -118,8 +118,9 @@ ...@@ -118,8 +118,9 @@
<string name="dk_web_door_clear_history">Clear History</string> <string name="dk_web_door_clear_history">Clear History</string>
<string name="dk_gpsmock_tv_location">Mock</string> <string name="dk_gpsmock_tv_location">Mock</string>
<string name="dk_gpsmock_hint_latitude">Input latitude</string>
<string name="dk_gpsmock_hint_longitude">Input longitude</string>
<string name="dk_gpsmock_hint_longlat">Please Input latitude and longitude</string>
<!--卡顿检测--> <!--卡顿检测-->
<string name="dk_kit_block_monitor">ANR Check</string> <string name="dk_kit_block_monitor">ANR Check</string>
...@@ -168,7 +169,7 @@ ...@@ -168,7 +169,7 @@
<string name="dk_frameinfo_ram">RAM</string> <string name="dk_frameinfo_ram">RAM</string>
<string name="dk_kit_network_monitor">Network Monitor</string> <string name="dk_kit_network_monitor">Network Monitor</string>
<string name="dk_float_permission_toast">DoraemonKit need draw over other app permission</string> <string name="dk_float_permission_toast">DoraemonKit need draw over other app permission</string>
<string name="dk_gps_location_change_toast">Location changed: %1$s, %2$s</string> <string name="dk_gps_location_change_toast">Location changed: %1$s , %2$s</string>
<string name="dk_view_check_info_size">View Size:width%1$d,height%2$d</string> <string name="dk_view_check_info_size">View Size:width%1$d,height%2$d</string>
<string name="dk_view_check_info_desc">View Background:%1$s</string> <string name="dk_view_check_info_desc">View Background:%1$s</string>
<string name="dk_view_check_info_padding">View Padding:%1$d, %2$d, %3$d, %4$d</string> <string name="dk_view_check_info_padding">View Padding:%1$d, %2$d, %3$d, %4$d</string>
......
...@@ -120,8 +120,8 @@ ...@@ -120,8 +120,8 @@
<string name="dk_gpsmock_open">开启模拟定位</string> <string name="dk_gpsmock_open">开启模拟定位</string>
<string name="dk_gpsmock_tv_location">模拟</string> <string name="dk_gpsmock_tv_location">模拟</string>
<string name="dk_gpsmock_hint_latitude">输入纬度</string>
<string name="dk_gpsmock_hint_longitude">输入经</string> <string name="dk_gpsmock_hint_longlat">请输入经纬</string>
<!--卡顿检测--> <!--卡顿检测-->
<string name="dk_kit_block_monitor">卡顿检测</string> <string name="dk_kit_block_monitor">卡顿检测</string>
...@@ -168,7 +168,7 @@ ...@@ -168,7 +168,7 @@
<string name="dk_frameinfo_ram">RAM</string> <string name="dk_frameinfo_ram">RAM</string>
<string name="dk_kit_network_monitor">流量监控</string> <string name="dk_kit_network_monitor">流量监控</string>
<string name="dk_float_permission_toast">哆啦A梦需要打开悬浮窗权限才能正常使用</string> <string name="dk_float_permission_toast">哆啦A梦需要打开悬浮窗权限才能正常使用</string>
<string name="dk_gps_location_change_toast">地址变为: %1$s, %2$s</string> <string name="dk_gps_location_change_toast">地址变为: %1$s , %2$s</string>
<string name="dk_view_check_info_desc">背景颜色:%1$s</string> <string name="dk_view_check_info_desc">背景颜色:%1$s</string>
<string name="dk_view_check_info_padding">内边距:%1$d, %2$d, %3$d, %4$d</string> <string name="dk_view_check_info_padding">内边距:%1$d, %2$d, %3$d, %4$d</string>
<string name="dk_view_check_info_margin">外边距:%1$d, %2$d, %3$d, %4$d</string> <string name="dk_view_check_info_margin">外边距:%1$d, %2$d, %3$d, %4$d</string>
......
...@@ -117,8 +117,9 @@ ...@@ -117,8 +117,9 @@
<string name="dk_gpsmock_open">開啟模擬定位</string> <string name="dk_gpsmock_open">開啟模擬定位</string>
<string name="dk_gpsmock_tv_location">模擬地址</string> <string name="dk_gpsmock_tv_location">模擬地址</string>
<string name="dk_gpsmock_hint_latitude">輸入緯度 (Lat)</string>
<string name="dk_gpsmock_hint_longitude">輸入經度 (Lng)</string>
<string name="dk_gpsmock_hint_longlat">請輸入經緯度</string>
<!--卡頓檢測--> <!--卡頓檢測-->
<string name="dk_kit_block_monitor">ANR 檢測</string> <string name="dk_kit_block_monitor">ANR 檢測</string>
...@@ -166,7 +167,7 @@ ...@@ -166,7 +167,7 @@
<string name="dk_kit_network_monitor">流量監控</string> <string name="dk_kit_network_monitor">流量監控</string>
<string name="dk_data_clean_toast">清除系統資料</string> <string name="dk_data_clean_toast">清除系統資料</string>
<string name="dk_float_permission_toast">哆啦A夢需要打開懸浮視窗權限才能正常使用</string> <string name="dk_float_permission_toast">哆啦A夢需要打開懸浮視窗權限才能正常使用</string>
<string name="dk_gps_location_change_toast">地址變為: %1$s, %2$s</string> <string name="dk_gps_location_change_toast">地址變為: %1$s , %2$s</string>
<string name="dk_view_check_info_desc">背景顏色:%1$s</string> <string name="dk_view_check_info_desc">背景顏色:%1$s</string>
<string name="dk_view_check_info_padding">內邊距:%1$d, %2$d, %3$d, %4$d</string> <string name="dk_view_check_info_padding">內邊距:%1$d, %2$d, %3$d, %4$d</string>
<string name="dk_view_check_info_margin">外邊距:%1$d, %2$d, %3$d, %4$d</string> <string name="dk_view_check_info_margin">外邊距:%1$d, %2$d, %3$d, %4$d</string>
......
...@@ -124,8 +124,7 @@ ...@@ -124,8 +124,7 @@
<string name="dk_gpsmock_open">开启模拟定位</string> <string name="dk_gpsmock_open">开启模拟定位</string>
<string name="dk_gpsmock_tv_location">模拟</string> <string name="dk_gpsmock_tv_location">模拟</string>
<string name="dk_gpsmock_hint_latitude">输入纬度</string> <string name="dk_gpsmock_hint_longlat">请输入经纬度</string>
<string name="dk_gpsmock_hint_longitude">输入经度</string>
<!--卡顿检测--> <!--卡顿检测-->
<string name="dk_kit_block_monitor">卡顿检测</string> <string name="dk_kit_block_monitor">卡顿检测</string>
...@@ -227,7 +226,7 @@ ...@@ -227,7 +226,7 @@
<string name="dk_float_permission_toast">哆啦A梦需要打开悬浮窗权限才能正常使用</string> <string name="dk_float_permission_toast">哆啦A梦需要打开悬浮窗权限才能正常使用</string>
<string name="dk_gps_location_change_toast">地址变为: %1$s, %2$s</string> <string name="dk_gps_location_change_toast">地址变为: %1$s , %2$s</string>
<string name="dk_layout_level">布局层级</string> <string name="dk_layout_level">布局层级</string>
......
...@@ -164,7 +164,7 @@ ...@@ -164,7 +164,7 @@
<style name="DK.Input"> <style name="DK.Input">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">36dp</item> <item name="android:layout_height">wrap_content</item>
<item name="android:gravity">center_vertical|left</item> <item name="android:gravity">center_vertical|left</item>
<item name="android:textColor">@color/dk_color_333333</item> <item name="android:textColor">@color/dk_color_333333</item>
<item name="android:textColorHint">@color/dk_color_CCCCCC</item> <item name="android:textColorHint">@color/dk_color_CCCCCC</item>
......
...@@ -59,7 +59,7 @@ DoraemonKit 是一个功能集合面板,能够让每一个 App 快速接入一 ...@@ -59,7 +59,7 @@ DoraemonKit 是一个功能集合面板,能够让每一个 App 快速接入一
1. **【帧率】** App 帧率信息提供波形图查看功能,让帧率监控的趋势更加明显; 1. **【帧率】** App 帧率信息提供波形图查看功能,让帧率监控的趋势更加明显;
2. **【CPU】** App CPU 使用率信息提供波形图查看功能,让 CPU 监控的趋势更加形象; 2. **【CPU】** App CPU 使用率信息提供波形图查看功能,让 CPU 监控的趋势更加形象;
3. **【内存】** App 内存使用量信息提供波形图查看功能,让内存监控的趋势更加鲜明; 3. **【内存】** App 内存使用量信息提供波形图查看功能,让内存监控的趋势更加鲜明;
4. **【流量】** 拦截 App 内部流量信息,提供波形图展示、流量概要展示、流量列表展示、流量筛选、流量详情,对流量信息统一拦截,成为我们 App 中自带的 “Charles” 4. **【流量】** 拦截 App 内部流量信息,提供波形图展示、流量概要展示、流量列表展示、流量筛选、流量详情,对流量信息统一拦截,成为我们 App 中自带的 "Charles"
5. **【卡顿】** 锁定 App 出现卡顿的时刻,打印出对应的代码调用堆栈; 5. **【卡顿】** 锁定 App 出现卡顿的时刻,打印出对应的代码调用堆栈;
6. **【大图检测】** 通过流量监测,找出所有的大小超标的图片,避免下载大图造成的流量浪费和渲染大图带来的CPU消耗。 6. **【大图检测】** 通过流量监测,找出所有的大小超标的图片,避免下载大图造成的流量浪费和渲染大图带来的CPU消耗。
7. **【自定义】** 可以选择你要监控的选项,包括 FPS、CPU、内存、流量。监控完毕之后,把数据保存到本地,按照页面进行维度进行分析; 7. **【自定义】** 可以选择你要监控的选项,包括 FPS、CPU、内存、流量。监控完毕之后,把数据保存到本地,按照页面进行维度进行分析;
...@@ -185,7 +185,20 @@ DoraemonKit 基于 Apache-2.0 协议进行分发和使用,更多信息参见 [ ...@@ -185,7 +185,20 @@ DoraemonKit 基于 Apache-2.0 协议进行分发和使用,更多信息参见 [
iOS上传代码详见DoraemonStatisticsUtil类中的实现 iOS上传代码详见DoraemonStatisticsUtil类中的实现
Andoid上传代码详见DoraemonStatisticsUtil类中的实现 **以下为Android端所有涉及到网络请求的部分**
1、统计有多少人集成了dokit
DoraemonStatisticsUtil#uploadUserInfo
2、统计每个内置kit的使用情况
DataPickManager#realPost
3、上传健康体检的相关数据
AppHealthInfoUtil#post
4、数据mock的相关网络请求
NetWorkMockFragment 里涉及到接口mock的相关网络请求
敬请各位用户知晓。 敬请各位用户知晓。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册