Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android的Scala编程_Android_Scala_Resources - Fatal编程技术网

Android的Scala编程

Android的Scala编程,android,scala,resources,Android,Scala,Resources,我已经完成了Scala 2.7.3最终版的教程。由此产生的Android应用程序可以工作,但即使是最基本的应用程序也需要几分钟(!)来编译,并且需要900KB压缩,这对于移动应用程序来说是一个阻碍。此外,IDE偶尔会耗尽内存。我假设dex不是为像scala库这样的大型库设计的 所以我的问题是:有人真的这样做了吗?有什么治疗方法吗 我已经用Scala编写了一些基本的Android应用程序,没有什么太大的改动。我不是一个Java程序员,有人建议我使用“treeshake”,我的一个朋友向我解释说,

我已经完成了Scala 2.7.3最终版的教程。由此产生的Android应用程序可以工作,但即使是最基本的应用程序也需要几分钟(!)来编译,并且需要900KB压缩,这对于移动应用程序来说是一个阻碍。此外,IDE偶尔会耗尽内存。我假设
dex
不是为像
scala库这样的大型库设计的

  • 所以我的问题是:有人真的这样做了吗?有什么治疗方法吗

我已经用Scala编写了一些基本的Android应用程序,没有什么太大的改动。我不是一个Java程序员,有人建议我使用“treeshake”,我的一个朋友向我解释说,这会从jar文件中去掉所有不必要的库

我没有记录,但我发现其他人已经:

Proguard不是唯一的解决方案,您可能会找到适合您的工作流程或更适合您的环境的解决方案


此外,谷歌刚刚认识到JACK,它处理了大量减少构建和内存时间的问题。请参见

现在,您可以使用Android插件Gradle在Scala中创建Android应用程序。它结合了ProGuard工具来修剪生成的APK文件中的fat,因此似乎可以满足您的需要


还有一个基于Scala的构建器插件:。

有关教程和示例,另请参阅Stéphane Micheloud的“探索Android”页面:

我用Eclipse 3.7、Scala 2.10和插件AndroidProgulardScala v50验证了这个详细的解决方案:

一切正常。带有scalafied主活动类的简单测试应用程序只需要38Kb。支持图书馆项目。导出项目时会激活Proguard。

如果使用maven,请将其用作启动模板。这对我来说非常好


是一个用Scala编写的Android API包装器,可帮助您以Scala风格编写Android程序。

您可以在Android上使用Scala,而无需SBT,它由Gradle外部构建,用于创建Android应用程序。

Gradle比SBT更适合android的本地构建工具

有Scala客户端和服务器端解决方案概念的好例子,gradle构建工具是IntelliJ IDEA workbench的高级工具

核心类对于客户端和服务器来说是通用的,这是一个很大的进步

IDEA和android插件的好教程:
为Scala开发Android应用程序正在不断发展。在SBT看来,目前最好的方法是结合的,它是维护的*并且在我的Scala/Android项目中对我很有效。最近的一个示例演示了这个插件与前面提到的Scaloid can的结合使用

请注意,此问题是堆栈溢出的典型示例。这个答案也可能在某个时候过时


*在本回答线程中提到的其他基于SBT的项目在编写时的最后六个月内似乎没有为它们编写代码。它们可能与较新版本的Scala和SBT存在兼容性问题。

Android上Scala的最大问题是编译时间

可能是因为Proguard类剥离在双四核(8-CPU)E5450 Xeon和8GB上使用IDEA13/Scala插件编译可能需要两分钟或更长时间


在完成了一个规模较大的Scala Android项目后,我简单地回到了Java,因为编译时间太令人沮丧了。

谢谢!我得试试看。我想知道它是否可以与Eclipse(使用Scala和Android插件)Lemmy一起使用——你有什么理由不接受这个答案吗?也许你找到了更好的解决方案?根据我的经验,treeshake对于大多数非平凡的scala代码来说都不够好。它只是不够有侵略性。效果很好!我尝试的解决方案都不是现成的,但是你的Gradle插件给了我有用的反馈,这样我就可以很容易地解决问题。Jason,你还在做这个吗?上一次提交是在9个月前,自那时以来,grade的版本一直在升级。Peter,开发已经停止,因为Gradle现在是Android的原生构建系统。这听起来很棒。当部署到设备时(与部署类似的Java Android项目相比),此解决方案的构建时间如何?部署到设备时,构建时间大约为10秒。我希望有一天它会更快。使用最新的android sdk和插件需要大约1秒的时间,因为一些新的良好缓存实现。该插件与最新版本的SBT不兼容。你还在维护这个插件吗?与最新版本兼容的SBT插件。