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



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

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

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



    相关文章:
    【推荐】 知物由学|未来安全隐患:AI的软肋——故意欺骗神经网络
    【推荐】 传统字符型验证安全现状及网易易盾验证码的优势
    【推荐】 使用QUIC

  • 相关阅读:
    Leetcode 1191 K次串联后的最大子数组之和 Kadane 算法
    剑指Offer 38 字符串的排列
    explain结果每个字段的含义说明
    Timsort算法
    synchorized的锁升级
    进程IPC通信方式7种
    死锁知识点总结
    java中各种锁介绍
    运算符优先级记录
    C++ auto关键字
  • 原文地址:https://www.cnblogs.com/zyfd/p/9662113.html
Copyright © 2011-2022 走看看