Chromebook 也可以运行 APK 应用,那为啥不直接使用 Android 系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chromebook 也可以运行 APK 应用,那为啥不直接使用 Android 系统相关的知识,希望对你有一定的参考价值。

参考技术A Chromebook是谷歌团队面向X86市场的硬件产品,android又是谷歌旗下的操作系统。但Android官方并未适配X86平台,只有第三方的Android X86,谷歌当然不会使用。所以就为ChromeBook定制了Chrome OS,因为都基于相同的内核,所以能或多或少运行apk程序。

从 Android 应用程序访问 Chromebook 的本地主机?

【中文标题】从 Android 应用程序访问 Chromebook 的本地主机?【英文标题】:Access Chromebook's localhost from Android apps? 【发布时间】:2018-05-28 06:07:56 【问题描述】:

我有一台在开发人员模式下设置的 Chromebook,同时运行了一个安装了 crouton 的 Linux 版本。在Linux crouton 中,我正在运行一个简单的网络服务器。

我的问题是,是否可以使用也在该 Chromebook 上运行的任何 Android 应用访问该服务器?

Android 应用程序已经可以在 ChromeOS 上本地安装一段时间了,但我读过的所有内容都表明它们在某种沙盒中运行。 ChromeOS 本身的防火墙规则也非常严格。

刚开始,我正在尝试使用 Chrome 浏览器的 Android 版本来加载在 Linux crouton 中的 Web 服务器上运行的页面。我试过localhost127.0.0.1 和 Chromebook 当前的 IP 地址。

我按照https://developer.android.com/topic/arc/index.html 的说明在Android 端启用了开发人员模式,并且我认为在ChromeOS 端放宽了这些防火墙规则。

有什么我想念的秘方吗?这甚至可能吗?

【问题讨论】:

【参考方案1】:

jlb 和 tomdemuyt 的解决方案是用于从 chromeos(即 ftp 服务器)访问 android 应用

但是,我需要相反的方式(从 android chrome 浏览器访问在 linux 虚拟环境中运行的节点服务器),这基本上是 ChillyPenguin 提出的问题。

我终于解决了:

启动您的网络服务器并确保您可以使用 localhost 访问它(在我的例子中是 http://localhost:8080 在 chromeos 终端内运行
hostname -I
100.115.92.203 (and an ip:v6:adress:...)

(或者更详细的ip addr show

现在我可以使用http://100.115.92.203:8080从android chrome访问Web服务器了

【讨论】:

你能从Android App中发现100.115.92.203(在这种情况下)IP还是需要提前硬编码?【参考方案2】:

利用@tomdemuyt 的帖子,他的引文来源说,Android 应用程序将被分配一个私有 IP 地址,因此您可以访问本地 IP 流量,而不是使用 localhost 或 127.0.0.1。

例如,从termux 执行ifconfig 并查找本地IP 地址。然后运行您的服务,例如来自 termux 或 kWs、任何 Android 应用程序的节点......并将 Chrome 指向 http://<your-local-ip-address>:<your-service-port>

127.0.0.1 和 localhost 可以在其他 Android 应用上运行,但 Chrome 不行。

【讨论】:

【参考方案3】:

我有完全相同的问题,发现这个: https://developer.android.com/topic/arc/index.html#network

似乎本质上不允许从本地 Chrome 到 Android 网络服务器的 IP 流量..

更新(感谢 jlb 的 ping) 但是,您可以在面包块中运行 ifconfig。然后您可以通过该 IP 地址访问您的内容。我想知道 Firefox 是否会为您使用该快捷方式..

【讨论】:

在我的安装中,Firefox 是一个 Android 应用程序(与 Chrome 扩展程序或 ChromeOS 应用程序相反),我假设它在与运行 node.js 的 termux 相同的模拟器或容器下运行。所以我的猜测是Firefox的网络配置是相对于模拟器的。

以上是关于Chromebook 也可以运行 APK 应用,那为啥不直接使用 Android 系统的主要内容,如果未能解决你的问题,请参考以下文章

从 Android 应用程序访问 Chromebook 的本地主机?

Chromebook 可以在哪些 API 级别上运行?

注销在单应用展台模式下运行的托管 chromebook

通过 Android 应用程序的 Chromebook 规范

如何在 Chromebook 上编码/运行 Ruby [关闭]

三星终于为Chromebook Pro引入了背光键盘