gpt4 book ai didi

android - 从 Android 模拟器访问虚拟主机

转载 作者:太空狗 更新时间:2023-10-29 15:57:32 24 4
gpt4 key购买 nike

我正在开发一个连接到在 Apache 中配置为虚拟主机的网络服务的简单应用程序,因此它的 URL 是 myapp.localhost

在我的开发机器 (Mac OS X) 中,我可以访问它,也可以从 iPhone 模拟器访问它。但是我遇到了 Android 模拟器的问题,它就是无法访问该 URL,因为它没有使用我的/etc/hosts 文件来解析“myapp.localhost”域名。

因为我使用的是 Appcelerator Titanium ( appcelerator.com ),所以我无法使用“adb”将自定义主机文件注入(inject) Android 模拟器。

我可以在我的 Mac OS X 系统中安装 DNS 服务器或类似的东西来为 Android 模拟器转换该虚拟主机吗?

最佳答案

我想您最终找到了解决问题的方法。尽管如此,我还是会为那些四处寻找、为我们曾经遇到的同样问题而苦苦挣扎的人提供一个可能的答案。

由于 android 设备是模拟的而不是模拟的(与 iOS 设备相反),它们确实有自己的内核、配置文件......和它们自己的 /system/etc/hosts。但是您实际上可以将 adb 与 Titanium 一起使用。你只需要小心。由于 Titanium 使用基于 tiapp.xml 的自定义生成的虚拟设备,因此在虚拟设备出现在设备列表中之前,您必须至少运行一次应用程序。

如果您有多个虚拟设备,您首先需要获取 Titanium 生成的设备名称(通常是 emulator-XXXX)。

adb devices

然后您可以挂载它并使用 adb push 和 pull 命令将 /system/etc/hosts 从模拟器的系统中取出,编辑它并将其推回。 -s emulator-XXXX 指定要在哪个设备上执行这些命令。如果只有一台设备,则可以跳过此选项。参见 adb doc了解更多信息。

adb -s emulator-XXXX remount
adb -s emulator-XXXX pull /system/etc/hosts /whatever/directory/

您现在可以使用您喜欢的编辑器编辑 /whatever/directory/hosts 并添加必要的主机。如果你需要访问你的开发机器的本地主机接口(interface),10.0.2.2 是一个链接到计算机的环回接口(interface)。只需将 10.0.2.2 myapp.localhost 添加到主机并将其推送回虚拟设备。

adb -s emulator-XXXX push /whatever/directory/hosts /system/etc/hosts

使用 Titanium 重新启动模拟器,它应该可以解决问题!

关于android - 从 Android 模拟器访问虚拟主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com