Android sl4a のプログラムを作成してみる

この Web ページで行うこと

  • Ruby プログラムを sl4a で実行してみる
  • Rby プログラム例
  • 前準備

    前準備として,下記のインストールが済んでいること.

    Ruby プログラムを sl4a で実行してみる

    1. 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.' 
      
    2. SL4A スクリプトディレクトリの確認

      まず、アンドロイド・デバッグ・モニタを起動する.

      monitor 
      

      スクリプトのディレクトリを見つけるとき、まず、/sdcard や /mnt/sdcard を確認する。 たいてい、これらはシンボリックリンクになっているので、シンボリックリンクの先をたどりつづける。 そうすると、 sl4a/scripts のような名前のディレクトリが見つかる.

      * 下の実行例では、スクリプトは /mnt/shell/emulated/0/sl4a/scripts の下に置かれることが確認できる

    3. Android 機器に Ruby プログラムファイルを転送

      先ほど作成した Ruby プログラムファイルを、Android 機器の /mnt/sdcard/scripts 下に転送する

      ◆ コマンドラインの場合

      adb push hoge.rb /mnt/shell/emulated/0/sl4a/scripts
      

      ◆アンドロイド・デバッグ・モニタ で転送したい場合

      下の画面は、Eclipse で DDMS (アンドロイド・デバッグ・モニタ) を起動し、Ruby プログラムフ ァイルを転送しているところ

    4. ログ表示の開始
      adb logcat
      
    5. Android 機器側で sl4a を起動
    6. さきほど転送した Ruby プログラムファイルを選ぶ

    7. 起動する

    8. DDMS の画面を見ると、ファイルが増えていることが分かる

    センサー

    https://code.google.com/p/android-scripting/wiki/ApiReference

    (前準備)SL4A カレントディレクトリの確認

    1. Android 機器側で sl4a を起動
    2. SL4A のエディタを使い、次のプログラムを作成し、hoge.rb のような名前で保存する
      puts Dir.pwd 
      
    3. 作成したプログラムを起動する
    4. 表示されたディレクトリを確認する

    表示例1)

    * Nexus 7 での表示例

    /storage/emulated/0/sl4a
    

    表示例2)

    /mnt/sdcard/sl4j/scripts/ 
    

    パソコン側でプログラムを作成し Android で実行する手順

    1. プログラムを作成したら hoge.rb のようなファイル名で保存
    2. 作成したプログラムを, Android 機器の SL4A スクリプトディレクトリに転送 (パソコン側の操作)

      * SL4A スクリプトディレクトリは、 機種や設定によって違うようなので確認すること。 Nexus 7 の場合は、/mnt/shell/emulated/0/sl4a/scriptsのようになる。 SL4A スクリプトディレクトリの確認法は、この Web ページの最初の方に記述している

      ◆ コマンドラインの場合

      adb push hoge.rb /mnt/shell/emulated/0/sl4a/scripts
      
    3. ログ表示の開始 (パソコン側の操作)
      adb logcat
      
    4. SL4A を起動する (Android 機器側の操作)
    5. さきほど転送した 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