Articles of scala

创建没有Java的Android应用程序

我想开始创建Android应用程序,但我不喜欢Java。 我读过scala可以用来做它。 还有其他选择吗?(Clojure?) 我是一名Python / Django开发人员,所以学习一门完全不同的语言会很棒。

Scala for Android的性能

我刚刚开始学习Scala ,我正在度过我的生活。 今天我也刚刚听说过Scala for Android,我完全迷上了。 但是,考虑到Scala有点像Java的超集,因为它是Java ++(我的意思是包含更多内容的Java)我想知道Scala代码在Android中是如何工作的? 此外,如果使用Scala编写,是否会影响Android应用程序的性能? 也就是说,如果需要额外的工作来解释Scala代码。

如何在多项目构建中排除其他子项目的传递依赖?

在Build.scala我有一个项目之间的依赖关系: val coreLib = Projects.coreLib() val consoleApp = Projects.consoleApp().dependsOn(coreLib) val androidApp = Projects.androidProject().dependsOn(coreLib/*, exclusions = xpp */) 核心库项目在其libraryDependencies (XPP解析器)中定义了一个库,我想在androidApp排除androidApp ,因为Android框架有自己的开箱即用的XP​​P实现。 如何从androidApp项目中的androidApp传递依赖coreLib中排除XPP库? 编辑: 根据我的研究,排除只能用于与libraryDependency结合使用的libraryDependency 。 同时dependsOn将所有传递依赖项放到classpath中,api中没有办法排除这个项目的一些传递依赖,你依赖于 细节: 我目前正在运行0.13.5。 libraryDependencies of libraryDependencies以及libraryDependencies中提供的各种设置,以便该项目可以作为独立的方式重用,并且因为它感觉在sbt中提供设置的正确和自然的方式。

没有Java的Android

在完成整个“企业”编程一段时间之后,我对语言本身感到非常失望,如果我不得不重新开始,我总会感到非常受阻。 你的普通Android应用程序的项目大小并不太令人生畏,而且库的编码风格实际上相当不错,但如果我能避免使用Java,我肯定会这样做。 这就是问题:我可以避免吗? 虽然桌面和服务器上有很多JVM语言可供选择,但Dalvik VM和设备本身也有一些限制。 这在使用JIT的2.2中看起来好一点,但将自己限制在最前沿将是一个相当苛刻的决定。 我所知道的唯一替代方案似乎是Scala。 有没有可能我错过了? Clojure似乎完全解决了我在上面用Dalvik说明的问题,但是由于AppInventor建立在Kawa上,因此移动平台上的Lisp可能有希望吗? 还有哪些其他语言可以使用或朝这个方向迈进?

如何将Scala集成到核心Android平台?

我有兴趣将Scala(或其他一些非Java JVM语言)集成到android平台中。 我不是指用Scala编写一个Android应用程序,我早期就做过,但实际上是在构建android平台源代码树的构建过程中。 我想这将是一个挂入makefile等问题。 有没有人对此有所了解? 到目前为止我所拥有的:平台源代码树来自git://android.git.kernel.org/platform/manifest.git以其处女forms构建,以“[下载并构建Google Android] [1]”为指导 build / core / combo / scalac.mk#配置由config.mk包含的scala编译器相关variables 在build / core / definitions.mk中为all-subdir-scala-files和all-scala-files-under添加了定义 在definitions.mk中添加了定义以构建scala文件,使它们包含在包中 还剩下什么: 包括scala-library.jar 确保对-bootclasspath的更改没有破坏任何内容 弄清楚如何处理scala类依赖于java类的情况,反之亦然 主要清理代码 测试! 通过我所做的更改,弄清楚要做什么(除了在这里发布) 看起来我快到了! 过去的一些笔记 最新:我find了编译Java源文件的位置! 在definitions.mk中,请参阅’define transform-java-to-classes.jar’。 最新的想法是编写一个transform-scala-to-classes定义,然后将它们存储在直接打包的类中。 我将在transform-java-to-classes.jar中的这一步之前调用transform-scala-to-class。 现在可以删除对eclipse和cygwin的支持,因为它会使代码变得混乱,从而增加了失败的可能性。 构建过程由运行build / core / main.mk的根Makefile开始构建/ core / main.mk包括build / core / config.mk,其中包括build / core / combo / javac.mk,它设置HOST_JAVAC,TARGET_JAVAC和COMMON_JAVAC。 COMMON_JAVAC是“具有公共参数的Java编译器命令”,通过它看起来其他两个variables默认获取这些值,除非在特殊环境(openjdk或eclipse)中。 […]

