ARM Chromebook 上的 Android 开发环境?

Posted

技术标签:

【中文标题】ARM Chromebook 上的 Android 开发环境?【英文标题】:Android Development Environment on an ARM Chromebook? 【发布时间】:2017-05-05 05:17:55 【问题描述】:

我多次尝试在ARM Chromebook (C100P) 上安装和使用android Studio,但安装总是失败并出现failed to run mksdcard tool 错误。我读到这是因为 Android Studio 依赖于与 ARM 处理器架构不兼容的本机二进制文件;即使尝试了各种 hack 或只是尝试单独使用库,我仍然无法在我的 ARM Chromebook 上设置 Android 开发环境。

【问题讨论】:

请注意,如果您的 Chromebook 运行 Android 版 Google Play,您可以运行此线程引用的 AIDE (play.google.com/store/apps/details?id=com.aide.ui&hl=en):reddit.com/r/chromeos/comments/4wewyr/… 【参考方案1】:

原生结论:

我得出的结论是,你真的做不到。 Android 的编译工具依赖于原生库;具体来说,lib32stdc++6lib32z1。这些依赖于 32 位 Intel 二进制文件,因此在 Google 开始进行一些更改之前,不可能在 ARM 处理器上执行这些指令字(即使支持 i386 多体系结构)。

幸运的是,我在这里提出了一种解决方法。我们将把计算委托给虚拟机; 与这些二进制文件兼容。它将是免费安全,因此您不必担心谁可以访问您的源代码。我们将使用Google App Engine 来实现这一点。

解决方法:

假设我们使用全新安装,我将开始本教程。

    首先,下载latest Crouton installer,这样我们就有了一个成熟的 Ubuntu 发行版可以使用。在 Chromebook shell(Ctrl + Alt + T 并输入 shell)中,执行安装程序。我选择安装没有窗口管理器的最新版本的 Ubuntu Xenial。我还启用了与 Crouton Chrome 扩展的集成以启用共享剪贴板。

    sudo sh ~/Downloads/crouton -r xenial -t touch,audio,keyboard,extension

    接下来,enter-chroot 进入 Ubuntu,并安装 curl 和 python:

    sudo apt-get updatesudo apt-get install curl python git

    使用 curl 获取 Google Cloud SDK。您可以将其解压到默认位置~/google-cloud-sdk,或者您想要的其他目录。

    curl https://sdk.cloud.google.com | bash

    导航到您的 Google Cloud SDK 目录并执行安装程序。允许它更新您的 $PATH 变量并启用对您的 ~/.bashrc 文件的更新。 重新启动外壳。使用logoutexit,然后使用sudo enter-chroot 重新输入。这使您可以从命令行访问您的 Google Cloud SDK 安装。 使用您的关联 Google 帐户使用 gcloud auth login 登录到 Google Cloud SDK。这将需要您做两件事;首先,启用 SDK 访问您的 Google 帐户。其次,您需要从浏览器中提供的网址复制验证密钥,然后将其粘贴回控制台。 登录Google Cloud Console。 创建一个新项目,例如android-compile-worker,并在该项目中创建一个新的存储库,例如编译工具。我们将在此存储库中安装 Android SDK 工具。当我们这样做时,实际上是将它们放置在可以正确解释其使用的本机 32 位二进制文​​件的虚拟机中。

    在您的网络浏览器中启动 Google Cloud Console 的终端。接下来,在 Google Cloud Console 终端和本地 Chromebook shell 中克隆您的存储库。

    gcloud init

    gcloud config set project project-name-here

    gcloud source repos clone repo-name-here

    在 Google Cloud Console 终端中,移动到您创建的存储库并下载并解压缩最新版本的 Android 工具 SDK。 wget https://dl.google.com/android/repository/tools_r25.2.3-linux.zip unzip tools_r25.2.3-linux.zip 现在我们已成功将 Android SDK 工具提取到 Google Cloud 机器上;将 PATH 变量导出到此位置以启用它。 export ANDROID_HOME=path/to/unzipped/tools 安装那些我们无法在笔记本电脑上使用的讨厌的二进制文件。由于当您的实例超时时此安装会丢失,您可以将命令附加到您的 .bashrc 以在新服务器实例之间保持安装。 sudo apt-get install lib32stdc++ lib32z1 回到您的 Chromebook,安装以下实用程序以启用 Android 设备编程。 sudo apt-get install android-sdk-platform-tools-common android-tools-adb android-tools-adbd android-tools-fastboot

设计流程

这就是一切!如果您正确执行了这些步骤,您将成功配置 Google 的一台虚拟机以进行 Android 编译。通过 Google Cloud Console 终端,可以为您希望编译的各种 API 级别添加 Android 平台支持。

在这里,我们添加 API Level 25 和 Android 支持存储库,如下所示:

./android update sdk --filter android-25 --no-ui

./android update sdk -u -a -t android-25

./android update sdk --all --filter "extra" --no-ui

现在,使用 git pull origin mastergit push origin master,您可以将在 Chromebook 上开发的代码上传到可由 Android SDK 编译的代码库。您可以通过执行项目的本地 gradlew 文件来做到这一点,即 ./gradlew build

编译后,您可以pull 将生成的二进制文件返回到您的开发机器上,并使用 Android 设备桥 (adb) 和 adb install path/to/apk 配置连接的 Android 设备。

【讨论】:

以上是关于ARM Chromebook 上的 Android 开发环境?的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 无法在配备 32 位 Ubuntu 12.04 w/JDK-8 的三星 ARM Chromebook 上加载

Android检测Chromebook上的锁定解锁事件

通过 Android 应用程序的 Chromebook 规范

未定义的参考在 arm chromebook 上编译 taskwarrior

Chromebook(XE303C12)安装 ArchLinux

从 Chrome 操作系统/Chromebook 恢复映像中提取文件