几周前更新Android Studio时,不同组件的新版本也会自动更新。
与Android模拟器一样,我现在有29.2.3-5916265版本,该版本存在错误。降级似乎非常非常困难。在最新版本的模拟器中,重新设计了模拟GPX轨道(播放GPX轨道,然后在模拟器的应用程序中将其作为真实GPS坐标接收到)的布局。似乎开发人员已删除该功能以模拟海拔高度。纬度/经度仍然有效,但是尽管我播放的GPX轨道具有真实高度的海拔标签,但海拔高度设置始终为0。
我向Google提交了一个错误,但他们没有回应: https://issuetracker.google.com/issues/142411030
我的问题是: 在哪里可以找到与Android Studio打包在一起的Android模拟器的当前源代码。我尝试了1和2,但是两个位置都不包含源代码。
已经存在一个非常相似的问题:(Modifying Android emulator source code),但是(似乎)该问题的答案不再适用。
背景:我想知道为什么Android模拟器开发人员(又名Google)会删除功能而不回答错误请求,所以我想了解为什么更改了播放GPX曲目的模拟。我只能通过阅读源代码的源更改历史来做到这一点。
我们非常感谢您的帮助。
[编辑]
最后,我找到了Android模拟器源代码并可以对其进行编译。有两个设计决策使我感到困惑,这使得寻找正确的源代码变得很努力。
困惑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为false,因此我得到了一个没有错误的仿真器。 AndroidStudio随附的仿真器似乎已使用USE_WEBENGINE定义进行了编译,因此会发生错误。
感谢您的回答,最终使我找到了正确的源代码!
答案 0 :(得分:0)
位于仿真器源代码here(至少直到下一次存储库重组之前)。
祝你好运!
答案 1 :(得分:0)
您只是不了解制作设备图像的过程。您的Android Studio仅加载单个文件即可启动虚拟化。要制作此图像,您只需要AOSP,您可以在问题Android Source中提到的位置中找到AOSP。
设置存储库并提取初始脚本后,您可以在构建道具中指定goldfish
类型并创建Image。该映像可用于虚拟化。这是仿真器映像的来源。而且不要说不是,因为我们对自定义模拟器使用了相同的过程。