Sl4a-quick-guide

提供:Dev Guides
移動先:案内検索

SL4A-Androidの概要

AndroidはLinuxベースのオペレーティングシステムで、主にスマートフォンやタブレットなどのポータブルデバイス用に設計されています。 Androidは単なるオペレーティングシステムではありません。 これは、ユーザー、開発者、およびメーカーに多くの機能を提供するソフトウェアスタックです。

Android Version Features
Android (Alpha) 1.0 First version of Android
Android 1.5 (Cupcake) Added auto-rotation option, copy and paste feature added in the web browser
Android 1.6 (Donut) Voice search and Search box were added
Android 2.0/2.1 (Éclair) Bluetooth 2.1 support
Android 2.2/2.2.3(Froyo) Support for Adobe Flash 10.1
Android 2.3/2.3.7 (Gingerbread) Internet calling, one touch word selection and copy/paste
Android 3.0/3.2.6 (Honeycomb) This version is available only for tablets.Features include support for multi-core processors, ability to encrypt all user data
Android 4.0/4.0.4 (Ice cream sandwich) Virtual button in the UI, ability to shut down apps that are using data in the background
Android 4.1/4.3.1 (Jelly Bean) Based on Linux Kernel 3.0.31? Smoother User Interface, Bluetooth data transfer for Android Beam
Android 4.4/4.4.4,4.4W/4.4W.2 (KitKat) Integration with cloud storage, Built-In sensors, Lock Art Screen
Android 5.0/5.1.1 (Lollipop) Improved RAM and Battery Management, Fixes for sudden App closure, issues with wireless connections, notifications etc.

オープンソースであり、ビジネスに優しい。 ユーザーは、組み込みアプリケーションを任意のアプリケーションに置き換えることができます。 Androidの多くのバージョンは、元のリリースからリリースされています。

SL4A-Androidアーキテクチャ

Androidソフトウェアスタックはさまざまなレイヤーで構成され、各レイヤーは明確に定義された動作を明示し、その上のレイヤーに特定のサービスを提供します。 次の図は、Androidの広範なアーキテクチャとその主要コンポーネントを示しています。

Androidアーキテクチャ

Linuxカーネル

Androidは、従来のLinuxシステムに対して組み込みシステムで実行するように変更されたLinuxカーネルコードに基づいて構築されています。 多くの一般的なデバイスのハードウェアドライバーがカーネルに組み込まれているため、デバイスの移植性が確保されます。 安全なユーザーベースの許可モデルに基づいており、あるアプリケーションが別のアプリケーションの情報を読み取ったり、その実行に干渉したりするのを防ぎます(例: CPU、メモリ、デバイスなど)。

ネットワークおよびBluetooth機能、ロガー、アラーム、電源管理、低メモリキラー、バインダーIPCメカニズムへのグループIDベースのアクセスは、カーネルのいくつかの注目すべき機能強化です。

ライブラリとランタイム

これは、アーキテクチャの2番目の層を形成します。 ハードウェアに最適化されたC、C ++ライブラリのセット(ネイティブレイヤーとも呼ばれます)が含まれています。 例には、メディアライブラリ、SQLite、SSL、Bionic、WebKitなどが含まれます。

Androidランタイムは、Dalvik VMとCore Librariesの2つの異なるコンポーネントで構成されています。 Dalvik VMは、Androidプラットフォーム上のアプリケーションに実行環境を提供します。 コアライブラリのセットは、Java APIで使用可能な機能のほとんどを提供します。

アプリケーションフレームワーク

この層は、アプリケーションへのサービスとしてライブラリを利用可能にします。 このレイヤー内の最も重要なコンポーネントには、ロケーションマネージャー、リソースマネージャー、アクティビティマネージャー、通知マネージャーがあります。

アプリケーション

デフォルトでは、Androidにはブラウザー、SMSプログラム、カレンダー、連絡先マネージャー、地図などの豊富なアプリケーションセットが付属しています。 ユーザーが希望する場合、Google Playはこれらのアプリケーションの代替手段を提供します。

ビルディングブロック

アプリケーションは、4つの機能ブロックでシステムとインターフェイスできます。 彼らは次のとおりです-

  • アクティビティ-アクティビティは、ユーザーが視覚的に表示または対話する単一の画面を表します。 たとえば、メールアプリには、新しいメールのリストを表示する1つのアクティビティ、メールを作成する別のアクティビティ、およびメールを読むための別のアクティビティがあります。
  • サービス-処理の大部分は、アプリケーションのこれらのサービスによって行われます。 これは、ユーザーインターフェイスの背後にあるロジックです。 たとえば、サービスがユーザーが別のアプリを使用しているときにバックグラウンドで音楽を再生したり、ユーザーのアクティビティとの対話をブロックせずにネットワーク経由でデータを取得したりできます。
  • Broadcast Receivers -システムまたはアプリケーションイベントをリッスンし、それに関する通知を発行するために登録できるコンポーネント。 システムから発信されるブロードキャストのインスタンスは「ローバッテリー通知」であり、アプリケーションレベルのブロードキャストは「ダウンロード成功」通知です。
  • コンテンツプロバイダー-コンテンツプロバイダーは、複数のアプリケーション間でデータを管理および支援します。 例えば コンテンツプロバイダーを使用して、連絡先データを共有できます。

これらのコンポーネントは、 Intents と呼ばれるメッセージを通じて相互に作用します。

SL4A-Androidのスクリプトレイヤー

Androidスクリプティングは、自動化やプロトタイピングなどの単純なタスクのための便利なツールで、Javaプログラミング言語を使用するのとは対照的です。 Scripting Layer for Android(SL4A)は、Androidプラットフォーム上の複数のスクリプトソリューションのプラットフォームを提供します。

SL4Aとは何ですか?

Scripting Layer for Android(SL4A)は、JAVA以外の言語を使用して、Androidデバイスでタスクを自動化する簡単なスクリプトを作成するプラットフォームを提供するライブラリです。

もともとAndroid Scripting Environment(ASE)と呼ばれていたSL4Aは、2009年6月にGoogle Open Sourceブログで初めて発表されました。 このプロジェクトは、主にデイモンケーラーの努力によって今日の光を見出し、他の開発者の貢献によって成長しました。

最も一般的なスクリプト言語をサポートしています。 これらには-

  • Beanshell 2.0b4
  • JRuby 1.4
  • ルア5.1.4
  • Perl 5.10.1
  • PHP 5.3.3
  • Python
  • Rhino 1.7R2
  • ジャバスクリプト
  • TCL

なぜSL4A –スクリプト言語対JAVA

おそらく最初に尋ねる質問の1つは、「* Javaの代わりにSL4Aを使用する理由*」です。

まず、誰もがJavaのファンではありません。 スクリプト言語は、Javaと比較して簡単なプログラミング環境を提供します。

