zoukankan      html  css  js  c++  java
  • 如何搭建SBT编译Scala开发的Android工程


    作者:戚明峰


    最近接触了shadowsocks的Android客户端项目源码(https://github.com/shadowsocks/shadowsocks-android),刚好这个项目是使用Scala开发的.至于为什么使用Scala开发Android项目,大概原因如下:

    Android 开发一直有两个无法回避的问题:基于 JVM 的设计使得系统的性能受到拖累;Java 冗繁的语法令人绝望。Scala 作为一门 state-of-the-art 的编程语言,兼具面向对象以及函数式语言的特点。其设计在 JVM 之上,与 Java 类库完全兼容,甚至可以与 Java 代码相互转换。可以说,Scala 是当前替代 Java 的最好选择,在不需要放弃已经无比先进的 JVM 和足够完备的 Java 生态的前提下,开发者们可以获得更先进的语言特性和更高的开发效率。至于Android 开发,Scala 则提供了全新的体验,在配合 Scaloid 的情况下代码量可以大大减少。

    言归正传,如何搭建SBT编译Scala开发的Android工程.


    一、SBT构建工具的安装

    直接访问SBT的官网(http://www.scala-sbt.org/download.html)下载安装包,安装SBT即可。Windows平台下,有msi安装包,安装后直接自动完成了配置。

    运行命令行 sbt about检验是否安装成功。成功安装会输出以下内容:

                           

    二、环境变量的配置

    配置环境变量ANDROID_HOME,指向Android SDK的目录地址。

    如果项目中有使用到NDK编译的,需要配置ANDROID_NDK_HOME环境变量。


    三、SBT构建脚本的编写

    在项目的根目录创建文件夹project,并创建文件plugins.sbt,在文件中添加如下代码:

    addSbtPlugin("org.scala-android" % "sbt-android" % "1.6.6")

    其实是为编译工程指定sbt-android插件的版本为1.6.6。

    接下来编写SBT编译脚本。在项目的根目录,创建文件build.sbt,并进行脚本的的编写。具体语法和API请自行Google。

    四、编译release安装包

    执行编译脚本,构建Android项目,命令如下:

    sbt clean android:package-release

    等待插件等下载完成和项目编译完成之后,在target/android/output 目录下可以找到apk安装包。

     

    附:

    SBT的常用命令:

    • compile

      • Compiles all the sources in the      project, java and scala

      • Compile output is automatically      processed through proguard if there are any Scala sources, otherwise; it      can be enabled manually.

    • android:package-release

      • Builds a release APK and signs it      with a release key if configured

    • android:package-debug

      • Builds a debug APK and signs it using      the debug key

    • android:package

      • Builds an APK for the project of the      last type selected, by default debug

    • android:test

      • run instrumented android unit tests

    • android:install

      • Install the application to device

    • android:run

      • Install and run the application      on-device

    • android:uninstall

      • Uninstall the application from device



    网易云产品免费体验馆,无套路试用,零成本体验云计算价值。  

    本文来自网易实践者社区,经作者戚明峰授权发布

    更多网易研发、产品、运营经验分享请访问网易云社区



    相关文章:
    【推荐】 如何实现360度的手游安全防护?网易云易盾专家分享最新实践
    【推荐】 聊聊空状态设计

  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/163yun/p/9662112.html
Copyright © 2011-2022 走看看