开发工具
English

SimulateGps 评测:一款老派但实用的 Android 位置模拟工具

基于 Java + Eclipse 的 Android GPS 模拟方案,适合开发者调试和特定场景的位置伪造需求。

javaandroidgps模拟位置eclipse

[广告位: article-top] 请在 .env 中配置至少一个广告平台

SimulateGps 评测:一款老派但实用的 Android 位置模拟工具

说实话,我第一次看到这个项目的时候,有点恍惚——Eclipse?2023 年还在维护?这年头不都是 Android Studio 的天下了吗。但仔细看完代码和 README 之后,我发现这东西虽然”土”,却解决了一个挺实在的问题:怎么在 Android 上伪造 GPS 位置。

项目背景:为什么需要模拟位置

做 Android 开发的兄弟应该都遇到过这种糟心事:测试一个基于地理位置的功能,你得真的出门跑一圈,或者在公司楼下转来转去。天气不好的时候简直想骂人。有些场景更麻烦,比如你要测试一个只在国外才能触发的逻辑,总不可能买张机票飞过去吧。

SimulateGps 就是干这个的。作者陈恒飞用 Java 写了一套基于系统 API 的位置模拟方案,不需要 root,只要开启开发者选项里的”允许模拟位置”就能跑。121 个 star 虽然不算多,但考虑到这是个很垂直的工具,已经说明有不少人觉得它够用了。

核心功能:三个实用点

第一,系统级位置注入。 项目没有走那种需要 root 的 hook 注入路线,而是直接调用 Android 原生的 LocationManager.setTestProviderLocation()。这种方式门槛低,普通用户只要会开开发者模式就能用。

第二,可视化地图选点。 集成了百度地图 SDK,你可以在地图上直接点选目标位置,不用手动输入经纬度。这个体验比纯命令行工具友好太多了。

第三,多定位模式兼容。 README 里提到了基站定位、WIFI 定位、GPS 定位和 AGPS 定位的区别,项目主要针对 GPS 模拟,作者建议把定位模式设为”仅限 GPS”来确保效果。

快速上手:Eclipse 导入运行

这个项目是用 Eclipse 建的,所以导入方式有点复古:

  1. 下载源码,在 Eclipse 里选择 Import -> Existing Android Code Into Workspace
  2. 去 AndroidManifest.xml 里把百度地图的 API 密钥换成你自己的(不然地图显示不出来)
  3. 手机开启开发者选项,打开”允许模拟位置”
  4. 把定位模式改成”仅限 GPS”(三星手机在 设置-位置-模式 里找)
  5. 运行项目,在地图上点选位置,点击模拟即可

整个过程大概十分钟,前提是你还记得 Eclipse 怎么操作。如果你是 Android Studio 一代的开发者,可能需要适应一下。

优缺点:坦诚地说

优点:

  • 不需要 root,对普通用户友好
  • 有地图界面,选点直观
  • 代码量不大,容易看懂和二次开发

缺点(必须说):

  • 作者自己在 README 里就说了,这种方式”不稳定,特征明显,容易按特征嗅探到”。有反作弊机制的游戏基本都能查出来,想拿这个去薅羊毛的兄弟可以死心了。
  • 用的是 Eclipse,2023 年还在提交但工具链确实老旧,导入新项目可能会有兼容性问题。
  • 依赖百度地图 SDK,需要自己去申请 API 密钥,对国内开发者还好,海外用户可能比较麻烦。
  • 没有发布 release,得自己 clone 编译。
  • 最后一次更新是 2023 年 6 月,Android 系统版本迭代这么快,新系统上能不能正常工作是个问号。

适合人群与总结

我觉得这个工具最适合两类人:

一是 Android 开发者,需要调试 LBS(基于位置的服务)相关功能,又不想整天背着手机往外跑的。

二是对 Android 系统 API 感兴趣的学习者,代码不算复杂,可以作为一个理解 LocationManager 和模拟位置机制的入门案例。

如果你是想找一款”万能改定位神器”去绕过某些 App 的检测,这个项目大概率满足不了你。作者自己都把局限性写明白了,这种坦诚反而让我觉得挺靠谱的——比那些吹得天花乱坠实际一用就废的工具强多了。

总的来说,SimulateGps 是个小而实的工具,技术路线清晰,代码可读性也不错。虽然 Eclipse 和百度地图这些选择让它看起来有点”年代感”,但核心功能是能跑的。如果你正好有 Android 位置模拟的需求,花半小时试试,不亏。

[广告位: article-bottom] 请在 .env 中配置至少一个广告平台

相关文章