从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
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

构造Scala开发环境并创建ApiDemos演示样例项目的更多相关文章

  1. 【甘道夫】Eclipse+Maven搭建HBase开发环境及HBaseDAO代码演示样例

    环境: Win764bit Eclipse Version: Kepler Service Release 1 java version "1.7.0_40" 第一步:Eclips ...

  2. 【COCOS2D-HTML5 开发之三】演示样例项目附源代码及执行的GIF效果图

    本站文章均为李华明Himi原创,转载务必在明显处注明:(作者新浪微博:@李华明Himi) 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/cocos2d- ...

  3. Cocos2d-x-Lua演示样例项目HelloLua

    Cocos2d-x-Lua演示样例项目HelloLua 本篇博客介绍Cocos2d-x中Lua的实例项目,就是使用Cocos2d-x创建的初始项目执行所呈现的农场,这里笔者取名为HelloLua.本篇 ...

  4. scala开发环境

    1. Intellij IDEA Scala开发环境搭建 Intellij IDEA 15.0.3 默认配置里面没有Scala插件,需要手动安装,在Intellij IDEA 15.0.3 第一次运行 ...

  5. AppCan移动应用开发平台新增9个超有用插件(内含演示样例代码)

    使用AppCan平台进行移动开发.你所须要具备的是Html5+CSS +JS前端语言基础.此外.Hybrid混合模式应用还需结合原生语言对功能模块进行封装,对于没有原生基础的开发人员,怎样实现App里 ...

  6. 通过IDEA搭建scala开发环境开发spark应用程序

    一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安装scala插件,具体安装办法如下. 1.打开idea,点击c ...

  7. IDEA搭建scala开发环境开发spark应用程序

    通过IDEA搭建scala开发环境开发spark应用程序   一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安 ...

  8. Window下Scala开发环境搭建

    在Windows下搭建Scala开发环境,需要做以下几个步骤 1) 安装JDK 2) 安装Scala,并配置环境变量 3) Idea安装并创建Scala 类 1.安装JDK JDK安装,这里不再介绍, ...

  9. Spark之路 --- Windows Scala 开发环境安装配置

    JDK安装 JDK安装包下载 到Oracle官网下载JDK. 传送门 下载之前要记得勾选上同意协议然后选择相应的版本(Windows/Linux, 32/64) JDK安装及验证 按提示完成安装,安装 ...

随机推荐

  1. [CSS]cursor鼠标样式

     用css控制鼠标样式的语法如下: <span style="cursor:*">文本或其它页面元素</span>  把 * 换成如下15个效果的一种:   ...

  2. 帝国cms7.0设置标题图片(缺失状态下)

    有时候因为我们没有设置标题图片,程序就会是使用自己的标题图片,这就是问题所在,现在有2个办法解决这个问题, [1]直接替换调程序的标签图片,但是这样的方法虽然简单,但是图片大小固定,要是每个模版的图片 ...

  3. Attributes(1):反射Attribute并输出

    using System; using System.Reflection; using System.Text;   namespace Attribute01 { class Program { ...

  4. RBM 与 DBN 学习笔记

    2006 年,Hinton 等人基于受限波尔兹曼机(Re- stricted Boltzmann Machines, RBMs)提出的深度信念 网络(Deep Belief Networks, DBN ...

  5. Asp.net MVC中三大描述对象之ActionDescriptor 以及继承类ReflectedControllerDescriptor

    ActionDescriptor抽象类中几个基本的属性: ControllerName:被描述的Controller名称,去除后缀Controller的名称.例如:HomeController则为Ho ...

  6. 常见HTTP状态码大全

    我们经常会遇到404.500.302等提示,它们究竟是什么意思呢?除了这几个常见的状态码外,还有哪些我们没有遇到过的但有可能出现的状态码呢?网站的http状态对于网站维护人员来说是相当重要的,当网站出 ...

  7. nutch 1.7 修改代码后如何编译发布,并集群采集攻略

    nutch 1.3之后,分布式的可执行文件与单机可执行文件进行了分离 接上篇,nutch 1.7 导入 eclipse 本篇所要解决的问题:nutch下载下来经过简单的配置即可进行采集,但有时候我们需 ...

  8. BZOJ 1002 轮状病毒

    Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同的n轮状病毒数输出 Sample Inpu ...

  9. salt-API基本验证命令

    配置SALT-API,网上有很多,作下来也很顺利. 我的参考: 作一下验证的记录: curl -k https://x.x.x.x:8000/login -H "Accept: applic ...

  10. 【转】python3 发邮件实例(包括:文本、html、图片、附件、SSL、群邮件)

    特别留意群邮件方式,这是工作中用得多的. 附件,HTML,图片,都需要的. 文件形式的邮件 [python] view plain copy 1.#!/usr/bin/env python3 2.#c ...