提交 9ed678ee 编写于 作者: M momoxiangbei

新四地图定位模拟完成

上级 115cb979
......@@ -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'
}
......
......@@ -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
}
}
/**
......
......@@ -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.didichuxing.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',
......
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"]
......
......@@ -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);
}
}
}
......@@ -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()) {
......
......@@ -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"
}
......@@ -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
......@@ -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.
先完成此消息的编辑!
想要评论请 注册