1

我正在尝试将我的 android 开发环境切换到基于 scala 的开发环境,但是周转时间(由于仅使用 ProGuard 将 scala 库剥离到使用过的部分而导致)正在扼杀我。

有一些关于通过创建新的 ramdisk 映像并将库添加到所谓的BOOTCLASSPATH. 结果应该是,我不再需要将 scala 库集成到我的调试版本中,因此可以显着减少周转时间(此处提供了一个这样的教程)。

我已经按照这些教程进行操作,它适用于 android 2.3.x(API 级别 10),但是当将其应用于 ICS 模拟器(API 级别 14/15)或 Jelly Bean 模拟器(API 级别 16)时,它们会卡在修改后的引导循环。ICS 仿真器对我来说尤其重要,因为我正在使用带有硬件加速仿真的 x86 映像,因为它比 ARM 映像快得多。

关于如何在 ICS 仿真器或更高版本上预安装 scala 库的任何想法?

4

1 回答 1

4

在搜索了一段时间后,我偶然发现了Android-Scala-Installer,它允许在有根的 android 设备上预安装 scala 库。它使用另一种机制:它定义了额外的权限,而不是调整BOOTCLASSPATH它,然后可以在您的AndroidManifest.xmlusing<uses-library />语句中引用这些权限。

不幸的是,安装程序不能在模拟器上运行,但我已经应用了通用机制并创建了一个 scala 脚本,它可以完全自动化您选择的模拟器的整个安装过程,并且适用于 x86 和 ARM 映像——只需调用脚本,它将启动模拟器并完成所有安装工作,您就完成了。目前该脚本仅在 Windows 上运行。

该脚本当前捆绑了 scala 2.9.2 和 2.10.0-M7 库,可以在 github上找到。

提示:为了避免AndroidManifest.xml在调试和发布版本之间切换时进行调整,我将我的应用程序拆分为一个 android 库项目,其中包含应用程序的所有代码和两个应用程序项目——两者都引用库项目。其中一个应用程序项目用于调试构建并包含相关<uses-library />语句,另一个项目用于发布构建并将 scala 库包含到构建过程中,因此它们是交付的 APK 的一部分。

希望这对其他人也有用。

于 2012-09-17T15:29:10.787 回答