Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
基于IDE和内存占用的Scala或Java_Java_.net_Android_Scala_Ide - Fatal编程技术网

基于IDE和内存占用的Scala或Java

基于IDE和内存占用的Scala或Java,java,.net,android,scala,ide,Java,.net,Android,Scala,Ide,我们有大量的xml文件(约5000多个文件),未压缩时可能约为80MB)所有这些文件都是用于读写数据和构建用户界面的设备配置,没有任何语言依赖性。这些XML文件可以移植到任何技术,如Android和Apple world。并不是所有的5000+都一次性加载到内存中,我们可能会基于连接的一个设备将200个文件加载到内存中。我们有一个基于.NET/WPF的应用程序,它使用这些XML文件构建UI,并通过Modbus和Hart等协议访问设备信息(现在不用麻烦协议)。在任何需要自定义逻辑的地方,我们都将它

我们有大量的xml文件(约5000多个文件),未压缩时可能约为80MB)所有这些文件都是用于读写数据和构建用户界面的设备配置,没有任何语言依赖性。这些XML文件可以移植到任何技术,如Android和Apple world。并不是所有的5000+都一次性加载到内存中,我们可能会基于连接的一个设备将200个文件加载到内存中。我们有一个基于.NET/WPF的应用程序,它使用这些XML文件构建UI,并通过Modbus和Hart等协议访问设备信息(现在不用麻烦协议)。在任何需要自定义逻辑的地方,我们都将它们写入DLL(在.NET中),并使用反射和IoC加载这些DLL,创建对象,并在运行时通过接口访问它们,以完成XML配置。在桌面上,我们构建UI并加载配置

现在我们需要开发运行在手机和平板电脑上的Android应用程序。我有1年的Java工作经验。我们可以编写一个核心模块,它可以用于手机和平板电脑,UI层只是将XML呈现为UI元素。我们知道使用Java的类加载器来创建实例,这样我们就可以在AndroidWorld中构建.jar文件并加载它们(如果可能的话?)并通过接口访问。当我们加载XML时,它将消耗将近80到100MB的RAM(在WPF和.NET中)

当我观察Android世界时,我无法决定是使用Scala还是Java。我们没有任何Java专家为我们提供建议。在Python上工作过之后,我觉得Scala是现代的&不错的选择。我还读到,使用Scala编译的Android应用程序很胖(很大),需要很长时间才能启动

但来自VisualStudio的背景,我们是一个非常成熟的开发团队,希望一切都能通过IDE运行。团队还必须从一开始就学习Java/Scala,无论我们选择什么

如果我们选择在Android上使用Scala,除了内存效率接近Java之外,我们还需要什么呢?我们对Scala是否有足够的IDE支持(Eclipse、NetBeans或IdeaJ)

我特别寻找内存占用(内部)和IDE支持来构建Android应用程序。没有关于性能或生产力的讨论。

如果您来自C#,我建议您选择Scala。这样,您实际上可以保留一些业务逻辑,因为好的C#代码可能看起来也有点像在Scala中完成的事情。例如。C#和Scala的集合类(v.s Java集合)中的LINQ

与Java/C#相比,语法有点不同,但是现在语法几乎不是一个真正的问题

Java的IDE支持非常好,但如果您来自VisualStudio,Intellij(或Eclipse)+Scala插件可能就足够了

如果用Java和Scala编写相同的代码,那么内存消耗应该是相同的


您应该记住,您应该使用ProGuard来保持Android应用程序的可管理性。

我的Scala IDE在一个终端窗口中是
Maven
,在另一个终端窗口中是Vim。浏览器提供帮助文档。如果您可以将构建过程基于Maven,那么任何IDE都可以。由于您经常使用XML文件,我建议您将构建过程基于Maven而不是SBT

当然,Eclipse支持Scala,Intellij支持它,还有一个用于Scala的Netbeans插件,甚至还有一个用于Scala的Komodo语言扩展。有很多IDE选项可以尝试。只有开发人员知道什么适合他们


制作六个相同的虚拟机。在它们中的每一个上安装一个IDE。让开发人员(IDE的最终用户)测试他们并选择他们想要的。与SVN和Maven进行所有构建和持续集成。将其作为开发人员个人工具集(IDE、Emacs或Vim)和支持的开发工具之间的界限。

我对Emacs有很好的经验。Maven是一个很好的构建环境。IDE会帮助团队。事实上,如果你还没有被支持,那么认真考虑Git和MyCuri是个好主意。两者都是具有几乎相同功能的分布式版本控制系统。Mercurial往往比git更容易学习,操作也不那么复杂。