第二に、この言語では編集/コンパイル/実行のデザインループを使用する必要があります。 これは、何らかの修正が必要になるたびに、アプリケーションを編集、再コンパイル、実行することを意味します。 それどころか、スクリプトはその場で解釈および実行されます。 さらに、SL4Aは、多くの場合、デスクトップ環境用に作成されたコードを再利用することも可能にします。

次の図は、SL4AをターゲットとするPythonとJavaでそれぞれ記述されたスクリプトを示しています。

Python Targeting SL4A

SL4A-アーキテクチャ

SL4Aには3つの主要なコンポーネントがあります。 彼らは次のとおりです-

  • スクリプト通訳
  • Android RPCクライアント
  • ファサード

この章では、これら3つのコンポーネントについて詳しく説明します。

スクリプト通訳

SL4Aはスクリプトホストとして機能します。 Python、Ruby、Lua、BeanShell、JavaScript、TCLなどの多くのスクリプト言語をサポートしています。 SL4Aは、そのスクリプト言語用の新しいSL4Aインタープリターを開発することにより、新しいスクリプト言語を動的に組み込むことにより拡張できます。

各スクリプトは、独自のインタープリターインスタンスで実行されます。 したがって、相互に影響を与えることなく、複数のスクリプトを同時に実行できます。

Android RPCクライアント

インタプリタインスタンス内で実行されるスクリプトは、Android Proxy RPC Clientを介してSL4Aアプリケーションと通信します。 クライアントはSL4Aへの*リモートプロシージャコール(RPC)接続を確立し、スクリプトがAndroidフレームワークと対話できるようにします。 SL4Aファサードは、このコミュニケーションを促進します。 データは *JSON ペイロードとして送信されます。

Android RPCクライアントは、サポートされているすべてのスクリプト言語に対応しています。 クライアントモジュールは、SL4A Webサイトhttps://code.google.com/hosting/moved?project=android-scripting[https://code.google.com]から入手できます。

Scripting Layer Android

ファサード

ファサードは、基になるAndroid APIへのスクリプトのアクセスを簡素化します。 SL4Aは、AndroidFacade、BluetoothFacade、ActivityManagerFacade、CommonIntentsFacadeなどの広範なファサードセットを介して、Android Framework APIをスクリプトに公開します。

SL4A機能は、カメラ、ロケーション、バッテリーマネージャー、メディアプレーヤー、メディアレコーダーなどの豊富な機能のバスケットを提供します。

SL4Aを使用する

SL4Aシステムは、次の種類のタスクに適しています-

  • * RADプログラミング*-SL4Aでは、Rapid Application Development(RAD)アプローチを使用して、プロトタイプアプリケーションを迅速に作成できます。 アイデアの実現可能性が確認されたら、本格的なAndroidアプリケーションを作成できます。
  • テストスクリプト-テストスクリプトの記述に使用できます。
  • Building Utilities -SL4Aを使用して、小さなタスクを実行したり、反復タスクの特定の側面を自動化するユーティリティスクリプトまたはツールを構築できます。

SL4A-Pythonライブラリ

Pythonには標準ライブラリがあります。これには、これらのコードを簡単にコーディングおよび再利用するのに役立つさまざまなルーチンが含まれています。 *モジュール*は、変数の定義と関連する一連のルーチンまたは関数を含むPythonファイルです。

Pythonライブラリによって提供されるコア*モジュール*の一部は次のとおりです-

  • 組み込み関数と例外-Pythonは起動時にこれらのモジュールの両方をインポートし、すべてのプログラムでコンテンツを利用できるようにします。 組み込みモジュールは len、int、range などの組み込み関数を定義し、例外モジュールはすべての組み込み例外を定義します。
  • オペレーティングシステムインターフェイスモジュール-OSモジュールは、スクリプトを介してOSレベルの操作を実行できるようにする機能を提供します。
  • タイプサポートモジュール-タイプサポートモジュールには、実装する文字列モジュール、一般的に使用される文字列操作が含まれます。 mathモジュールは、数学演算などを提供します。
  • 正規表現-正規表現は、特定の構文で記述された文字列パターンであり、文字列または部分文字列の一致または抽出に使用できます。 reモジュールは、Pythonの正規表現サポートを提供します。
  • 言語サポートモジュール-sysモジュールは、モジュール検索パスやインタープリターバージョンなど、さまざまなインタープリター変数へのアクセスを提供します。 operatorモジュールは、多くの組み込み演算子と機能的に同等のものを提供します。 コピーモジュールを使用すると、オブジェクトをコピーできます。 最後に、gcモジュールを使用すると、Python 2.0のガベージコレクター機能をより詳細に制御できます。

JSONについて

JavaScript Object Notation(JSON)は、データ交換形式です。 多くのプログラミング言語はJSONをサポートしていますが、Webサイトやブラウザー拡張機能を含むJavaScriptベースのアプリには特に役立ちます。 JSONは、数値(ブール値、文字列、null、配列(値の順序付けられたシーケンス)、およびこれらの値(または他の配列とオブジェクト)で構成されるオブジェクト(文字列値マッピング)を表すことができます。

SL4A-開発環境

この章では、開発環境をセットアップする手順について詳しく説明します。 また、SL4Aを使用するようにデバイスを構成する方法についても説明します。

開発環境

SL4Aで開発を開始する前に、いくつかの前提条件をダウンロードしてインストールする必要があります。

Java開発キット(JDK)

まず、システムに最新バージョンのJDK(JDK 5以降)がインストールされている必要があります。

JDKの互換性のあるバージョンが環境でインストールされていることを確認するには、次のようにコマンドラインまたはコンソール端末で次を実行します-

$javac –version
$java –version

注意-PATH環境変数をjdk/binフォルダーに設定します

Python

PythonはデフォルトでMac OS XおよびLinuxにインストールされている可能性があります。 Windows OSには、デフォルトでPythonがインストールされていません。 Pythonはhttps://www.python.org/download/releases/[http://python.org]からダウンロードできます。

インストールしたら、Windowsパスを変更してPythonディレクトリを追加します。

Pythonがシステムにインストールされているかどうかを確認するには、ターミナルウィンドウを開いてPythonと入力します。

管理者CMD

Android.pyファイル

ダウンロードする必要がある唯一の追加ファイルは android.py ファイルです。 Pythonインストールディレクトリの/Lib/site-packagesの下にこのファイルのコピーを含めます。 このファイルには、Android開発用のpythonモジュールが含まれています。

Android.py File

Android SDK

*Android SDK* には多くのツールが提供されています。 最初のステップは、オペレーティングシステムに適切なインストールファイルをダウンロードすることです。 Mac OS X、Linux、およびWindows用のインストーラーが利用可能です。 SDKインストーラーは、https://developer.android.com/sdk/indexl [https://developer.android.com/sdk]にあります。

Android SDKツール

ここで説明する開発環境はWindowsです。 Googleは、WindowsにSDKをインストールするためのzipファイルと実行可能ファイルを提供します。

開発マシンへのEclipseのインストール

Eclipseは、Java言語で記述された拡張可能な統合開発環境(IDE)として開発されました。 動作するにはJavaのインストールが必要です。 Eclipseには、クラシック、ガレリオ、ルノ、火星、ネオンなど、さまざまな種類があります。

単一の.zipファイルで配布されます。 必要なのは、プログラムの内容を解凍することだけです。 抽出されたフォルダーにはEclipse.exeファイルがあります。 ファイルをダブルクリックしてプログラムを開始します。

Eclipse.exeファイル

SL4A-デバイスの構成

SL4Aのインストール

場合によっては、デバイスにスクリプトを作成して実行することもできます。 AndroidのScripting Layerは、同じことを実現するのに役立ちます。 デバイスにSL4Aをインストールするには、以下の手順に従ってください-

  • デバイスに SL4A.apk ファイルをダウンロードします。
  • 通知画面から .apk ファイルを起動します。
  • SL4Aを実際にインストールするには、次の画面で[インストール]を選択します。

または、Androidデバイスに対してエミュレータを使用することを選択した場合は、エミュレータ内のブラウザを使用してSL4Aをインストールします。 デバイスへのSL4Aインストールの初期画面を以下に示します。

SL4Aインストール初期画面

Pythonインタープリターの追加

デバイスにpythonインタープリターをインストールするには、以下の手順を実行します-

  • *ステップ1 *-SL4Aアプリケーションを開始します。
  • *ステップ2 *-*メニュー*ボタンをクリックします。
  • *ステップ3 *-オプションのリストが表示されます。 *表示*を選択します。
  • *ステップ4 *-ダイアログボックスから*インタープリター*オプションを選択します。 [追加]をクリックします。
  • ステップ5 *-ダウンロード可能なインタープリターのリストが表示されます。 *Python 2.62 (またはそれ以上)を選択します。

エミュレーターにpythonインタープリターをインストールするには、以下の手順に従ってください-

  • *ステップ1 *-エミュレーターがバックグラウンドで実行されていることを確認します。
  • *ステップ2 *-python_for_android_rx.apkをダウンロードします。
  • *ステップ3 *-端末のコマンドラインシェルで、apkファイルが保存されている場所に移動し、コマンドラインに次のように入力します-
adb  install  python_for_android_rx.apk

SL4Aは、複数の言語のスクリプトエンジンをサポートしています。 いくつかの言語固有のapkファイルのリストは以下に記載されています-

  • beanshell_for_android_rx.apk
  • jruby_for_android_rx.apk
  • lua_for_android_rx.apk
  • perl_for_android_rx.apk
  • python_for_android_rx.apk
  • rhino_for_android_rx.apk

Windows OSへの接続

  • ステップ1 *-Windows用のUSBドライバーをダウンロードしてインストールします。
  • ステップ2 *-デバイスをセットアップします-
  • デバイスの[すべてのアプリ]画面からSL4Aを起動します。
  • *メニュー*ボタン→*表示*をタップします。
  • リストから通訳を選択します。
  • *メニュー*ボタン→*サーバーの起動*をタップします。
  • Public (Wi-Fi経由で接続する)または Private (USB経由で接続する)を選択します。

ステップ3 *-環境変数(ユーザー変数) *AP_PORT と値 9999 を追加します。

Android SDKとEclipseについては、以降の章で説明しました。

SL4A-Android SDKのナビゲート

開発者がAndroidプラットフォーム用のアプリケーションを作成できるようにするソフトウェア開発キット。 Android SDKには、ソースコード、開発ツール、エミュレーター、およびAndroidアプリケーションをビルドするために必要なライブラリーを含むサンプルプロジェクトが含まれています。 この章では、Android SDKと、SL4Aを対象としたコードの開発にAndroid SDKを使用する方法について説明します。

SDKコンポーネント

Android SDKをインストールしたディレクトリツリーには、ドキュメント、サンプルコード、およびいくつかのツールを含むフォルダーのリストが含まれています。 toolsサブディレクトリに移動すると、多数の実行可能ファイルが明らかになります。

以下に、Android SDK内のいくつかの重要なコンポーネントについて説明します。

SDKマネージャー

Android SDK Managerは、SDKツール、プラットフォーム、その他のコンポーネントをパッケージに分割して、アクセスと管理を容易にします。 SDKは、新規または更新されたSDKパッケージとアドオンツールを確認するように構成できます。

Android SDK Manager

デフォルトでは、Android StudioはAndroid SDKの更新を確認しません。 自動Android SDKチェックを有効にするには-

  • ステップ1 *-*ファイル設定外観と動作システム設定→*更新*を選択します。
  • *ステップ2 *-[Android SDKの更新を自動的にチェックする]チェックボックスをオンにして、更新チャネルを選択します。
  • ステップ3 *- *OK または*適用*をクリックして、更新チェックを有効にします。

[SDK更新サイト]タブには、Android StudioがAndroid SDKおよびサードパーティの更新を確認するサイトが表示されます。 独自のAndroid SDKアドオンをホストする他のサイトを追加し、それらのサイトからSDKアドオンをダウンロードできます。

Androidエミュレーター

*AVD Manager* は、Androidエミュレーターに必要なAndroid仮想デバイス(AVD)を作成および管理できるグラフィカルユーザーインターフェイスを提供します。 Android仮想デバイス(AVD)は、エミュレーターに必要な構成と仮想ストレージを含む多数のファイルで構成されています。 さまざまなデバイスをシミュレートするために、必要な数のAVDを作成できます。

次の手順を使用して、EclipseでAVDを作成できます-

  • ステップ1 *-*ウィンドウ→* AVDマネージャー*を選択します。
  • *ステップ2 *-*新規*をクリックします。
  • *ステップ3 *-AVDの名前を入力し、ターゲットを選択して、他の機能の値を指定します。
  • ステップ4 *- AVDの作成*をクリックします。

キーボードを備えたデバイスの場合、ホストキーボードからデバイス上のアクションへのマッピングの標準セットがあります。 デフォルトの* Emulatorキーマッピング*は-

Emulator Key Mapping on Host Device
BUTTON_CALL F3
BUTTON_HANGUP F4
BUTTON_HOME Home
BUTTON_BACK Escape
BUTTON_MENU F2, PageUp
BUTTON_STAR Shift+F2, PageDown
BUTTON_POWER F7
BUTTON_SEARCH F5
BUTTON_CAMERA Ctrl+Keypad_5, Ctrl+F3
BUTTON_VOLUME_UP Keypad_Plus, Ctrl+F5
BUTTON_VOLUME_DOWN Keypad_Minus, Ctrl+F6
TOGGLE_NETWORK F8
TOGGLE_TRACING F9
TOGGLE_FULLSCREEN Alt-Enter
BUTTON_DPAD_CENTER Keypad_5
BUTTON_DPAD_UP Keypad_8
BUTTON_DPAD_LEFT Keypad_4
BUTTON_DPAD_RIGHT Keypad_6
BUTTON_DPAD_DOWN Keypad_2
TOGGLE_TRACKBALL F6
SHOW_TRACKBALL Delete
CHANGE_LAYOUT_PREV Keypad_7, Ctrl+F11
CHANGE_LAYOUT_NEXT Keypad_9, Ctrl+ F12
ONION_ALPHA_UP Keypad_Multiply
ONION_ALPHA_DOWN Keypad_Divide

android サブディレクトリの default.keyset ファイルを編集して、これらの設定を変更できます。

Androidデバッグブリッジ

ADB、Android Debug Bridgeは、GoogleのAndroid SDKに含まれているコマンドラインユーティリティです。 ADBは、コンピューターからUSB経由でデバイスを制御したり、ファイルを前後にコピーしたり、アプリをインストールおよびアンインストールしたり、シェルコマンドを実行したりできます。

エミュレータを実行し、実際のデバイスを接続している場合、ADBコマンドを実際のデバイスに配置する場所を指定し、オプション- d を使用し、エミュレータには-eを使用します。 以下は、ADBのフラグとコマンドのリストです。

S.No. ADB flags & Description
1

-d

接続されている唯一のUSBデバイスにデバイスを向けます。複数のUSBデバイスが接続されている場合、エラーを返します。

2

-e

実行中の唯一のエミュレータにコマンドを送信します。複数のエミュレータが実行されている場合、エラーを返します。

3

-s <serial_number>

指定されたシリアル番号を使用して、USBデバイスまたはエミュレータにコマンドを送信します。

4

devices

接続されているすべてのデバイスをリストする

5

connect <host>:<port>

TCP/IP経由でデバイスに接続する

6

disconnect <host>:<port>

TCP/IPデバイスから切断する

S.No. ADB commands & Description
1

adb push <local> <remote>

ファイル/ディレクトリをデバイスにコピー

2

adb pull <remote> [<local>]

デバイスからファイル/ディレクトリをコピーする

3

adb sync [<directory>]

<ディレクトリ>が指定されていない場合、/systemパーティションと/dataパーティションの両方が更新されます。 「システム」または「データ」の場合、対応するパーティションのみが更新されます。

4

adb shell

リモートシェルをインタラクティブに実行する

5

adb emu <command>

エミュレータコンソールコマンドを実行する

6

adb logcat

デバイスログを表示する

7

adb forward <local> <remote>

フォワードソケット接続

8

adb install [-l] [-r] [-s] <file>

このパッケージファイルをデバイスにプッシュしてインストールします。 (-lアプリをフォワードロックします)

(-rアプリを再インストールし、データを保持します)

(-sは内部ストレージではなくSDカードにインストールします)

9

adb uninstall [-k] <package>

このアプリパッケージをデバイスから削除します。 -kは、データとキャッシュのディレクトリを保持することを意味します

10

adb bugreport

バグレポートに含める必要があるデバイスからのすべての情報を返します。

11

adb help

このヘルプメッセージを表示

12

adb version

バージョン番号を表示

シェル

シェルは、ユーザーからのキーボード入力をリッスンし、ユーザーの指示に従ってアクションを実行するプログラムです。 adb シェルコマンドは、エミュレータまたは接続されたデバイスにシェルコマンドを送信し、結果を表示するUnixを提供します。 対話型シェルをローカルで起動するためにも使用できます。

リモートシェルを入力せずに単一のコマンドを発行するには、このようなシェルコマンドを使用します-

adb [-d|-e|-s <serialNumber>] shell <shell_command>

または、エミュレータ/デバイスでリモートシェルに入る-

adb [-d|-e|-s <serialNumber>] shell

リモートシェルを終了する準備ができたら、 CTRL + D を押すか、 EXIT と入力します。

Dalvikデバッグモニターサービス

Androidには、デバッグツールであるDalvik Debug Monitor Service(DDMS)が付属しています。 このツールは、ポート転送サービス、デバイスでの画面キャプチャ、着信コール、SMSスプーフィングなどの追加サービスを提供します。

Dalvik Debug Monitor Service

DDMSが起動すると、 adb に接続します。 デバイスが接続されると、VM監視サービスがadbとDDMSの間に作成されます。 このサービスは、デバイス上のVMが開始または終了したときにDDMSに通知します。

VMが実行を開始すると、そのプロセスIDが adb を介してDDMSに送信され、 adb デーモンがVMのデバッガーへの接続を開きます。 DDMSは、カスタムワイヤプロトコルを使用してVMと通信できるようになりました。

SL4A-Eclipseでの作業

この章では、Eclipse IDEの基本と、Android用のPythonスクリプトを開発するための構成について説明します。

Eclipseの基礎

Eclipseは、多くの機能とオプションを備えたアプリケーションです。 プログラムを初めて起動すると、ようこそ画面が表示されます。 Eclipseは、プログラムのさまざまな機能と操作に対処するために、いくつかの基本的な概念と用語を使用しています。

これらの用語のいくつかはここで説明されています-

*Workbench* -Eclipseアプリケーションのウィンドウ全体を識別します。 複数の子ウィンドウが含まれ、各ウィンドウには複数のタブが含まれます。

ワークスペース-Eclipseを使用して作成されたプロジェクトが保存されるシステムのファイルシステム上の場所を指します。

ワークスペースランチャー

パースペクティブ-これは、メニューとウィンドウが一度に開く個人的な好みです。 Eclipseには、コードの作成、デバッグなど、一般的な使用のために構成された多くのパースペクティブがあります。 また、アクティビティが変わったときに別の視点に切り替えることもできます。 パースペクティブもカスタマイズ可能です。

Eclipse用プラグインのインストール

SL4Aアプリケーションを開発できるようにEclipseを構成する必要があります。 ホストに前提条件が正常にインストールされたら、Eclipse用の次のプラグインを追加する必要があります-

次の手順を使用して、Eclipseにプラグインをインストールできます-

  • *ステップ1 *-*ヘルプ*をクリックします。
  • *ステップ2 *-*新しいソフトウェアのインストール*を選択します。
  • *ステップ3 *-*追加*をクリックします。
  • ステップ4 *-プラグインにアクセスするための名前とURLを指定します。 *OK をクリックしてください。
  • *ステップ5 *-すべてのツールを選択し、[次へ]をクリックします。 プラグインのインストールが開始されます

リポジトリの追加

EclipseのPythonインタープリター

指定された手順に従って、EclipseでPythonインタープリターを構成します。

  • ステップ1 *- *WindowsPreferences を選択します。
  • ステップ2 *- *PyDevインタープリターPython に移動します。
  • *ステップ3 *-*新規*ボタンをクリックします。
  • *ステップ4 *-インタープリターの名前を指定します。 [場所]フィールドに、python.exeへのパスを入力します。 たとえば、C:\ Python26 \ python.exe
  • ステップ5 *- *OK をクリックします。

PythonインタープリターEclipse

SL4A-Android APIの探索

SL4Aは、基礎となるAndroid APIと通信するためのFacade Design Patternに基づいています。 この章では、ファサードデザインパターンとさまざまなSL4A APIファサードの動作について説明します。

ファサードデザインパターンとは何ですか?

ファサードは、アプリケーション内の関連インターフェースへのアクセスを簡素化するインターフェースを提供するオブジェクトです。 言い換えれば、ファサードはクライアントからライブラリの動作を隔離し、各サブシステムレベルへのエントリポイントとして機能します。 したがって、クライアントはファサードを介してのみ通信します。 次の図は同じことを説明しています。

ファサードデザインパターン

SL4AおよびAndroid APIファサード

SL4Aは、サポートする各言語のインタープリターをホストします。 インタープリターは、ファサードと呼ばれるインターフェースを介して、基礎となるAndroid APIにアクセスします。

次の表は、トップレベルのファサードとそれらが提供する機能を示しています-

次の表は、トップレベルのファサードとそれらが提供する機能を示しています-

S.No. Android API Facade & Description
1

ActivityResultFacade

スクリプトがアクティビティとして情報を返す方法を設定します。 このメソッドは、スクリプトが何らかの結果を返すことを意味します。 結果タイプは、RESULT_CANCELED(0)またはRESULT_OK(-1)に設定できます。

2

AndroidFacade

入力の読み取り、通知、アプリケーションコンポーネントの起動など、Androidの一般的な機能へのアクセスを提供します。

3

ApplicationManagerFacade

利用可能なすべての実行中のパッケージを一覧表示し、アクティビティを起動し、タスクマネージャーを作成するか、特定のパッケージセットを終了します。

4

BatteryManagerFacade

バッテリーマネージャーを公開し、バッテリーステータス、ヘルス、タイプレベル、電圧などを追跡できます。

5

BluetoothFacade

基本的な接続機能からASCIIデータとバイナリデータの両方の送受信まで、Bluetooth機能へのアクセスを提供します。 このファサードには、少なくともAPIレベル5が必要です。

6

CameraFacade

このメソッドは、すべてのカメラ関連機能へのアクセスを提供します。 デバイスのカメラを使用して写真を撮影し、指定したパスに保存できます。 これは、cameraCapturePictureとcameraInteractiveCapturePictureの2つの機能を提供します。 これらの機能は、デバイスの背面にあるレンズを使用するためのものです。

7

CommonIntentsFacade

連絡先のリストを開く、マップ検索を行う、アクションごとにアクティビティを開始するなど、一般的なAndroidインテントへのアクセスを提供します。

8

ContactsFacade

連絡先を選択するための連絡先リストの提供、属性による連絡先リストの照会、IDと属性を持つすべての連絡先のリストの取得など、連絡先へのアクセスを許可します。 ファサードによって提供されるメソッドには、contactsGet、pickContact、contactsGetByIdなどがあります。

9

EventFacade

Android OSは、アプリケーション間で非同期的に情報を受け渡すためのイベントキューを保持しています。 このファサードは、既存のイベントのクリア、新しいイベントのポスト、ブロードキャスト信号のリスト、登録および登録解除など、イベントキューを管理する機能を提供します。 メソッドの例には、eventPost、eventClearBufferなどが含まれます。

10

EyesFreeFacade

APIレベル4以下のデバイスで利用可能。 これにより、スクリプトはテキスト読み上げ技術を使用して話すことができます。 このファサードは、TextToSpeechFacadeに置き換えられました。 使用可能な関数はttsSpeakのみです。

11

LocationFacade

GPSを使用するか、現在使用しているセルタワーに関する情報を使用して、現在地を追跡できる機能を提供します。 この機能を使用するには、実際の検索を行うためにアクティブなインターネット接続が必要です。 ファサードは、getLastKnownLocation、startLocating、stopLocating、readLocationなどのメソッドを提供します。

12

MediaPlayerFacade

メディアファイルの再生、メディアプレーヤーの制御、メディアプレーヤーの現在のステータスの照会、およびメディアファイルに関する情報の取得を許可します。 mediaIsPlaying、mediaPlayInfo、およびmediaPlayListは、メディアプレーヤーの現在の状態を返します。 startActivity関数を呼び出すと、メディアプレーヤーが起動します。 mediaPlay、mediaPlayPause、mediaPlayClose、mediaPlaySeek、mediaPlayStart、mediaPlaySetLoopingなどの関数は、メディアプレーヤーの制御に使用されます。

13

MediaRecorderFacade

このファサードは、オーディオとビデオの録画機能を提供します。 startInteractiveVideoRecording、recorderStartMicrophone、recorderCaptureVideo関数は、それぞれオーディオ/ビデオ録画の起動と開始に使用されます。 以前に開始した録音を終了するには、recorderStop関数を呼び出します。

14

PhoneFacade

電話の状態の追跡、ローミングステータス、通話の開始、SIM情報などの基本的な電話操作を可能にします。 プログラム的に メソッドの例には、phoneCallNumber、phoneDialNumber、getCellLocationなどが含まれます。

15

PreferencesFacade

既存の設定のリストの取得、新しい設定の読み取り、変更、追加などの共有設定へのアクセスを許可します。 SL4A r4リリースでは、prefGetAll、prefGetValue、prefPutValueの3つの関数がサポートされています。

16

SensorManagerFacade

光、加速度、磁場、方向などのセンサーデータを追跡できます。 センシングを開始/停止するには、startSensing(非推奨で、SL4r4によってstartSensingThresholdおよびstartSensingTimedに置き換えられます)およびstopSensing関数呼び出しを使用します。 readSensors、sensorGetLight、sensorReadAccelerometer、sensorReadMagnetometer、sensorsReadOrientationは、このファサードによって提供される機能です。

17

SettingsFacade

着信音量、画面の明るさ、機内モード、振動、メディア音量などのさまざまな電話設定へのアクセスを提供します。 このファサードによって提供される機能は、checkAirplaneMode、checkRingersilentMode、checkScreenOn(少なくともAPIレベル7)、getVibrateMode、setScreenTimeout、toggleVibrateMode、setRingerVolumeなどです。

18

SignalStrengthFacade

電話の信号強度を監視できます。 startTrackingSignalStrengths関数を呼び出して、データの収集を開始します。 readSignalStrengths関数を呼び出して、データの収集を開始します。 プロセスをシャットダウンするには、stoptrackingSignalStrengths関数を呼び出します。 少なくともAPIレベル7が必要です。

19

SmsFacade

SMSメッセージを削除、読み取り、マーク付け、送信する機能があります。 このファサードによって提供される関数の例には、smsMarkMessageRead、smsDeleteMessage、smsSendなどが含まれます。

20

SpeechRecognitionFacade

スクリプトへの音声認識機能の追加を有効にします。 それには、recognizeSpeechという名前の関数が1つだけあります。

21

TextToSpeechFacade

API4以降のTTSサービスを提供します。 デバイスが発言するには、ttsSpeak関数を使用します。 通話機能が完了したかどうかを判断するには、ttsIsSpeaking機能を使用します。

22

ToneGeneratorFacade

指定された数字のDTMFトーンを生成します。 これを使用するには、generateDtmfTones関数を呼び出す必要があります。

23

UiFacade

テキストボックス、チェックボックス、日付ピッカーなどのユーザーインターフェイス要素を作成するための機能を提供します。 また、HTMLページをインタラクティブに使用できます。

24

WakeLockFacade

wakeLockAcquireBright、wakeLockAcquireDim、wakeLockAcquireFull、wakelockAcquirePartialなどのウェイクロックを作成する機能を提供します。

25

WebCamFacade

このファサードには、少なくともAPIレベル8が必要です。 MJPEGストリームを前面デバイスのカメラからネットワークにストリーミングできます。 Webカメラを開始/停止するには、webcamStartおよびwebcamStop関数をそれぞれ使用します。 ストリーミング中にビデオの品質を調整するには、webcamAdjustQuality関数を使用します。

26

WifiFacade

デバイスのWi-Fi無線を制御するのに役立ちます。 これにより、スクリプトはWi-Fi接続のステータスを照会し、アクセスポイントを検索し、WiFiネットワークに接続および切断し、スクリプト実行中にWi-Fiロックを保持できます。

これらのファサードが提供するメソッドの完全なリストについては、https://code.google.com/hosting/moved?project = android-scripting [https://code.google.com]を参照してください。 以降の章では、AndroidFaçadeAPI関数を使用してユーティリティを作成する方法を説明します。

SL4A-GUIの構築

グラフィカルユーザーインターフェイス(GUI)は、ユーザーがアプリケーションの機能を参照、アクセス、および対話できるようにするグラフィカルコンポーネントのセットを表します。

SL4Aとのユーザーインタラクションには2つの基本的なアプローチがあります-

  • *アラート*などのダイアログボックス。 *HTMLとJavaScriptを使用してUIを構築し、次に追加の処理を処理するために背後でPythonを構築します。

この章では、両方のアプローチについて説明します。

Pythonダイアログボックス–ベースのGUI

SL4Aには、Android APIによって提供される基本的なUI要素にアクセスするためのUIファサードが含まれています。 これらの関数は、呼び出されると結果オブジェクトを名前付きタプルとして返します。 各結果には、追跡のために一意のIDが割り当てられます。 2番目の要素は結果です。 ユーザーの入力を表します。 タプルには、発生した可能性のあるエラー状態について呼び出し元にフィードバックを提供する3番目の要素エラーも含まれています。 エラーが発生しなかった場合、この要素はNoneに設定されます。

次の表に、一般的に使用されるUiFacade関数を示します。

S.No. UiFacade Function & Description
1
  • dialogGetInput*

ユーザーにテキスト入力を問い合わせます。

  • title(文字列)*入力ボックスのタイトル(デフォルト=値)
  • message(String)*入力ボックスの上に表示するメッセージ(デフォルト=値を入力してください:)
  • defaultText(String)*入力ボックスに挿入するテキスト(オプション)

結果はユーザーの入力、キャンセルがヒットした場合はNone(null)です。

2

dialogShow

ダイアログを表示

3

dialogCreateAlert

警告ダイアログを作成します。

  • title(文字列)*(オプション)
  • message(String)*(オプション)
4

dialogDismiss

ダイアログを閉じます。

5

dialogCreateDatePicker

日付選択ダイアログを作成します。

年(整数)(デフォルト= 1970)

月(整数)(デフォルト= 1)

  • day(整数)*(デフォルト= 1)
6

dialogCreateTimePicker

タイムピッカーダイアログを作成します。

時間(整数)(デフォルト= 0)

分(整数)(デフォルト= 0)

  • is24hour(ブール値) *24時間時計を使用(デフォルト= false)
7
  • dialogGetPassword*

ユーザーにパスワードを問い合わせます。

  • title(文字列)*パスワードボックスのタイトル(デフォルト=パスワード)
  • message(String)*入力ボックスの上に表示するメッセージ(デフォルト=パスワードを入力してください:)
8

dialogGetResponse

ダイアログの応答を返します。

9

dialogSetPositiveButtonText

警告ダイアログのポジティブボタンテキストを設定します。 テキスト(文字列)

10

dialogSetNegativeButtonText

警告ダイアログボタンのテキストを設定します。 テキスト(文字列)

11

dialogSetNeutralButtonText

警告ダイアログボタンのテキストを設定します。 テキスト(文字列)

12

dialogSetSingleChoiceItems

これにより、ラジオボタンのリストが作成されます。

13

dialogSetMultiChoiceItems

これによりチェックボックスが作成されます

14

dialogCreateHorizontalProgress

水平進行ダイアログを作成します。

  • title(文字列)*(オプション)
  • message(String)*(オプション)

最大進捗(整数)(デフォルト= 100)

15

dialogCreateSpinnerProgress

スピナー進行ダイアログを作成します。

  • title(文字列)*(オプション)
  • message(String)*(オプション)

最大進捗(整数)(デフォルト= 100)

16

addContexMenuItem

コンテキストメニューに新しいアイテムを追加します。

  • label(文字列)*このメニュー項目のラベル
  • event(String)*メニュー項目のクリックで生成されるイベント
  • eventData(オブジェクト)*(オプション)
17

addOptionsMenuItem

オプションメニューに新しいアイテムを追加します。

  • label(文字列)*このメニュー項目のラベル
  • event(String)*メニュー項目のクリックで生成されるイベント
  • eventData(オブジェクト)*(オプション)
  • iconName(文字列) *
18
  • webViewShow*

指定されたURLでWebViewを表示します。

  • url(文字列)*
  • wait(ブール)*ユーザーがWebViewを終了するまでブロックします(オプション)
19

clearContextMenu

以前にコンテキストメニューに追加されたすべてのアイテムを削除します。

20

clearOptionsMenu

以前にオプションメニューに追加されたすべてのアイテムを削除します

21

makeToast

通知を作成する

簡単なトーストの例

import android
droid = android.Android()
uname = droid.getInput("Enter your name")
print uname
droid.makeToast("Hello %s" %uname.result)

水平プログレスバー

import android
   droid = android.Android()
   title = "Progress"
   str = "Loading..."
   droid.dialogCreateHorizontalProgress(title,str,100)
   droid.showDialog()

   for x in range(0,99)
      time.sleep(0.1)
      droid.dialogSetCurrentProgress(x)

   droid.dialogDismiss()

モーダル対非モーダルダイアログボックス

モーダルダイアログボックスまたはウィンドウは、別のプロセスまたはウィンドウの子です。 モーダルダイアログボックスでは、ユーザーが新しいダイアログボックスを操作するまで、処理は待機またはブロックされます。

この場合の典型的な例は、警告ダイアログボックスです。 ユーザーがアクションを実行するまで、アラートは閉じません。

次の画像は、モーダルダイアログボックスの例です。

モーダルダイアログボックス

要約すると、実行を続行する前にユーザーからの入力が必要な場合は、モーダルダイアログボックスを使用します。

HTMLを使用したPython GUI

SL4Aは、CSS、HTML、JavaScript、Pythonに基づいたグラフィカルユーザーインターフェイス(GUI)の構築を可能にします。 このアプローチでは、HTMLとJavaScriptを使用してUIを構築し、CSSを使用してHTML要素とフォントの外観と一貫性を強化し、Pythonを使用して追加の処理を処理します。

次の例は、基本的なHTML GUIの例を示しています-

1. スピーチ

<html>
   <head>
      <title>Text To Speech</title>

      <script>
         var droid = new Android();
         var speak = function(){
            droid.postEvent("say",document.getElementById("say").value);
         }
      </script>

   </head>

   <body>
      <form onsubmit = "speak()";return false;”>
         <label for = "say">What is your message?</label>
         <input type = "text" id = "say"/>
         <input type = "submit" value = "Speak"/>
      </form>
   </body>

</html>
  • 2. txtToSpeech.py​​ *
import android
droid = android.Android()
droid.webViewShow(‘file:///sdcard/sl4a/scripts/Speechl’)

while True:
   result = droid.waitForEvent(‘say’).result
   droid.ttsSpeak(result[‘data’])

両方のファイル- SpeechlおよびtxtToSpeech.py​​ は、デバイスの /sdcard/sl4a/scripts ディレクトリに存在する必要があります。 pythonスクリプトを実行して、HTMLファイルを起動します。

このファイルは、 webViewShow API呼び出しによって起動されます。 Speak ボタンがクリックされると、イベントが生成されます。

SL4A-Python Facadeを使用したユーティリティ

メールベースのアプリケーション

電子メールベースのアプリケーションは、モバイルデバイスで利用できる最も一般的なユーティリティの1つです。 SL4A Androidファサードで利用可能な sendEmail API呼び出しを使用できます。

この関数は3つのパラメータを取ります-

  • to_address -受信者のコンマ区切りリスト。
  • title -電子メールメッセージのタイトルを表します。
  • message -送信されるメッセージを表します。
import android,datetime,smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

droid = android.Android()
serv = ’smtp.gmail.com’
port = 587
mailto = ’chris’
mailfrom = ’charley’
pass = ’pass@123’

msg = MIMEMultipart()
msg[‘Subject’] = ’Tes Mail’
msg[‘To’] = mailto
msg[‘From’] = mailfrom

body = ’This is a test mail!!’
msg.attach(MIMEText(body,’plain’))

smtpCon = smtplib.SMTP(serv,port)
smtpCon.starttls()
smtpCon.login(mailfrom,pass)
smtpSendmail(mailfrom,mailto,msg.as_string())
smtpCon.close()

電子メールプログラムの構築に使用したPythonライブラリは smtplib です。 さらに、メールライブラリを使用しました。 このライブラリには多くのヘルパー関数が含まれており、正しい形式でメッセージを作成できます。 mimetypes ライブラリは、メッセージのエンコードに役立ちます。

Wifiスキャナー

次のコードは、利用可能なすべてのWi-Fiアクセススポットをリストします-

import android, time

def main():
   global droid
   droid = android.Android()

while not droid.wifiStartScan().result:
   time.sleep(0.25)

networks = {}

while not networks:
   for ap in in droid.wifiGetScanResults().result:
      networks[ap[‘bssid’]] = ap.copy()

   droid.dialogCreateAlert(‘Access Points’)
   droid.dialogSetItems([‘%(ssid)s,%(level)s,%(capabilities)s’ %
      ap for ap in networks.values() ])

droid.dialogSetPositiveButtonText(‘OK’)
dorid.dialogShow()

if __name__=’__main__’:
   main()

コールログ

通話ログのコードは次のとおりです。

import android
droid = android.Android()
mylog = droid.getConstants("android.provider.Calllog$Calls").result
calls = droid.queryContent(mylog["CONTENT_URI"],["name","number","duration"]).result

for c in calls:
   print c

SL4A-Pythonを使用したバックグラウンドスクリプト

サービスはコンポーネントであり、ユーザーと直接対話することなくバックグラウンドで実行されます。 UI(ユーザーインターフェイス)はありません。 アプリケーションが破壊された場合でも、サービスはバックグラウンドで無期限に実行されます。

この章では、バックグラウンドで特定のタスクを実行するスクリプトの記述について説明します。

バックグラウンドタスク

SL4Aを使用すると、スクリプトを端末またはバックグラウンドで実行できます。 バックグラウンドでスクリプトを起動するには、歯車のようなアイコンを選択します。 スクリプトはバックグラウンドで無限に実行されます。 ただし、そのようなサービスを明示的にシャットダウンすることもできます。

起動スクリプトで起動

これらのスクリプトは、デバイスが起動するたびに起動されます。 起動時に起動設定画面は、デバイスの起動設定を指定できるアプリケーションです。 このユーティリティは、マスタースクリプトを介した複数のスクリプトの実行をサポートしています。 マスタースクリプトは他のスクリプトを起動します。

トリガー

トリガーは、アクション/イベントに応じて実行する必要がある一連のアクションを定義します。 トリガーは追加および削除できます。/sdcard/sl4a/scriptsディレクトリを使用すると、イベントがトリガーされたときに実行するスクリプトを選択できます。 スクリプトをトリガーするオプションのリストには、バッテリー、場所、電話、センサー、信号強度が含まれます。

オリエンテーションベースのアクション

SL4Aでは、デバイスの向きと動きに応じてスクリプトを実行できます。 startSensingTimedAPIは、デバイスの向きと動きを決定するために使用されます。

次のスニペットはTTS機能を使用して、電話が裏向きに置かれたときにユーザーに通知します-

import android,time
droid = android.Android()
droid.startSensing()

while True:
   res = droid.sensorsGetLight().result

   if res is not None and res <=10:
      droid.ttsSpeak("Device faced down!!")
   time.sleep(5)

ロケーションベースのアクション

図書館、教会はあなたが頻繁に訪れる場所であり、あなたがそこにいるときあなたは間違いなくあなたの電話を黙らせたいです。 SL4Aを使用すると、現在地を追跡し、特定のアクションを実行するスクリプトを作成できます。

時間ベース/経過時間ベースのトリガー

これらのトリガーは、特定の時刻にアクションを実行するために使用されます。 時間を指定するには、24時間形式を使用する必要があります。 例には、アラーム、リマインダーなどを設定するスクリプトが含まれます。 時間ベースのトリガーとは対照的に、経過時間ベースのトリガーは、経過時間後にスクリプトを実行します。 アラームアプリケーションのスヌーズオプションは、この概念に基づいています。

経過時間ベースのトリガー

SL4A-パッケージングと配布

この章では、EclipseおよびQRコードを使用してスクリプトをパッケージ化および配布する方法について説明します。

クイックレスポンス(QR)コード

ほとんどのAndroidデバイスには、ネイティブバーコードスキャナーが含まれています。 SL4Aは、エディターへのQRコードの直接インポートをサポートしています。 QRコードは、4,296文字のコンテンツのみをエンコードできます。 したがって、この配布方法は短いスクリプトに適しています。

テキストを貼り付けてQRコードを作成できるWebサイトがいくつかあります。 ただし、http://zxing.appspot.com/generatorを参照して、図のQRコードを生成します。

手順は以下に説明されています-

  • ステップ1 *-*コンテンツ*ドロップダウンを開き、*テキスト*を選択します。
  • ステップ2 *-*テキストコンテンツ*の最初の行に、スクリプトの名前を入力します(例:greet.py)。

QRコードジェネレーター

  • ステップ3 *-スクリプトコンテンツをその下に貼り付けます。
  • ステップ4 *-[サイズ]ドロップダウンからバーコードサイズを選択します。
  • ステップ5 *-[生成]をクリックします。
  • ステップ6 *-結果のバーコード画像を埋め込むか、共有します。

したがって、QRコードは、ブログまたはWebサイトを通じて短いスクリプトを共有するための効果的な方法です。

アプリケーションパッケージのビルド– Eclipse

Androidアプリケーションは、拡張子が。 apk の単一のファイル/パッケージで配布されます。 Androidパッケージ*(。apk)は.jarまたは.zipファイルに似ています。 各。 *apk には、存在する必要があるいくつかの必須ファイルが含まれています。 最も重要なファイルは AndroidManifest.xml です。

マニフェストファイルは多くのことを行います-

  • アプリケーションコンポーネントを宣言します。
  • アプリケーションに必要なユーザー権限を特定します。
  • カメラ、Bluetoothサービスなど、アプリケーションで使用または要求されるハードウェアおよびソフトウェア機能を宣言します。
  • Googleマップライブラリなど、アプリケーションをリンクする必要があるAPIライブラリを指定します。

配布可能なプロジェクトを構築する手順、つまり 日食の .apk は以下に示されています-

  • Hgをmercurialからダウンロードしてインストールします-https://www.mercurial-scm.org/wiki/Download[http://mercurial.selenic.com/wiki/Download]。 PATH変数をインストールフォルダーに設定します。
  • 最新のSL4Aリポジトリのクローンを作成します。ターミナルを開き、クローンを作成する必要があるディレクトリに移動します。 次のHgクローンを入力します:https://android-scripting.googlecode.com/hg/android-scripting。
  • Eclipseを開き、 File/Import/General/Existing Projects into Workspace/Nextをクリックして、クローンディレクトリを参照します。 [Android/OK]をクリックし、すべて選択して[完了]をクリックします。
  • Windows/Preferences/Java/BuildPathVariables/Newをクリックして、クラスパス変数リストに ANDROID_SDK を含めます。 ANDROID_SDKを名前に、フォルダのSDKディレクトリ(おそらくc:\ ProgramFiles \ Android \ android-sdk-windows)を入れます。
  • [プロジェクト/自動ビルド]をクリックし、[プロジェクト/すべてのプロジェクトをクリーン/クリーン]/[OK]をクリックします。
  • スクリプトを APK に変換するには、 ScriptForAndroidTemplate のコピーを作成します(右クリック/コピーしてから、右クリック/同じエリアに貼り付けます)。 Copy of ScriptForAndroidTemplate という名前の新しいプロジェクトが表示されます。
  • このプロジェクトをSL4Aのクローンに接続するには、プロジェクトをダブルクリックし、build.xml/Run As/Ant Buildを右クリックします。 [リファクタリング/名前変更]を使用してプロジェクトの名前をプロジェクトに選択した名前に変更し、プロジェクトを更新/クリーン/ビルドします。
  • 次に、rawとRefactor/Renameをダブルクリックして、script.pyという名前を your_script_name.py に変更し、src/com.dummy.fooforandroid/Script.javaをダブルクリックして、R.raw.scriptをRに変更します。 raw.your_script_nameを保存します。
  • src とRefactor/Renameをダブルクリックして、パッケージ名com.dummy.fooforandroidをyour.package.nameに変更します。 genについても同じことを行います。
  • ここでプロジェクトをハイライトし、Project/Properties/Androidをクリックします。 Androidターゲットを選択し、[OK]をクリックします。
  • プロジェクトリストの下部に向かって、AndroidManifest.xmlをダブルクリックします。 マニフェストのパッケージ名をcom.dummy.fooforandroidからyour.package.nameに変更します。 Androidターゲットに合わせてminSdkVersionを「4」から変更します(これは、Project/Preferences/Androidに表示されるAndroidターゲットのAPIレベルです)。 アプリケーションに必要な許可のコメントを外します(開始時に<!-を、終了時に→を外します)。 デバッグを False に設定します。
  • your_script_name を右クリックして、テキストエディターで開きます。 デフォルトのスクリプトを削除し、独自のスクリプトに置き換えて保存します。 次に、プロジェクトをクリーン/ビルド/リフレッシュして実行します。 すべてうまくいけば、ファイル/エクスポートをクリックして、アプリケーションをapkとしてエクスポートします。
  • [次へ]をクリックします。
  • すべてのAndroidアプリケーションは、インストールする前にデジタル署名する必要があります。 このプロセスを初めて使用する場合は、[新しいキーストアを作成]を選択します。
  • キーストアを保持するファイルを選択し、パスワードで保護する必要があります。
  • [次へ]をクリックします。 有効性フィールドに注意してください。 1〜99の任意の年数の間有効なキーを作成できます。
  • 最後のダイアログボックスでは、.apkファイルを配置する場所を指定できます。 完了をクリックします。 EclipseまたはADBツールを使用して、.apkファイルをテスト/インストールできます。 ADB *を使用してインストールするには、ターミナルウィンドウを開き、.apkのインストール先ディレクトリに移動して、次のように入力します-
adb install distributable_file.apk