从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插件 mod=viewthread&tid=5664&extra=page%3D1" style="color: rgb(35, 99, 144); text-decoration: none;">使用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 |
4 |
class ExampleActivity extends Activity { |
6 |
override def onCreate(savedInstanceState: Bundle) { |
7 |
super.onCreate(savedInstanceState) |
8 |
// The activity is being created. |
11 |
protected override def onStart() { |
13 |
// The activity is about to become visible. |
16 |
protected override def onResume() { |
18 |
// The activity has become visible (it is now "resumed"). |
21 |
protected override def onPause() { |
23 |
// Another activity is taking focus (this activity is about to be "paused"). |
26 |
protected override def onStop() { |
28 |
// The activity is no longer visible (it is now "stopped") |
31 |
protected override def onDestroy() { |
33 |
// The activity is about to be destroyed. |
事实上这两个文件ApiDemos并没实用到它们,我们正好能够用它们来測试下Scala的开发环境是否配置好,编译这个项目,假设你在编译后的文件夹out/production/ApiDemos找到 ExampleActive.class 说明IDE编译Scala代码成功了。

最后项目能够在github.com 下载 https://github.com/guidebee/ApiDemos
- 【甘道夫】Eclipse+Maven搭建HBase开发环境及HBaseDAO代码演示样例
环境: Win764bit Eclipse Version: Kepler Service Release 1 java version "1.7.0_40" 第一步:Eclips ...
- 【COCOS2D-HTML5 开发之三】演示样例项目附源代码及执行的GIF效果图
本站文章均为李华明Himi原创,转载务必在明显处注明:(作者新浪微博:@李华明Himi) 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/cocos2d- ...
- Cocos2d-x-Lua演示样例项目HelloLua
Cocos2d-x-Lua演示样例项目HelloLua 本篇博客介绍Cocos2d-x中Lua的实例项目,就是使用Cocos2d-x创建的初始项目执行所呈现的农场,这里笔者取名为HelloLua.本篇 ...
- scala开发环境
1. Intellij IDEA Scala开发环境搭建 Intellij IDEA 15.0.3 默认配置里面没有Scala插件,需要手动安装,在Intellij IDEA 15.0.3 第一次运行 ...
- AppCan移动应用开发平台新增9个超有用插件(内含演示样例代码)
使用AppCan平台进行移动开发.你所须要具备的是Html5+CSS +JS前端语言基础.此外.Hybrid混合模式应用还需结合原生语言对功能模块进行封装,对于没有原生基础的开发人员,怎样实现App里 ...
- 通过IDEA搭建scala开发环境开发spark应用程序
一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安装scala插件,具体安装办法如下. 1.打开idea,点击c ...
- IDEA搭建scala开发环境开发spark应用程序
通过IDEA搭建scala开发环境开发spark应用程序 一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安 ...
- Window下Scala开发环境搭建
在Windows下搭建Scala开发环境,需要做以下几个步骤 1) 安装JDK 2) 安装Scala,并配置环境变量 3) Idea安装并创建Scala 类 1.安装JDK JDK安装,这里不再介绍, ...
- Spark之路 --- Windows Scala 开发环境安装配置
JDK安装 JDK安装包下载 到Oracle官网下载JDK. 传送门 下载之前要记得勾选上同意协议然后选择相应的版本(Windows/Linux, 32/64) JDK安装及验证 按提示完成安装,安装 ...
随机推荐
- Application_Start
这个时间是在第一次访问网站的时候触发..比如你发布了一个网站,,我第一个来访问,,就会触发这个事件..以后再有人来访问就不会触发了.. 一般的,我们总是以为Application_Start是一个应用 ...
- Linux下glui 的安装,以及错误解决
下载源文件: http://sourceforge.net/projects/glui/ 2. 解压源文件 3. 用terminal进入glui-2.36/src文件 4. make 5. make之 ...
- Linux运维需要掌握的技能 (转)
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具.我就大概列出这几方面,这样入门就基本没问题了 ...
- Linux下查看CPU信息
在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下:
- Git创建一个自己的本地仓库
如果我们要把一个项目加入到Git的版本管理中,可以在项目所在的目录用git init命令建立一个空的本地仓库,然后再用git add命令把它们都加入到Git本地仓库的暂存区(stage or inde ...
- lc面试准备:Number of 1 Bits
1 题目 Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also ...
- 关于IN-LIST迭代
IN-list iterator (IN-list迭代) 字段有索引,in里有多少个值就执行多少次索引扫描.不管值是否在字段里存在~ SQL> create table t1 as select ...
- C++ Prime:预处理器
C++程序会用到的一项预处理功能是头文件保护符,头文件保护符依赖于预处理变量.预处理变量有两种状态:已定义和未定义,#define指令把一个名字设定为预处理变量,另外两个指令则分别检查某个指定的预处理 ...
- bzoj2466,poj1222
都是简单的异或高斯消元 由于bzoj2466要求解得最小和,所以我们最后还要穷举自由元取最优解 type node=record po,next:longint; end; . ...
- 转-----实现基本的Ajax和Json请求
前面已经封装好了一个方法ajax(),通过这个方法可以实现Ajax请求,接下来就是给出 例程来测试这个方法和实现简单的功能. 视图的部分代码如下: 1 2 3 4 5 6 7 8 9 <bo ...