Android sl4a のプログラムを作成してみる
この Web ページで行うこと
前準備
前準備として,下記のインストールが済んでいること.
- JDK (Java Development Kit)のバージョン1.6.0_2以上と、Android SDK のインストールが終わっていること
Aptana Studio 3 は、http://www.aptana.com/からダウンロード
【関連する外部ページ】
Ruby プログラムを sl4a で実行してみる
- Ruby でファイルを作成する
次のプログラムを作成し、hoge.rb のような名前で保存する
◆Ruby でのファイル書き込みプログラム例(SL4A 用)
require 'android' require 'fileutils' puts 'Dir.pwd = ' + Dir.pwd f = open("data.txt", "w") f.write("hoge") puts 'data.txt created.' puts 'Done.'
- SL4A スクリプトディレクトリの確認
まず、アンドロイド・デバッグ・モニタを起動する.
monitor
スクリプトのディレクトリを見つけるとき、まず、/sdcard や /mnt/sdcard を確認する。 たいてい、これらはシンボリックリンクになっているので、シンボリックリンクの先をたどりつづける。 そうすると、 sl4a/scripts のような名前のディレクトリが見つかる.
* 下の実行例では、スクリプトは /mnt/shell/emulated/0/sl4a/scripts の下に置かれることが確認できる
- Android 機器に Ruby プログラムファイルを転送
先ほど作成した Ruby プログラムファイルを、Android 機器の /mnt/sdcard/scripts 下に転送する
◆ コマンドラインの場合
adb push hoge.rb /mnt/shell/emulated/0/sl4a/scripts
◆アンドロイド・デバッグ・モニタ で転送したい場合
下の画面は、Eclipse で DDMS (アンドロイド・デバッグ・モニタ) を起動し、Ruby プログラムフ ァイルを転送しているところ
- ログ表示の開始
adb logcat
- Android 機器側で sl4a を起動
- さきほど転送した Ruby プログラムファイルを選ぶ
- 起動する
- DDMS の画面を見ると、ファイルが増えていることが分かる
センサー
https://code.google.com/p/android-scripting/wiki/ApiReference
(前準備)SL4A カレントディレクトリの確認
- Android 機器側で sl4a を起動
- SL4A のエディタを使い、次のプログラムを作成し、hoge.rb のような名前で保存する
puts Dir.pwd
- 作成したプログラムを起動する
- 表示されたディレクトリを確認する
表示例1)
* Nexus 7 での表示例
/storage/emulated/0/sl4a
表示例2)
/mnt/sdcard/sl4j/scripts/
パソコン側でプログラムを作成し Android で実行する手順
- プログラムを作成したら hoge.rb のようなファイル名で保存
- 作成したプログラムを, Android 機器の SL4A スクリプトディレクトリに転送 (パソコン側の操作)
* SL4A スクリプトディレクトリは、 機種や設定によって違うようなので確認すること。 Nexus 7 の場合は、/mnt/shell/emulated/0/sl4a/scriptsのようになる。 SL4A スクリプトディレクトリの確認法は、この Web ページの最初の方に記述している
◆ コマンドラインの場合
adb push hoge.rb /mnt/shell/emulated/0/sl4a/scripts
- ログ表示の開始 (パソコン側の操作)
adb logcat
- SL4A を起動する (Android 機器側の操作)
- さきほど転送した Ruby プログラムファイルを選び起動する (Android 機器側の操作)
GPS
◆ プログラム例
require 'android'
require 'fileutils'
droid = Android.new
droid.startLocating
sleep 10
p droid.readLocation
droid.stopLocating
カメラ (書きかけ)
◆ プログラム例
require 'android'
require 'fileutils'
droid = Android.new
droid.cameraCapturePicture 'camera.png'
加速度計 (Accelerometer) (書きかけ)
◆ プログラム例
require 'android'
require 'fileutils'
droid = Android.new
a = droid.sensorsReadAccelerometer
puts a