ズッキーニのプログラミング実験場

プログラミング + アカデミック + 何か面白いこと。 記載されているものは基本的に私が所属する団体とは関係がありません。

   Feb 26

[Android][Scala][Windows7]ScalaでAndroidアプリを作る

by zuqqhi2 at 2014年2月26日
Pocket

目的

JavaよりScalaの方が個人的に開発しやすいので
ScalaでAndroidアプリを作成できるようにしてみる。
本当はUbuntuでやりたかったけれど、VirtualBoxからUSBで接続したAndroidが認識できなかったためWindowsで。

0. JDKのインストール

以下のURLから「Java SE Development Kit」をダウンロードしてインストールする。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

環境変数”path”に以下を加える。

C:\Program Files\Java\jdk1.7.0_51\bin;

1. Scalaのインストール

以下のURLからScalaをダウンロードしてインストールする。
.msiなのでダブルクリックをするだけでインストールできる。
www.scala-lang.org/files/archive/scala-2.10.3.msi

2. sbtをインストールする

以下のURLからsbt-launch.jarをダウンロードして、解凍したフォルダを「C:\sbt」に設置する。
http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.1/sbt-launch.jar

次に以下のコードを「C:\sbt\sbt.bat」として保存する。

set SCRIPT_DIR=%~dp0
java -Dinput.encoding=Cp1252 -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar "%SCRIPT_DIR%sbt-launch.jar" %*

そして、以下を環境変数”path”に追加する。

C:\sbt;

3. Android SDKをインストールする

以下のURLからAndroid SDKをダウンロードして、解凍したフォルダを「C:\」に設置する。
http://developer.android.com/sdk/index.html

そして以下を環境変数”path”に追加する。
異なるバージョンや32bit版についてはadt-bundle-windowsのフォルダ名を変更する。

C:\Program Files (x86)\scala\\bin;C:\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\platform-tools;C:\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\tools;

4. プロジェクトの作成

4-a. Android プラットフォームのインストール

C:\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\SDK Manager.exe
をダブルクリックして起動して、パッケージをインストールする。
ToolsとExtrasは今後便利なので全部、あとは必要なAndroidのバージョンを選択してインストールすれば良い。

4-b. プロジェクトのひな形の生成

以下のコマンドでターゲットを確認する。

$ android list
----------
id: 14 or "android-19"
     Name: Android 4.4.2
     Type: Platform
     API level: 19
     Revision: 2
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
     ABIs : armeabi-v7a
----------

次にプロジェクトのひな形を生成する。
–pathの部分は、今回は適当にデスクトップにしてみる。

$ android create project --target "android-19" --name ScalaTestApp --path "C:\Users\zuqqhi2\Desktop" --activity MainActivity --package org.example.scalatestapp

4-c. Scalaでプロジェクトを書き直す

以下3つのファイルを「scalatestapp」フォルダーの以下に新規作成する。

import android.Keys._

android.Plugin.androidBuild

name := "ScalaTestApp"

platformTarget in Android := "android-18"

run <<= run in Android

install <<= install in Android
sbt.version=0.13.0
addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.0.6")

4-d, MainActivityをScalaに書き直す

package org.sample.scalatestapp;

import android.app.Activity;
import android.os.Bundle;

class MainActivity extends Activity{
  override def onCreate(savedInstanceState:Bundle){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }
}

4-e. コンパイル

$ cd scalatestapp
$ sbt
> compile
> android:package-debug

5. 実機にインストール

以下のサイトを参考にUSB接続設定を行ってください。
http://note.chiebukuro.yahoo.co.jp/detail/n128056

USBでパソコンに接続して
「設定」->「端末情報」->「ビルド番号」を7回タップしてください。
そのあと、
「設定」->「開発者向けオプション」->「USBデバッグ」をオン
にしてください。

次に以下のコマンドを実行して認識されていることを確認して下さい。

$ adb devices
List of devices attached
****** device

最後にインストールして実機で確認します。
インストールするには以下のコマンドを実行してください。

adb install -r bin/ScalaTestApp-debug.apk

これで実機でscalaで書きなおしたサンプルプロジェクトが実行できるようになりました!

Related Posts

  • 2015年3月29日 ScalaとSbtのインストール Scala Sbt インストール Scalaはオブジェクト指向言語と関数型言語の両方の特徴を併せ持つハイブリッドな言語。 SbtはScalaのビルドツール。プロジェクト・パッケージ・ライブラリ管理もしてくれる便利なツール。 環境 OSLinux […]
  • [Play][Scala]PlayFrameworkでリクエスト駆動のバッチを作る2016年12月21日 [Play][Scala]PlayFrameworkでリクエスト駆動のバッチを作る はじめに この記事はScala Advent Calendar […]
  • 2014年9月7日 [sbt]プラグインの利用方法 目的 Scala Sbt でプラグインを使う方法のメモ。 Googleで検索しても門外漢用の記事がなくて苦労したため、メモしてみた。 環境 OSLinux www4322gi 3.2.0-64-generic #97-Ubuntu SMP […]
  • 2013年5月20日 [Scala]線形補間でデータのスケーリング やりたいこと Scalaの勉強で簡単なデータ列の加工をしてみる。 データの大きさを合わせる為に、 線形補間を使ってデータ列を0から1の値にスケーリングする。 線形補間の式はこれ 最低値からの差分を出して、最も大きな差分の割合を計算する。 ソースコ […]
  • 2013年6月1日 [Scala][Play2]EC2上にインストール なんとなくscalaが使いたくなって入れてみた。 以上。 I would like to use scala, so I installed play framework. That's […]
  • 2013年3月3日 [Scala]Pancake Sort Image Video of Pancake Sort http://www.youtube.com/watch?feature=player_embedded&v=kk-_DDgoXfk Source code of scala Image Video […]
Pocket

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.