在Android上使用Scala值得吗? 有很多开销吗? 问题?

我正在考虑使用Scala而不是常规Java(或者我猜的等价物)在Android上构建应用程序。 这值得么? 任何问题和不必要的头痛?

如何降级android studio gradle中的proguard版本?

我正在尝试使用scala和android studio来构build一个android应用程序。 在proguard编译失败,例外: Error:java.lang.ArrayIndexOutOfBoundsException: 4 at proguard.classfile.editor.InterfaceDeleter.visitSignatureAttribute(InterfaceDeleter.java:162) at proguard.classfile.attribute.SignatureAttribute.accept(SignatureAttribute.java:97) 我在另一个地方( http://sourceforge.net/p/proguard/bugs/549/ )发现这个问题是由scala中的一个bug造成的,但是它只发生在proguard 5.1中,而不是在proguard 5.0中。 现在我的问题是:我怎么能安装android studio,以便它会使用proguard 5.0?

使用AndroidAnnotations与Scala和Gradle

使用Scala编程语言和Gradle构build系统可以使用AndroidAnnotations吗? 当我尝试将AndroidAnnotations集成到我现有的Android / Scala / Gradle项目中时,编译失败,因为生成的下划线类(例如MyActivity_)无法find。 这里有一些有用的出发点和参考: http://www.scala-lang.org/node/4773(2010-01-06 ) http://www.scala-lang.org/sid/5(2010-01-27 ) http://code.google.com/p/androidannotations/wiki/Configuring(2011-07-28 ) http://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/ch08.html#d0e2816(2010 ?) 使用Ant的Java 6注释处理configuration (2010-09-05) http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html#processing http://ant.apache.org/manual/Tasks/apt.html 从Gradle构build脚本生成JPA2元模型 (2011-06-22) http://download.oracle.com/javase/1.5.0/docs/guide/apt/GettingStarted.html

如何从proguard版本中排除R * .class文件

我离这里描述的方法只有一步之遥: 用Scala 2.8 Trunk构buildAndroid 与一个单一的项目(一个项目为斯卡拉和一个为Android)。 我遇到了一个问题。 使用这个input文件(参数)proguard: -injars bin;lib/scala-library.jar(!META-INF/MANIFEST.MF,!library.properties) -outjar lib/scandroid.jar -libraryjars lib/android.jar -dontwarn -dontoptimize -dontobfuscate -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -keepattributes Exceptions,InnerClasses,Signature,Deprecated, SourceFile,LineNumberTable,*Annotation*,EnclosingMethod -keep public class org.scala.jeb.** { public protected *; } -keep public class org.xml.sax.EntityResolver { public protected *; } Proguard成功构build了scandroid.jar,但它似乎包含了由android资源构build器生成和编译的生成的R类。 在这种情况下,它们位于bin / org / jeb / R * .class。 这不是我想要的。 Android的dalvik转换器不能build立,因为它认为有重复的R类(这是在scandroid和R * .class文件)。 我怎样才能修改上述proguard参数从scandroid.jar排除R * […]

Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty

我在Android 2.2.1上遇到以下exception: java.lang.NoSuchMethodError: java.lang.String.isEmpty 我从Scala调用text.isEmpty 。 任何想法,如何解决这个问题?