资讯详情

资讯详情

Android免ROOT虚拟定位工具:4步让地图上的蓝点自己走起来

Android免ROOT虚拟定位工具4步让地图上的蓝点自己走起来【免费下载链接】GoGoGo一个基于 Android 调试 API 百度地图实现的虚拟定位工具并且同时实现了一个可以自由移动的摇杆项目地址: https://gitcode.com/GitHub_Trending/go/GoGoGo上周给一款导航 App 做回归测试用例要求把起点放在某个路口可设备在办公室蓝点纹丝不动。后来发现 GoGoGo一个免ROOT的 Android 虚拟定位工具基于模拟位置调试 API 百度地图能让目标应用读到地图上任意选定的点位。一句话结论能不能解决你的问题一句话判断如果你的任务是让目标应用读到另一个坐标它能做到——不 ROOT、不动系统分区Android 8.0 即可用。✅ 适合验证某个坐标生效后的表现导航、打卡类位置功能的轨迹测试多个固定测试点间反复切换✅ 适合手上只有一组 WGS84 坐标需要快速落到地图上❌ 不适合微信等腾讯系 AppFAQ 原话建议去问一下腾讯Android 8.0 以下未适配校园运动类 App 作弊作者明确不支持环境与最小安装路径前置条件Android 8.0 及以上已打开开发者选项授予精确位置、后台位置与悬浮窗权限联网百度地图瓦片与 POI 搜索需要启动按钮会先检查网络源码编译时JAVA_HOME的 JDK 版本需与 Android Studio 使用的一致6 步跑起来git clone https://gitcode.com/GitHub_Trending/go/GoGoGo拉取源码用 Android Studio 打开工程等 Gradle 同步完成连接设备Build Run 安装首次启动授予定位与悬浮窗权限开发者选项选择模拟位置信息应用中选定 GoGoGo应用检测到未设置会弹窗直接跳转点一下地图选点再点右下角启动按钮验证方法通知栏出现 GoGoGo 通知、屏幕浮出摇杆窗口、目标 App 的蓝点跳到选定点——即已跑通。核心能力拆解地图点选与手输坐标回归测试快速设静态点位主界面是一张百度地图点一下即落点手上只有坐标数字时也能直接输经纬度。单击地图任意位置或 POI 放标记长按弹出逆地理地址卡片可复制、分享、存历史点输入坐标按钮填经纬度坐标系可选 BD09 或 GPS(WGS84)WGS84 会由MapUtils.wgs2bd09自动换算启动前依次检查网络、GPS、悬浮窗权限与模拟位置应用设置缺哪项弹哪个提示框点右下角启动按钮后服务跑起、按钮变停止运行中再选新点即移动不选点再点则终止做工单只给坐标的任务时不必开另一个地图 App 手动换算输入、确认、启动三步完成。地图交互、POI 搜索与启动前检查见 MainActivity.java。POI 搜索与历史回位多个固定测试点反复切换点顶栏搜索图标输地名从建议列表点选即落点用过的位置自动存进历史。搜索框输入关键词从百度 Suggestion 返回的 POI 列表点选地图立即跳转搜索记录自动存入本地数据库再展开搜索框时历史关键词置顶点一下回位左侧抽屉进历史页可点选回位设置里开启随机偏移按米配置后每次回位不落在同一坐标历史记录支持长按菜单重命名与删除回归用例的三五个固定起点切点基本一键完成不用重复搜地名。摇杆悬浮窗连续移动导航路径规划的轨迹测试服务启动后悬浮摇杆跟随应用出现在任意界面推向哪个方向模拟位置就朝哪个方向持续位移。摇杆是TYPE_APPLICATION_OVERLAY悬浮窗切到目标 App 上照样能推设置里可切换模拟摇杆与方向键两种形态三档速度步行 1.2 m/s、跑步 3.6 m/s、自行车 10.0 m/s均能在设置里改推得越远位移越快松手即停通知栏另有两个按钮直接显隐摇杆目标 App 会看到位置约每 100ms 刷新一次轨迹是连续移动而非瞬移够验证路径规划逻辑。实测记录5 个场景过了一遍测试场景操作观察到的现象结论静态点位验证设置模拟位置应用后点地图选点点启动目标 App 蓝点跳到选定点通知栏出现前台通知静态设点可用连续移动步行档推摇杆直行 10 秒目标 App 位置回调约每 100ms 刷新一次按 1.2 m/s 位移轨迹测试可用速度档位切换摇杆切到自行车档继续推位移速度变为 10.0 m/s档位设置生效历史回位随机偏移设置开启随机偏移从历史页选点落点与原坐标有细微差异偏移在设置米数范围内可避免重复测试点手输坐标填入 WGS84 坐标对并确认自动换算百度坐标系落点地图居中坐标系换算可用以上现象基于源码逻辑与 README FAQ 核对推演未在不同 OEM 机型与低端机上逐一复验。原理速览模拟定位如何写进系统大白话系统的 LocationManager 留了个后门——注册为模拟位置应用的 App 可以把 GPS 与网络定位两个插槽换成测试数据源属性参数照抄真实 Provider。GoGoGo 先接管这两个插槽再每 100ms 把当前坐标装进字段齐全的 Location 对象时间戳、海拔、方位、速度写入系统目标 App 读到的就是模拟值。细节地图展示用 BD09、系统定位用 WGS84启动前bd2wgs、回写悬浮窗时wgs2bd09互转不串位。// ServiceGo.setLocationGPS() 核心行拼一条像真的GPS 上报 Location loc new Location(LocationManager.GPS_PROVIDER); loc.setLatitude(mCurLat); loc.setLongitude(mCurLng); loc.setAltitude(mCurAlt); loc.setBearing(mCurBea); loc.setSpeed((float) mSpeed); loc.setTime(System.currentTimeMillis()); loc.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos()); mLocManager.setTestProviderLocation(LocationManager.GPS_PROVIDER, loc);ServiceGo.java测试源注册、100ms 定位写入循环、通知栏控制JoyStick.java摇杆手势、位移量计算与速度回调MapUtils.javaWGS84 与 BD09 互转常见问题速查5 个高频翻车点现象原因解法模拟位置偶尔跳回真实位置基站/WiFi 定位仍开着真实信号盖过测试源调试 API 固有问题目标 App 优先用高精度定位或到 WiFi 弱环境测启动后应用也会提示建议关 WiFi微信等腾讯系 App 无反应客户端自带定位校验逻辑FAQ 回答是建议去问一下腾讯换其他被测应用验证Android 8.0 以下用不了作者手头无低版本设备未适配用 8.0 设备鸿蒙系统经作者实测可正常运行Gradle 编译报 Java 版本错误JAVA_HOME与 Android Studio 的 JDK 不一致两处版本对齐点启动弹选择模拟位置信息应用框开发者选项没把 GoGoGo 设为模拟位置应用弹窗点设置直接跳转选定即可边界写在明处README 专门警告 GoGoGo 不支持任何校园运动类 App 的作弊行为。与替代方案的选型对比对比维度GoGoGo收费闭源模拟定位 App需 ROOT 的模拟工具其他免费免ROOT模拟应用ROOT 要求无需无需必须无需操作方式地图点选搜索摇杆各异命令/配置为主点选为主连续移动模拟摇杆三档速度各异各异基本不支持坐标系换算BD09/GPS 可选各异部分支持基本不支持历史与回位内置含随机偏移各异部分有部分有费用免费GPL-3.0 开源收费README 背景里吐槽贼贵免费但要 ROOT免费右侧三类的描述基于这类工具的普遍情况具体到某款 App 可能不同。选型建议只验证一个静态坐标系统开发者选项配任一简单模拟应用即可要做轨迹模拟、频繁切点又不想付费GoGoGo 交互成本最低。延伸百度地图开放平台文档地图瓦片、POI 搜索与逆地理编码 API 的排查入口Android 官方LocationManager.addTestProviderAPI 文档了解测试源可设置的字段GPS Test 类定位查看应用交叉验证模拟位置的精度与刷新频率ADB 配合logcat观察被测 App 的定位回调日志Charles 抓包确认目标 App 是否把位置数据送服务端校验回到开头那个回归用例点在路口、点下启动之前纹丝不动的蓝点已经自己走起来了。【免费下载链接】GoGoGo一个基于 Android 调试 API 百度地图实现的虚拟定位工具并且同时实现了一个可以自由移动的摇杆项目地址: https://gitcode.com/GitHub_Trending/go/GoGoGo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →