您的位置:首页 > 其它

构造Scala开发环境并创建ApiDemos示例项目

2014-10-01 20:40 375 查看
从2011年开始写Android ApiDemos 以来,Android的版本也更新了很多,目前的版本已经是4.04。ApiDemos中的例子也增加了不少,有必要更新Android ApiDemo示例解析系列文章(当然之前的文章还是有用的,依然可以作为参考)。为了不重复之前的内容,我们准备使用Scala语言开发Android应用,随着例子的逐步解析,我们会把ApiDemos的例子的代码依次修改为Scala代码,并使用Robujuice 来注入View,关于Scala编程可以参考博客scala开发教程 ,关于Robujuice的介绍可以参考Android RoboGuice 使用指南我们开发Android应用使用的IDE为Intellij (这也是新版Android Studio 基于的版本)。
1. 安装Scala开发环境 ,请参考开始神奇的Scala编程之旅
2. 安装IDEA Scala插件 使用IntelliJ IDEA开发Scala应用
3. 安装Android SDK
4. 导入ApiDemos示例到Intellij,这里我们使用Android-17 目录下



为方便起见,ApiDemos的项目可以在github网站上复制 https://github.com/guidebee/ApiDemos 一般来说每次更新都会打上当天的日期作为标记,以便参考。
5.为Android项目配置Scala Facet,在导入的ApiDemos项目,使用File -> Project Structure -> Facets


6. 为项目添加Scala 库文件, 使用 File -> Project Structure -> Libraries



scala-library.jar 文件可以在Scala安装目录 的libs下找到
7. 确认之前添加的Scala Facet为module的dependency. 你可以查看模块的dependency File -> Project Structure -> Modules -> Dependencies



并配置compiler plugins (可选)

注意:选取的Android平台需要使用JDK7 ,这是因为目前最新版的proguard还不支持JDK8.8. 配置proguard ,使用下面的proguard-project.txt 文件,这个文件可以使用大多数的项目,你将这个文件添加到Android项目中
对于Intellij 12 ,使用 File → project settings → modules → select module(s) → compiler tab → enable proguard
对于Intellij 13 ,使用 File → project settings → modules → select module(s) → compiler tab → check Run Proguard checkbox



注意在配置proguard列表时,同时也需添加Android SDK缺省的文件 /android-sdk-home/tools/proguard/proguard-android.txt 缺省情况已经在项目的配置中了。之后我们就可以和编译普通Java开发的Android应用一样编译Scala代码,使用这种配置,你可以任意混合使用scala 和 Java 语言,当然你不能在同一个文件中混合使用,如有Scala代码存放在.scala文件中,所有java代码还是存放在.java文件中,在github的项目中,有两个实例的.java文件 ExampleActivity.java 和 SignInActivity.java .我们把它们先修改成scala代码
1
import
android.app.Activity
2
import
android.os.Bundle
3
4
class
ExampleActivity
extends
Activity {
5
6
override
def
onCreate(savedInstanceState
:
Bundle) {
7
super
.onCreate(savedInstanceState)
8
// The activity is being created.
9
}
10
11
protected
override
def
onStart() {
12
super
.onStart()
13
// The activity is about to become visible.
14
}
15
16
protected
override
def
onResume() {
17
super
.onResume()
18
// The activity has become visible (it is now "resumed").
19
}
20
21
protected
override
def
onPause() {
22
super
.onPause()
23
// Another activity is taking focus (this activity is about to be "paused").
24
}
25
26
protected
override
def
onStop() {
27
super
.onStop()
28
// The activity is no longer visible (it is now "stopped")
29
}
30
31
protected
override
def
onDestroy() {
32
super
.onDestroy()
33
// The activity is about to be destroyed.
34
}
35
}
其实这两个文件ApiDemos并没有用到它们,我们正好可以用它们来测试下Scala的开发环境是否配置好,编译这个项目,如果你在编译后的目录out/production/ApiDemos找到 ExampleActive.class 说明IDE编译Scala代码成功了。


最后项目可以在github.com 下载 https://github.com/guidebee/ApiDemos
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