【发布时间】:2019-11-05 15:23:34
【问题描述】:
当我几周前更新我的 Android Studio 时,不同组件的新版本也会自动更新。
与 Android 模拟器的情况一样,我现在的版本 29.2.3-5916265 有一个错误。降级似乎非常非常困难。在最新版本的模拟器中,重新设计了模拟 GPX 轨迹(播放 GPX 轨迹,然后在模拟器的应用程序中作为真实 GPS 坐标接收)的布局。似乎开发人员删除了该功能以模拟高度/海拔。纬度/经度仍然有效,但海拔设置始终为 0,尽管我播放的 GPX 轨道具有真实海拔的海拔标签。
我向 Google 提交了一个错误,但他们没有回复: https://issuetracker.google.com/issues/142411030
我的问题是: 我在哪里可以找到与 Android Studio 打包的 Android 模拟器的当前源代码。我试过1 和2,但是这两个位置都不包含源代码。
已经有一个非常相似的问题:(Modifying Android emulator source code),但是这个问题的答案不再适用(似乎)。
背景:我想知道为什么 Android 模拟器开发者(又名 Google)会删除功能并且不回答错误请求,所以我想知道为什么播放 GPX 曲目的模拟发生了变化。我只能通过阅读源代码的源更改历史来做到这一点。
非常感谢任何帮助。
[编辑]
终于找到了安卓模拟器源代码,可以编译了。有两个设计决策让我感到困惑,这使得寻找正确的源代码成为一种努力。
混淆1:源代码确实位于1,但模拟器源代码并不包含在此存储库的所有修订/分支中。例如,如果您检索“master”分支,则根本找不到任何目录 external/qemu。您必须检查修订版 emu-master-dev 或其中带有分支前缀 "emu" 的修订版才能检索源代码。源代码的 GIT 存储库是:https://android.googlesource.com/platform/external/qemu。最好使用 Gerrit 结帐:
==> mkdir emu-master-dev
==> cd emu-master-dev
==> repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev
==> repo sync -j8 --fail-fast
混淆 2:模拟器包含两个不同的位置选项卡 GUI,显示哪个 GUI 取决于编译器变量 USE_WEBENGINE。所以我跟踪的错误发生在定义 USE_WEBENGINE 时。当我在本地编译它时,USE_WEBENGINE 是假的,所以我得到了一个没有错误的模拟器。 AndroidStudio 自带的模拟器好像是在编译时定义了 USE_WEBENGINE,所以出现了这个 bug。
感谢您的回答,终于让我找到了正确的源代码!
【问题讨论】: