2012年3月16日金曜日

Android on UbuntuでUbuntu側からAndroidのアプリを起動する

Androidでコマンドラインからintentを発行してアプリを起動するのにamというコマンドが使えます。
それの中身は以下の通り。たった数行のshellスクリプトでした。
/system/bin/am
# Script to start "am" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/am.jar
exec app_process $base/bin com.android.commands.am.Am "$@"
簡単なアイディアとして、これをchrootで実行すれば、Ubuntu側から同じことができるはずです。amコマンドそのままではchrootでうまく動かなかったので、以下のように修正してam2を作りました。
/system/bin/am2
#!/system/bin/sh
# Script to start "am" on the device, which has a very rudimentary
# shell.
#
export ANDROID_ASSETS=/system/app
export ANDROID_BOOTLOGO=1
export ANDROID_DATA=/data
export ANDROID_PROPERTY_WORKSPACE=9,32768
export ANDROID_ROOT=/system
export ASEC_MOUNTPOINT=/mnt/asec
export BOOTCLASSPATH=/system/framework/core.jar:\
/system/framework/ext.jar:/system/framework/framework.jar:\
/system/framework/android.policy.jar:\
/system/framework/services.jar
export EXTERNAL_STORAGE=/mnt/sdcard
export LD_LIBRARY_PATH=/system/lib
export PATH=/sbin:/system/sbin:/system/bin:/system/xbin

base=/system
export CLASSPATH=$base/framework/am.jar
exec app_process $base/bin com.android.commands.am.Am "$@"
今度はUbuntu側で使用するスクリプトです。単に引数を与えてAndroid側のam2をchrootで実行するだけです。
Androidの電卓を起動するスクリプト
android_calc
sudo chroot /android /system/bin/am2 start -n com.android.calculator2/.Calculator
Androidのブラウザを起動するスクリプト
android_view
url=$1
if [ $# -eq 0 ]; then
url="http://www.kmckk.co.jp/"
fi
sudo chroot /android /system/bin/am2 start -a android.intent.action.VIEW $url
これでUbuntuのshellから以下のようにすればAndroidのブラウザが起動できます。
# ./android_view http://www.asahi.com/

0 件のコメント:

コメントを投稿