如何在Android模拟器上预安装Scala库> = API级别14(x86 / ARM)

时间:2012-09-17 15:29:11

标签: android scala android-emulator

我正在尝试将我的Android开发环境切换到基于scala的环境,但是周转时间(仅通过使用ProGuard将scala库拆除到已使用的部分引起)正在扼杀我。

通过创建新的ramdisk映像并将库添加到所谓的BOOTCLASSPATH,可以获得有关在模拟器中预安装scala库的过程的一些教程。结果应该是,我不再需要将scala库集成到我的调试版本中,因此可以大大减少周转时间(可以使用一个这样的教程here)。

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

有关如何在ICS模拟器或更高版本上预安装scala库的任何想法吗?

1 个答案:

答案 0 :(得分:4)

在搜索了一下之后,我偶然发现了Android-Scala-Installer,它允许在root用户设备上预安装scala库。它使用另一种机制:它不是调整BOOTCLASSPATH,而是定义其他权限,然后可以使用AndroidManifest.xml语句在<uses-library />中引用这些权限。

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

该脚本目前捆绑了scala 2.9.2和2.10.0-M7库,可以找到at github

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

希望这对其他人也有用。