Skip to content

Commit 17b4e59

Browse files
authored
Merge pull request #1006 from didi/feature/reanlone_mc_001
Feature/reanlone mc 001
2 parents 5d36698 + 7be8934 commit 17b4e59

File tree

286 files changed

+8380
-4767
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

286 files changed

+8380
-4767
lines changed

Android/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,8 @@ public class DoKit private constructor() {
480480
}
481481
}
482482
```
483+
开启插件调试
484+
./gradlew :app:assembleDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true
483485

484486

485487
#### 5. FAQ

Android/app/build.gradle

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@ android {
145145

146146
dependencies {
147147
implementation fileTree(dir: 'libs', include: ['*.jar'])
148+
149+
implementation project(path: ':dokit-util')
150+
implementation project(path: ':dokit-mc')
151+
implementation project(path: ':dokit-autotest')
152+
implementation project(path: ':dokit-test')
153+
148154
testImplementation rootProject.ext.dependencies["junit"]
149155
implementation rootProject.ext.dependencies["constraintLayout"]
150156
implementation rootProject.ext.dependencies["multidex"]
@@ -212,6 +218,8 @@ dependencies {
212218
debugImplementation rootProject.ext.dependencies["leakcanary_android"]
213219
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
214220
implementation project(":dokit-pthread-hook")
221+
222+
implementation rootProject.ext.dependencies["epic"]
215223
}
216224

217225

Android/app/src/debug/java/com/didichuxing/doraemondemo/App.kt

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import com.didichuxing.doraemonkit.kit.AbstractKit
1919
import com.didichuxing.doraemonkit.kit.core.McClientProcessor
2020
import com.didichuxing.doraemonkit.kit.network.bean.NetworkRecord
2121
import com.didichuxing.doraemonkit.kit.network.okhttp.interceptor.DokitExtInterceptor
22+
import com.didichuxing.doraemonkit.util.LogUtils
2223
import com.facebook.drawee.backends.pipeline.Fresco
2324
import com.facebook.imagepipeline.core.ImagePipelineConfig
2425
import com.lzy.okgo.OkGo
@@ -144,6 +145,32 @@ class App : Application() {
144145

145146
//严格检查模式
146147
//StrictMode.enableDefaults();
148+
149+
com.didichuxing.doraemonkit.util.LogUtils.getConfig()
150+
.setLogSwitch(true)
151+
// 设置是否输出到控制台开关,默认开
152+
.setConsoleSwitch(true)
153+
// 设置 log 全局标签,默认为空,当全局标签不为空时,我们输出的 log 全部为该 tag, 为空时,如果传入的 tag 为空那就显示类名,否则显示 tag
154+
.setGlobalTag("Dokit")
155+
// 设置 log 头信息开关,默认为开
156+
.setLogHeadSwitch(true)
157+
// 打印 log 时是否存到文件的开关,默认关
158+
.setLog2FileSwitch(false)
159+
// 当自定义路径为空时,写入应用的/cache/log/目录中
160+
.setDir("")
161+
// 当文件前缀为空时,默认为"util",即写入文件为"util-MM-dd.txt"
162+
.setFilePrefix("djx-table-log")
163+
// 输出日志是否带边框开关,默认开
164+
.setBorderSwitch(true)
165+
// 一条日志仅输出一条,默认开,为美化 AS 3.1 的 Logcat
166+
.setSingleTagSwitch(false)
167+
// log 的控制台过滤器,和 logcat 过滤器同理,默认 Verbose
168+
.setConsoleFilter(LogUtils.V)
169+
// log 文件过滤器,和 logcat 过滤器同理,默认 Verbose
170+
.setFileFilter(LogUtils.E)
171+
// log 栈深度,默认为 1
172+
.setStackDeep(1)
173+
.stackOffset = 1
147174
}
148175

149176
override fun attachBaseContext(base: Context) {
@@ -155,4 +182,4 @@ class App : Application() {
155182
private const val TAG = "App"
156183
var leakActivity: Activity? = null
157184
}
158-
}
185+
}

Android/app/src/main/AndroidManifest.xml

Lines changed: 18 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,18 @@
88

99
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
1010
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
11-
<uses-permission android:name="android.permission.INTERNET" />
12-
<!--tencent Android Q新增权限,允许应用在后台发起定位,如应用target为Q,请添加此权限 -->
13-
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
14-
<!-- tencent 如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限-->
15-
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
16-
17-
<!--用于进行网络定位-->
18-
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
19-
<!--用于访问GPS定位-->
20-
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
21-
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
22-
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
23-
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
24-
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
25-
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
26-
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
27-
<!--用于读取手机当前的状态-->
28-
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
29-
<!--用于写入缓存数据到扩展存储卡-->
30-
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
31-
<!--用于申请调用A-GPS模块-->
11+
<uses-permission android:name="android.permission.INTERNET" /> <!-- tencent Android Q新增权限,允许应用在后台发起定位,如应用target为Q,请添加此权限 -->
12+
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- tencent 如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限 -->
13+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- 用于进行网络定位 -->
14+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于访问GPS定位 -->
15+
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于获取运营商信息,用于支持提供运营商信息相关的接口 -->
16+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
17+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
18+
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于读取手机当前的状态 -->
19+
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 用于写入缓存数据到扩展存储卡 -->
20+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 用于申请调用A-GPS模块 -->
3221
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
3322

34-
35-
<!-- https://blog.csdn.net/CHS007chs/article/details/85849625
36-
tools:replace="android:allowBackup,android:label"-->
3723
<application
3824
android:name=".App"
3925
android:allowBackup="false"
@@ -43,7 +29,9 @@
4329
android:supportsRtl="true"
4430
android:theme="@style/AppTheme"
4531
tools:ignore="GoogleAppIndexingWarning">
46-
32+
<activity
33+
android:name=".mc.NetMainActivity"
34+
android:exported="false" />
4735
<activity android:name=".WebViewNormalActivity" />
4836
<activity android:name=".WebViewX5Activity" />
4937
<activity android:name=".SecondActivity" />
@@ -53,35 +41,27 @@
5341
<activity android:name="com.amap.api.navi.AmapRouteActivity" />
5442
<activity
5543
android:name=".comm.CommFragmentActivity"
56-
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
57-
<!--高德定位服务-->
44+
android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> <!-- 高德定位服务 -->
5845
<service android:name="com.amap.api.location.APSService" />
5946

6047
<meta-data
6148
android:name="com.amap.api.v2.apikey"
62-
android:value="11f9728ee0c2a141663fc4b784c42a33" />
63-
64-
<!--腾讯定位服务-->
49+
android:value="11f9728ee0c2a141663fc4b784c42a33" /> <!-- 腾讯定位服务 -->
6550
<meta-data
6651
android:name="TencentMapSDK"
67-
android:value="ECSBZ-ZDNCF-4K3J4-JNWQ2-TWW37-XOFNQ" />
68-
<!--百度地图key-->
52+
android:value="ECSBZ-ZDNCF-4K3J4-JNWQ2-TWW37-XOFNQ" /> <!-- 百度地图key -->
6953
<meta-data
7054
android:name="com.baidu.lbsapi.API_KEY"
71-
android:value="UhPZI3aQQ7un6RP8evAkXxFCtlvItawi" />
72-
<!--百度地图定位服务-->
55+
android:value="UhPZI3aQQ7un6RP8evAkXxFCtlvItawi" /> <!-- 百度地图定位服务 -->
7356
<service
7457
android:name="com.baidu.location.f"
7558
android:enabled="true"
76-
android:process=":remote" />
77-
78-
<!-- Dokit targetApi为 29 Android Q时截屏的前台服务-->
59+
android:process=":remote" /> <!-- Dokit targetApi为 29 Android Q时截屏的前台服务 -->
7960
<service
8061
android:name="com.didichuxing.doraemonkit.kit.colorpick.ScreenRecorderService"
8162
android:enabled="true"
8263
android:foregroundServiceType="mediaProjection"
8364
tools:targetApi="q" />
8465
</application>
8566

86-
8767
</manifest>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.didichuxing.doraemondemo.mc;
2+
3+
import java.io.File;
4+
import java.io.InputStream;
5+
6+
/**
7+
* didi Create on 2022/3/17 .
8+
* <p>
9+
* Copyright (c) 2022/3/17 by didiglobal.com.
10+
*
11+
* @author <a href="[email protected]">zhangjun</a>
12+
* @version 1.0
13+
* @Date 2022/3/17 4:54 下午
14+
* @Description 用一句话说明文件功能
15+
*/
16+
17+
public class FileUtils {
18+
19+
/**
20+
* 获取assets目录下的单个文件
21+
* 这种方式只能用于webview加载
22+
* 读取文件夹,直接取路径是不行的
23+
*
24+
* @param fileName 文件夹名
25+
* @return File
26+
*/
27+
public static File getFileFromAssetsFile(String fileName) {
28+
String path = "file:///android_asset/" + fileName;
29+
File file = new File(path);
30+
return file;
31+
}
32+
33+
public static String readString(InputStream inputStream) throws Exception {
34+
int size = inputStream.available();
35+
byte[] buffer = new byte[size];
36+
inputStream.read(buffer, 0, size);
37+
return new String(buffer);
38+
}
39+
}

Android/app/src/main/java/com/didichuxing/doraemondemo/mc/MCActivity.kt

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.didichuxing.doraemondemo.mc
22

3+
import android.content.Intent
34
import android.os.Bundle
45
import android.view.View
56
import android.widget.*
7+
import android.widget.AdapterView.OnItemSelectedListener
68
import androidx.appcompat.app.AlertDialog
79
import androidx.appcompat.app.AppCompatActivity
810
import androidx.fragment.app.Fragment
@@ -25,10 +27,13 @@ class MCActivity : AppCompatActivity() {
2527
super.onCreate(savedInstanceState)
2628
setContentView(R.layout.activity_mc)
2729

30+
findViewById<Button>(R.id.nextPage).setOnClickListener {
31+
startActivity(Intent(this, NetMainActivity::class.java))
32+
}
2833

29-
// btn_webview.setOnClickListener {
30-
// startActivity(Intent(this@MCActivity, WebViewActivity::class.java))
31-
// }
34+
findViewById<Button>(R.id.webPage).setOnClickListener {
35+
startActivity(Intent(this, WebViewActivity::class.java))
36+
}
3237

3338
findViewById<SlideBar>(R.id.unlock_bar).setOnUnlockListener(object :
3439
SlideBar.OnUnlockListener {
@@ -50,6 +55,24 @@ class MCActivity : AppCompatActivity() {
5055

5156
})
5257

58+
val spinner = findViewById<Spinner>(R.id.spinner)
59+
60+
val citis = resources.getStringArray(R.array.city);
61+
val adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, citis)
62+
//第三步:设置下拉列表下拉时的菜单样式
63+
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
64+
spinner.setAdapter(adapter)
65+
spinner.prompt = "测试"
66+
67+
spinner.setOnItemSelectedListener(object : OnItemSelectedListener {
68+
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
69+
ToastUtils.showShort("选择:" + citis[position])
70+
}
71+
72+
override fun onNothingSelected(parent: AdapterView<*>?) {
73+
ToastUtils.showShort("没有选择")
74+
}
75+
})
5376

5477

5578
findViewById<View>(R.id.btn1).setOnClickListener {
@@ -138,4 +161,4 @@ class MCActivity : AppCompatActivity() {
138161
}
139162

140163

141-
}
164+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.didichuxing.doraemondemo.mc;
2+
3+
import android.webkit.WebView;
4+
5+
/**
6+
* didi Create on 2022/3/22 .
7+
* <p>
8+
* Copyright (c) 2022/3/22 by didiglobal.com.
9+
*
10+
* @author <a href="[email protected]">zhangjun</a>
11+
* @version 1.0
12+
* @Date 2022/3/22 7:15 下午
13+
* @Description 用一句话说明文件功能
14+
*/
15+
16+
public class MyProxyWebView {
17+
18+
19+
private WebView webView;
20+
21+
public MyProxyWebView(WebView webView) {
22+
this.webView = webView;
23+
}
24+
25+
public WebView getWebView() {
26+
return webView;
27+
}
28+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.didichuxing.doraemondemo.mc;
2+
3+
import android.content.Context;
4+
import android.util.AttributeSet;
5+
import android.webkit.WebView;
6+
7+
import java.util.Map;
8+
9+
/**
10+
* didi Create on 2022/3/22 .
11+
* <p>
12+
* Copyright (c) 2022/3/22 by didiglobal.com.
13+
*
14+
* @author <a href="[email protected]">zhangjun</a>
15+
* @version 1.0
16+
* @Date 2022/3/22 3:56 下午
17+
* @Description 用一句话说明文件功能
18+
*/
19+
20+
public class MyTestWebView extends WebView {
21+
22+
public MyTestWebView(Context context) {
23+
super(context);
24+
}
25+
26+
public MyTestWebView(Context context, AttributeSet attrs) {
27+
super(context, attrs);
28+
}
29+
30+
public MyTestWebView(Context context, AttributeSet attrs, int defStyleAttr) {
31+
super(context, attrs, defStyleAttr);
32+
}
33+
34+
public MyTestWebView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
35+
super(context, attrs, defStyleAttr, defStyleRes);
36+
}
37+
38+
@Override
39+
public void loadUrl(String url) {
40+
super.loadUrl(url);
41+
}
42+
43+
@Override
44+
public void loadUrl(String url, Map<String, String> additionalHttpHeaders) {
45+
super.loadUrl(url, additionalHttpHeaders);
46+
}
47+
}

0 commit comments

Comments
 (0)