使用Scala + sbt + sbt-android-plugin开发Android应用程序

开发Android程序通常所使用的语言是Java,但Scala做为一种有希望替代Java的语言,也逐渐被越来越多的Android者所熟悉。本文简要的介绍如何使用Scalasbt工具(Simple Build Tool)及sbt-android-plugin创建,编译,安装运行一个简单的Android程序。

  1. 环境准备

    Easwy的开发环境搭建在Ubuntu 10.04.3上,所以第一步是安装Ubuntu,具体过程略过。

    然后需要下载Android SDK,这一步可以参考文档Download the Android SDK完成。

    接下来在Ubuntu里安装Sun Java JDK,如果你使用OpenJDK,可以跳过这一步。首先去掉/etc/apt/sources.list中这两行前的注释,使能Java 6源:

    $ sudo vim /etc/apt/sources.list
    deb http://archive.canonical.com/ubuntu lucid partner
    deb-src http://archive.canonical.com/ubuntu lucid partner 

    然后安装Java 6 JDK:

    $ sudo aptitude install sun-java6-jdk 
  2. 安装Scala、sbt和sbt-android-plugin

    首先安装Scala。到Scala Download Page下载Scala,Easwy下载的是Scala 2.9.1的IzPack Installer,下载后执行:

    $ java -jar scala-2.9.1.final-installer.jar 

    按提示安装即可。

    然后安装sbt。到sbt wiki上下载sbt-launch.jar,然后创建一个脚本来调用它:

    $ vim ~/bin/sbt
    java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar `dirname $0`/sbt-launch.jar "$@"
    
    $ chmod u+x ~/bin/sbt 

    最后安装sbt-android-plugin。因为sbt-android-plugin还在开发中,在此Easwy直接checkout它的源代码,然后安装在本地:

    $ git clone git://github.com/jberkel/android-plugin.git
    $ cd android-plugin
    $ sbt publish-local 

    sbt在第一次运行时会下载它所依赖的包,耗时会久一些,此过程只需进行一次。

  3. 自动生成Android应用程序框架

    设置好上面的环境后,可以使用sbt-android-plugin来自动生成一个简单的Android应用程序框架。插件的作者推荐使用一个名为giter8的模板工具来生成框架。首先需要下载giter8工具:

    $ cd ~/bin
    $ curl https://raw.github.com/n8han/conscript/master/setup.sh | sh
    $ ~/bin/cs n8han/giter8 

    这几条命令会下载一些它们所需的包,需要一些时间。接下来就可以用giter8工具,根据指定的模板自动生成一个Android应用程序:

    $ ~/bin/g8 jberkel/android-app
    
    Template for Android apps in Scala
    
    package [my.android.project]: com.easwy.projects.helloworld
    name [My Android Project]: Hello World
    main_activity [MainActivity]:
    scala_version [2.9.1]:
    api_level [10]:
    useProguard [true]:
    
    Applied jberkel/android-app.g8 in hello-world 

    这条命令会提示你输入一些参数,然后根据你输入的参数生成一个Android应用程序的框架。

    事实上,此命令直接找到保存在github.com上的模板,然后根据模板生成Android应用程序的目录框架。在本例中所使用的模板是jberkel/android-app。你也可以自己创建一套模板,生成更适合自己的目录框架。

  4. 编译、安装、运行Android程序

    由上面的模板生成的Android应用程序,其实就是一个简单的“Hello World!”应用,你可以直接编译、安装、运行它。

    首先进入sbt的交互模式:

    $ cd hello-world
    $ export ANDROID_SDK_ROOT=~/bin/android-sdk-linux_86
    $ sbt

    开始编译:

    > android:package-debug 

    然后用下面的命令启动你的Android模拟器(如果你还没有模拟器,参考Managing Virtual Devices创建一个):

    > android:emulator-start api10

    上面的命令启动了名为api10的模拟器,下面安装运行我们编译出来的Hello World程序:

     > android:start-emulator 

    现在可以看到Hello World程序已经在api10 emulator中运行了。

在后续的文章中,Easwy会继续介绍使用Scala开发Android程序的心得。

更多内容,请阅读易水博客上的其它文章。

[ 参考文档 ]

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/using-scala-sbt-for-android-development/

文章的脚注信息由WordPress的wp-posturl插件自动生成