Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
9ed678ee
D
DoraemonKit
项目概览
DiDi
/
DoraemonKit
9 个月 前同步成功
通知
166
Star
19623
Fork
3062
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DoraemonKit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9ed678ee
编写于
9月 26, 2021
作者:
M
momoxiangbei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新四地图定位模拟完成
上级
115cb979
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
75 addition
and
67 deletion
+75
-67
Android/app/build.gradle
Android/app/build.gradle
+7
-3
Android/buildSrc/src/main/kotlin/com/didichuxing/doraemonkit/plugin/classtransformer/CommClassTransformer.kt
...raemonkit/plugin/classtransformer/CommClassTransformer.kt
+34
-34
Android/config.gradle
Android/config.gradle
+6
-6
Android/dokit-dmap/build.gradle
Android/dokit-dmap/build.gradle
+5
-3
Android/dokit-dmap/src/main/java/com/didichuxing/doraemonkit/aop/map/DMapLocationListenerProxy.java
...huxing/doraemonkit/aop/map/DMapLocationListenerProxy.java
+4
-4
Android/dokit-plugin/src/main/kotlin/com/didichuxing/doraemonkit/plugin/classtransformer/CommClassTransformer.kt
...raemonkit/plugin/classtransformer/CommClassTransformer.kt
+14
-14
Android/dokit_module.json
Android/dokit_module.json
+2
-1
Android/settings.gradle
Android/settings.gradle
+2
-2
Android/upload_local.sh
Android/upload_local.sh
+1
-0
未找到文件。
Android/app/build.gradle
浏览文件 @
9ed678ee
...
...
@@ -97,9 +97,12 @@ android {
//dokit ktor pickFirst
// pickFirst 'META-INF/io.netty.versions.properties'
// pickFirst 'META-INF/INDEX.LIST'
pickFirst
'lib/x86_64/libc++_shared.so'
pickFirst
'lib/arm64-v8a/libc++_shared.so'
pickFirst
'lib/armeabi-v7a/libc++_shared.so'
pickFirst
'lib/x86/libc++_shared.so'
pickFirst
'lib/armeabi/libc++_shared.so'
}
}
...
...
@@ -160,7 +163,6 @@ dependencies {
implementation
rootProject
.
ext
.
dependencies
[
"okhttp_v3"
]
implementation
rootProject
.
ext
.
dependencies
[
"okgo"
]
implementation
rootProject
.
ext
.
dependencies
[
"glide"
]
implementation
rootProject
.
ext
.
dependencies
[
"dmap"
]
// implementation rootProject.ext.dependencies["glide_okhttp3"]
kapt
rootProject
.
ext
.
dependencies
[
"glide_compiler"
]
...
...
@@ -195,6 +197,8 @@ dependencies {
// implementation files('libs/BaiduLBS_Android.jar')
//腾讯x5
implementation
rootProject
.
ext
.
dependencies
[
"tbs"
]
//新四地图
implementation
rootProject
.
ext
.
dependencies
[
"dmap"
]
debugImplementation
rootProject
.
ext
.
dependencies
[
"leakcanary_android"
]
implementation
'io.reactivex.rxjava2:rxandroid:2.0.1'
}
...
...
Android/buildSrc/src/main/kotlin/com/didichuxing/doraemonkit/plugin/classtransformer/CommClassTransformer.kt
浏览文件 @
9ed678ee
...
...
@@ -228,19 +228,19 @@ class CommClassTransformer : AbsClassTransformer() {
}
}
//
// 插入新四地图相关字节码
//
if (className == "com.didichuxing.bigdata.dp.locsdk.DIDILocationManager") {
//
// 持续定位和单次定位
//
klass.methods?.filter {
//
it.name == "requestLocationUpdateOnce" || it.name == "requestLocationUpdates"
//
}?.forEach { methodNode ->
//
"${context.projectDir.lastPath()}->hook didi map succeed: ${className}_${methodNode?.name}_${methodNode?.desc}".println()
//
methodNode?.instructions?.insert(createDMapLocationListenerInsnList())
//
}
//
//
// 反注册监听器
//
// todo xueying
//
}
// 插入新四地图相关字节码
if
(
className
==
"com.didichuxing.bigdata.dp.locsdk.DIDILocationManager"
)
{
// 持续定位和单次定位
klass
.
methods
?.
filter
{
it
.
name
==
"requestLocationUpdateOnce"
||
it
.
name
==
"requestLocationUpdates"
}
?.
forEach
{
methodNode
->
"${context.projectDir.lastPath()}->hook didi map succeed: ${className}_${methodNode?.name}_${methodNode?.desc}"
.
println
()
methodNode
?.
instructions
?.
insert
(
createDMapLocationListenerInsnList
())
}
// 反注册监听器
// todo xueying
}
}
...
...
@@ -1011,27 +1011,27 @@ class CommClassTransformer : AbsClassTransformer() {
/**
* 创建新四地图代码指令
*/
//
private fun createDMapLocationListenerInsnList(): InsnList {
//
return with(InsnList()) {
//
//在DIDILocationManager的requestLocationUpdateOnce方法之中插入自定义代理回调类
//
add(TypeInsnNode(NEW, "com/didichuxing/doraemonkit/aop/map/DMapLocationListenerProxy"))
//
add(InsnNode(DUP))
//
//访问第一个参数
//
add(VarInsnNode(ALOAD, 1))
//
add(
//
MethodInsnNode(
//
INVOKESPECIAL,
//
"com/didichuxing/doraemonkit/aop/map/DMapLocationListenerProxy",
//
"<init>",
//
"(Lcom/didichuxing/bigdata/dp/locsdk/DIDILocationListener;)V",
//
false
//
)
//
)
//
//对第一个参数进行重新赋值
//
add(VarInsnNode(ASTORE, 1))
//
this
//
}
//
}
private
fun
createDMapLocationListenerInsnList
():
InsnList
{
return
with
(
InsnList
())
{
//在DIDILocationManager的requestLocationUpdateOnce方法之中插入自定义代理回调类
add
(
TypeInsnNode
(
NEW
,
"com/didichuxing/doraemonkit/aop/map/DMapLocationListenerProxy"
))
add
(
InsnNode
(
DUP
))
//访问第一个参数
add
(
VarInsnNode
(
ALOAD
,
1
))
add
(
MethodInsnNode
(
INVOKESPECIAL
,
"com/didichuxing/doraemonkit/aop/map/DMapLocationListenerProxy"
,
"<init>"
,
"(Lcom/didichuxing/bigdata/dp/locsdk/DIDILocationListener;)V"
,
false
)
)
//对第一个参数进行重新赋值
add
(
VarInsnNode
(
ASTORE
,
1
))
this
}
}
/**
...
...
Android/config.gradle
浏览文件 @
9ed678ee
...
...
@@ -8,7 +8,7 @@ ext {
//1:依赖dokit远程aar运行
run_type
:
0
,
group_id
:
'io.github.didi.dokit'
,
version
:
'3.5.0'
version
:
'3.5.0
.100
'
]
android
=
[
compileSdkVersion
:
29
,
...
...
@@ -21,12 +21,12 @@ ext {
versionCode
:
1
,
versionName
:
"1.0.0"
,
glide_version
:
"4.9.0"
,
//
kotlin_version : "1.3.72",
kotlin_version
:
"1.3.72"
,
// kotlin_version : "1.4.20",
kotlin_version
:
"1.4.32"
,
//
kotlinx_coroutines_version: "1.3.7",
//
kotlin_version : "1.4.32",
kotlinx_coroutines_version:
"1.3.7"
,
// kotlinx_coroutines_version : "1.4.2",
kotlinx_coroutines_version
:
"1.4.3"
,
//
kotlinx_coroutines_version : "1.4.3",
booster_version
:
"4.0.0"
,
agp_module_verson
:
"7.0.0"
,
agp_plugin_verson
:
"4.2.2"
,
...
...
@@ -130,7 +130,7 @@ ext {
"amap_search"
:
'com.amap.api:search:latest.integration'
,
"amap_navi"
:
'com.amap.api:navi-3dmap:latest.integration'
,
//新四地图
"dmap"
:
'com.didi
chuxing.bigdata.dp:didilocsdk:2.8.201
'
,
"dmap"
:
'com.didi
.nav.driving:sdk:0.0.2065
'
,
//腾讯地图定位
"tencent_location"
:
'com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.2.5'
,
"tencent_map"
:
'com.tencent.map:tencent-map-vector-sdk:4.4.0'
,
...
...
Android/dokit-dmap/build.gradle
浏览文件 @
9ed678ee
plugins
{
id
'com.android.library'
}
apply
plugin:
'com.android.library'
apply
plugin:
'kotlin-android'
apply
plugin:
'kotlin-kapt'
apply
from:
'../upload.gradle'
android
{
compileSdkVersion
rootProject
.
ext
.
android
[
"compileSdkVersion"
]
...
...
Android/dokit-dmap/src/main/java/com/didichuxing/doraemonkit/aop/map/DMapLocationListenerProxy.java
浏览文件 @
9ed678ee
...
...
@@ -45,9 +45,9 @@ public class DMapLocationListenerProxy implements DIDILocationListener, DMapLoca
@Override
public
void
onLocationChange
(
Location
location
)
{
DIDILocation
didiLocation
=
new
DIDILocation
(
);
DIDILocation
.
loadFromSystemLoc
(
location
,
ETraceSource
.
cache
,
0
);
// didiLocation.getLatitude(
);
// this.onLocationChanged();
DIDILocation
didiLocation
=
DIDILocation
.
loadFromSystemLoc
(
location
,
ETraceSource
.
cache
,
0
);
if
(
didiLocationListener
!=
null
)
{
didiLocationListener
.
onLocationChanged
(
didiLocation
);
}
}
}
Android/dokit-plugin/src/main/kotlin/com/didichuxing/doraemonkit/plugin/classtransformer/CommClassTransformer.kt
浏览文件 @
9ed678ee
...
...
@@ -228,19 +228,19 @@ class CommClassTransformer : AbsClassTransformer() {
}
}
// // 插入滴滴
地图相关字节码
//
if (className == "com.didichuxing.bigdata.dp.locsdk.DIDILocationManager") {
//
// 持续定位和单次定位
//
klass.methods?.filter {
//
it.name == "requestLocationUpdateOnce" || it.name == "requestLocationUpdates"
//
}?.forEach { methodNode ->
//
"${context.projectDir.lastPath()}->hook didi map succeed: ${className}_${methodNode?.name}_${methodNode?.desc}".println()
//
methodNode?.instructions?.insert(createDMapLocationListenerInsnList())
//
}
//
//
// 反注册监听器
//
// todo xueying
//
}
// 插入新四
地图相关字节码
if
(
className
==
"com.didichuxing.bigdata.dp.locsdk.DIDILocationManager"
)
{
// 持续定位和单次定位
klass
.
methods
?.
filter
{
it
.
name
==
"requestLocationUpdateOnce"
||
it
.
name
==
"requestLocationUpdates"
}
?.
forEach
{
methodNode
->
"${context.projectDir.lastPath()}->hook didi map succeed: ${className}_${methodNode?.name}_${methodNode?.desc}"
.
println
()
methodNode
?.
instructions
?.
insert
(
createDMapLocationListenerInsnList
())
}
// 反注册监听器
// todo xueying
}
}
...
...
@@ -1009,7 +1009,7 @@ class CommClassTransformer : AbsClassTransformer() {
}
/**
* 创建
滴滴
地图代码指令
* 创建
新四
地图代码指令
*/
private
fun
createDMapLocationListenerInsnList
():
InsnList
{
return
with
(
InsnList
())
{
...
...
Android/dokit_module.json
浏览文件 @
9ed678ee
...
...
@@ -12,5 +12,6 @@
"dokit-weex"
:
"dokitx-weex"
,
"dokit-hook"
:
"dokitx-hook"
,
"dokit-rpc"
:
"dokitx-rpc"
,
"dokit-rpc-mc"
:
"dokitx-rpc-mc"
"dokit-rpc-mc"
:
"dokitx-rpc-mc"
,
"dokit-dmap"
:
"dokitx-dmap"
}
Android/settings.gradle
浏览文件 @
9ed678ee
...
...
@@ -9,6 +9,6 @@ include ':dokit-okhttp-api'
include
':dokit-weex'
include
':dokit-no-op'
include
':dokit-plugin'
//
include ':dokit-rpc'
//
include ':dokit-rpc-mc'
include
':dokit-rpc'
include
':dokit-rpc-mc'
include
':dokit-dmap'
// todo xueying
Android/upload_local.sh
浏览文件 @
9ed678ee
...
...
@@ -24,4 +24,5 @@ RES="\033[0m"
./gradlew :dokit-rpc-mc:publish
./gradlew :dokit-util:publish
./gradlew :dokit-weex:publish
./gradlew :dokit-dmap:publish
echo
-e
"
${
GREEN_COLOR
}
本地打包完成!!!
${
RES
}
"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录