构造Scala开发环境并创建ApiDemos演示样例项目
2016-03-22 16:48
513 查看
从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代码
事实上这两个文件ApiDemos并没实用到它们,我们正好能够用它们来測试下Scala的开发环境是否配置好,编译这个项目,假设你在编译后的文件夹out/production/ApiDemos找到 ExampleActive.class 说明IDE编译Scala代码成功了。
最后项目能够在github.com 下载 https://github.com/guidebee/ApiDemos
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 | } |
最后项目能够在github.com 下载 https://github.com/guidebee/ApiDemos
相关文章推荐
- 清理mac的xcode缓存
- css 3D相册,旋转木马练习
- 收藏几个好的博文
- 数据库语法【中级】
- Mysql入门第一课
- Java学习
- maven学习笔记 maven的安装和配置
- spring的功能
- CSS_样式、选择器、继承_tag
- android开发文档镜像地址
- 去除inline-block元素间的空隙
- centos 6.5 搭建svn
- leetcode338 Counting Bits
- VS2008提示无法打开包括文件:“afxcontrolbars.h”
- SQL SERVER 快速插入千万条数据
- 仅一行代码完成各种数据库操作,基于spring的HibernateTemplate
- Java内部DNS查询实现和参数设置
- cocos 项目创建
- javascript:history.go()和History.back()的区别
- Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义