我们有大量的xml文件(大约5000多个文件),未压缩时可能大约80 MB)所有这些都是用于读取和读取的设备配置。写数据&构建没有任何语言依赖性的用户界面。这些XML文件可以移植到任何技术,如Android和Apple世界。并非所有5000+都是一次性加载到内存中,我们可能会根据连接的1个设备将200个文件加载到内存中。我们有一个基于.NET / WPF的应用程序,它使用这些XML文件构建UI并通过Modbus和amp;等协议访问设备信息。哈特(现在不要打扰协议)。我们需要定制逻辑的任何地方,我们都在DLL(在.NET中)编写它们,我们使用反射& IoC加载这些DLL,创建对象并在运行时通过接口访问它们以完成XML配置。在桌面上,然后我们构建UI和加载配置
现在我们需要开发在手机和平板电脑上运行的Android应用程序。我有一年的Java工作经验。我们可以编写一个核心模块,可用于手机和平板电脑以及UI层,这只是将我们的XML渲染为UI元素。我们知道使用Java的类加载器来创建实例,这样我们可以在Android世界中构建.jar文件而不是DLL,并加载它们(如果可能的话?)并通过接口访问。当我们加载XML时,它将占用近80到100 MB的RAM(在WPF和.NET中)。
在研究Android世界时,我无法决定是使用Scala还是Java。我们没有任何Java专家为我们提供建议。在使用Python之后,我觉得Scala是现代的& amp;好的选择。另外我读到使用Scala编译的Android应用程序很胖(很大),需要很长时间才能启动。
但是从Visual Studio背景来看,我们是非常复杂的开发团队,希望通过IDE运行一切。此外,团队必须从头开始学习Java / Scala。
如果我们选择在Android上使用Scala,那么除了内存效率接近Java之外,我们是否应该这样做?我们是否也为Scala提供了足够的IDE支持(Eclipse或NetBeans或IdeaJ)?
我特别关注构建Android应用程序的内存占用(内部)和IDE支持。没有关于绩效或生产力的讨论。
答案 0 :(得分:1)
如果你来自C#,我建议选择Scala。这样你实际上可以保留一些业务逻辑,因为好的C#代码可能看起来有点像在Scala中完成的事情。 E. g。 LINQ in C#和Scala的集合类(v.s Java集合)。
与Java / C#相比,语法略有不同,但语法现在几乎不是真正的问题。
Java的IDE支持非常好,但如果您来自Visual Studio,Intellij(或Eclipse)+ Scala插件可能对您来说已经足够了。
如果在Java和Scala中编写相同的代码,内存消耗应该是相同的。
您应该记住,您应该使用ProGuard来保持Android应用程序的大小可管理。
答案 1 :(得分:1)
我的Scala IDE在一个终端窗口中为Maven
,在另一个终端窗口中为Vim。浏览器提供帮助文档。如果你可以在Maven上建立你的构建过程,那么任何IDE都应该可以。既然你在XML文件上工作很多,我建议你在Maven而不是SBT上建立你的构建过程。
当然,Eclipse支持Scala,Intellij支持它,Scala有一个Netbeans插件,甚至是Scala的Komodo语言扩展。尝试了很多IDE选择。只有开发人员知道什么对他们有用。
制作六个相同的虚拟机。在每个IDE上安装一个IDE。让开发人员(IDE的最终用户)测试它们并选择他们想要的那个。完成与SVN和Maven的所有构建和持续集成。使其成为开发人员的个人工具集(IDE或Emacs或Vim)与支持的开发工具之间的界限。