SL4A-クイックガイド

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

Android版 特徴
Android(アルファ)1.0 Androidの最初のバージョン
Android 1.5(カップケーキ) 自動回転オプションを追加し、Webブラウザにコピーアンドペースト機能を追加しました
Android 1.6(ドーナツ) 音声検索と検索ボックスが追加されました
Android 2.0 / 2.1(エクレア) Bluetooth2.1のサポート
Android 2.2 / 2.2.3(フローズンヨーグルト) Adobe Flash10.1のサポート
Android 2.3 / 2.3.7(ジンジャーブレッド) インターネット通話、ワンタッチの単語選択、コピー/貼り付け
Android 3.0 / 3.2.6(Honeycomb) このバージョンはタブレットでのみ利用可能です。機能には、マルチコアプロセッサのサポート、すべてのユーザーデータを暗号化する機能が含まれます
Android 4.0 / 4.0.4(アイスクリームサンドイッチ) UIの仮想ボタン、バックグラウンドでデータを使用しているアプリをシャットダウンする機能
Android 4.1 / 4.3.1(Jelly Bean) Linuxカーネル3.0.31に基づいていますか?よりスムーズなユーザーインターフェース、Androidビーム用のBluetoothデータ転送
Android 4.4 / 4.4.4,4.4W / 4.4W.2(キットカット) クラウドストレージ、内蔵センサー、ロックアートスクリーンとの統合
Android 5.0 / 5.1.1(ロリポップ) RAMとバッテリーの管理の改善、アプリの突然の閉鎖の修正、ワイヤレス接続の問題、通知など。

オープンソースでビジネスに優しいです。ユーザーは、組み込みアプリケーションを選択したアプリケーションに置き換えることを選択できます。Androidの多くのバージョンは、最初のリリース以降にリリースされています。

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

Linuxカーネル

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

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

ライブラリとランタイム

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

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

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

このレイヤーは、ライブラリをアプリケーションへのサービスとして利用できるようにします。このレイヤー内の最も重要なコンポーネントには、Location Manager、Resource Manager、Activity Manager、NotificationManagerが含まれます。

アプリケーション

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

ビルディングブロック

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

  • Activities−アクティビティは、ユーザーが視覚的に表示または操作する単一の画面を表します。たとえば、電子メールアプリには、新しい電子メールのリストを表示する1つのアクティビティ、電子メールを作成するための別のアクティビティ、および電子メールを読むための別のアクティビティがある場合があります。

  • Services−処理の大部分は、アプリケーションのこれらのサービスによって実行されます。これは、ユーザーインターフェイスの背後にあるロジックです。たとえば、サービスは、ユーザーが別のアプリを使用しているときにバックグラウンドで音楽を再生したり、ユーザーのアクティビティとのやり取りをブロックせずにネットワーク経由でデータをフェッチしたりする場合があります。

  • Broadcast Receivers−システムまたはアプリケーションのイベントをリッスンし、それらに関する通知を発行するために登録できるコンポーネント。システムから発信されたブロードキャストのインスタンスは 'low battery notification'アプリケーションレベルのブロードキャストは'download successful' お知らせ。

  • Content Providers−コンテンツプロバイダーは、複数のアプリケーション間でデータを管理および共有するのを支援します。たとえば、コンテンツプロバイダーを使用して連絡先データを共有することができます。

これらのコンポーネントは、 Intents

Androidスクリプトは、Javaプログラミング言語を使用するのではなく、自動化やプロトタイピングなどの単純なタスクに便利なツールです。Android用スクリプトレイヤー(SL4A)は、Androidプラットフォーム上の複数のスクリプトソリューション用のプラットフォームを提供します。

SL4Aとは何ですか?

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

もともとAndroidScripting Environment(ASE)と呼ばれていたSL4Aは、2009年6月にGoogleオープンソースブログで最初に発表されました。このプロジェクトは、主にDamon Kohlerの努力によって日の目を見て、他の開発者の貢献によって成長しました。

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

  • Beanshell 2.0b4
  • JRuby 1.4
  • Lua 5.1.4
  • Perl 5.10.1
  • PHP 5.3.3
  • Python
  • Rhino 1.7R2
  • Javascript
  • TCL

SL4Aが選ばれる理由–スクリプト言語とJAVA

おそらく最初に尋ねる質問の1つは、「Why use SL4A instead of Java?

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

次に、この言語では、編集/コンパイル/実行の設計ループを使用する必要があります。つまり、変更が必要になるたびに、アプリケーションを編集、再コンパイルして実行します。それどころか、スクリプトはその場で解釈および実行されます。さらに、SL4Aを使用すると、多くの場合、デスクトップ環境用に記述されたコードを再利用することもできます。

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

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

  • スクリプトインタプリタ
  • AndroidRPCクライアント
  • Facades

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

スクリプトインタプリタ

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

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

AndroidRPCクライアント

インタープリターインスタンス内で実行されているスクリプトは、AndroidプロキシRPCクライアントを介してSL4Aアプリケーションと通信します。クライアントは確立しますRemote Procedure Call (RPC)SL4Aに接続し、スクリプトがAndroidフレームワークと対話できるようにします。SL4Aファサードは、この通信を容易にします。データは次のように送信されますJSON ペイロード。

Android RPCクライアントは、サポートされているすべてのスクリプト言語に対応しています。クライアントモジュールは、SL4AWebサイトから入手できます。https://code.google.com。

ファサード

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

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

SL4Aの使用

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

  • RAD programming− SL4Aを使用すると、Rapid Application Development(RAD)アプローチを使用して、プロトタイプアプリケーションをすばやく作成できます。アイデアの実現可能性が確認できれば、本格的なAndroidアプリケーションを作成できます。

  • Test scripts −テストスクリプトの作成に使用できます。

  • Building Utilities − SL4Aを使用して、小さなタスクを実行したり、反復タスクの特定の側面を自動化したりするユーティリティスクリプトまたはツールを構築できます。

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

コアのいくつか Modules Pythonライブラリが提供するものは次のとおりです-

  • Built-in Functions and Exceptions− Pythonは、起動時にこれら両方のモジュールをインポートし、それらのコンテンツをすべてのプログラムで利用できるようにします。組み込みモジュールは、次のような組み込み関数を定義します。len, int, range、exceptionsモジュールは、すべての組み込み例外を定義します。

  • Operating System Interface Modules − OSモジュールは、スクリプトを介してOSレベルの操作を実行できるようにする機能を利用可能にします。

  • Type Support Modules−タイプサポートモジュールには文字列モジュールが含まれます-実装するには、一般的に使用される文字列操作。数学モジュールは、数学演算などを提供します。

  • Regular Expressions−正規表現は、特定の構文で記述された文字列パターンであり、文字列または部分文字列を照合または抽出するために使用できます。reモジュールは、Pythonの正規表現サポートを提供します。

  • Language Support Modules− sysモジュールを使用すると、モジュールの検索パスやインタープリターのバージョンなど、さまざまなインタープリター変数にアクセスできます。演算子モジュールは、多くの組み込み演算子と同等の機能を提供します。コピーモジュールを使用すると、オブジェクトをコピーできます。最後に、gcモジュールを使用すると、Python2.0のガベージコレクタ機能をより細かく制御できます。

JSONについて

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

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

開発環境

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

Java Development Kit(JDK)

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

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

$javac –version $java –version

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

Python

PythonはデフォルトでMacOSXとLinuxにインストールされている可能性があります。デフォルトでは、WindowsOSにはPythonがインストールされていません。Pythonはからダウンロードできますhttp://python.org。

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

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

Android.pyファイル

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

Android SDK

多くのツールが付属しています Android SDK。最初のステップは、オペレーティングシステムに適切なインストールファイルをダウンロードすることです。Mac OS X、Linux、Windows用のインストーラーが利用可能です。SDKインストーラーは次の場所にあります。https://developer.android.com/sdk。

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

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

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

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

SL4Aのインストール

場合によっては、デバイス上でスクリプトを記述して実行したいことがあります。Android用のスクリプトレイヤーは、同じことを実現するのに役立ちます。SL4Aをデバイスにインストールするには、以下の手順に従います。

  • ダウンロード SL4A.apk デバイス上のファイル。

  • を起動します .apk 通知画面からファイル。

  • 選択する Install 次の画面で実際にSL4Aをインストールします。

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

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

Pythonインタープリターをデバイスにインストールするには、以下の手順に従います-

  • Step 1 −SL4Aアプリケーションを起動します。

  • Step 2 −をクリックします Menu ボタン。

  • Step 3−オプションのリストが表示されます。選択するView

  • Step 4 −を選択します Interpreterダイアログボックスのオプション。クリックAdd

  • Step 5−ダウンロード可能な通訳者のリストが表示されます。選択するPython 2.62 (またはそれ以上)。

エミュレーターにPythonインタープリターをインストールするには、以下の手順に従います。

  • Step 1 −エミュレータがバックグラウンドで実行されていることを確認します。

  • Step 2 −python_for_android_rx.apkをダウンロードします。

  • Step 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

WindowsOSへの接続

Step 1 −Windows用のUSBドライバをダウンロードしてインストールします。

Step 2 −デバイスをセットアップします−

  • デバイスのすべてのアプリ画面からSL4Aを起動します。

  • をタップします Menu ボタン→ View

  • リストから通訳を選択します。

  • をタップします Menu ボタン→ Start Server

  • 選択する Public (Wi-Fi経由で接続するため)または Private(USB経由で接続するため)。

Step 3 −環境変数(ユーザー変数)を追加します AP_PORT と価値 9999

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

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

SDKコンポーネント

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

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

SDKマネージャー

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

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

  • Step 1 −選択 FileSettingsAppearance & BehaviorSystem SettingsUpdates

  • Step 2 −チェックしてください Automatically check updates for Android SDK チェックボックスをオンにして、更新チャネルを選択します。

  • Step 3 −クリック OK または Apply 更新チェックを有効にします。

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

Androidエミュレーター

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

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

  • Step 1 −選択 WindowAVD Manager

  • Step 2 −クリック New

  • Step 3 − AVDの名前を入力し、ターゲットを選択して、他の機能の値を指定します。

  • Step 4 −クリック Create AVD

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

エミュレータキー ホストデバイスでのマッピング
BUTTON_CALL F3
BUTTON_HANGUP F4
BUTTON_HOME ホーム
BUTTON_BACK 逃れる
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
フルスクリーン切り替え Alt-Enter
BUTTON_DPAD_CENTER Keypad_5
BUTTON_DPAD_UP Keypad_8
BUTTON_DPAD_LEFT Keypad_4
BUTTON_DPAD_RIGHT キーパッド_6
BUTTON_DPAD_DOWN キーパッド_2
TOGGLE_TRACKBALL F6
SHOW_TRACKBALL 削除
CHANGE_LAYOUT_PREV Keypad_7、Ctrl + F11
CHANGE_LAYOUT_NEXT Keypad_9、Ctrl + F12
ONION_ALPHA_UP Keypad_Multiply
ONION_ALPHA_DOWN Keypad_Divide

これらの設定を変更するには、 default.keyset 内のファイル。android サブディレクトリ。

Androidデバッグブリッジ

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

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

S.No. ADBフラグと説明
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コマンドと説明
1

adb push <local> <remote>

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

2

adb pull <remote> [<local>]

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

3

adb sync [<directory>]

<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

バージョン番号を表示する

シェル

シェルは、ユーザーからのキーボード入力をリッスンし、ユーザーの指示に従ってアクションを実行するプログラムです。ザ・adbshell commandは、エミュレータまたは接続されたデバイスにシェルコマンドを送信し、結果を表示するための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スプーフィングなどの追加サービスを提供します。

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

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

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

日食の基本

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

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

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

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

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

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

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

  • Eclipse用のADTプラグイン(で入手可能 http://dl-ssl.google.com/android/eclipse/ )

  • Eclipse用のPythonプラグイン(で入手可能 http://pydev.org/updates )

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

  • Step 1 −クリック Help

  • Step 2 −選択 Install New Software

  • Step 3 −クリック Add

  • Step 4−プラグインにアクセスするための名前とURLを指定します。クリックOK

  • Step 5 −すべてのツールを選択し、をクリックします Next。プラグインのインストールが開始されます

EclipseのPythonインタープリター

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

  • Step 1 −選択 WindowsPreferences

  • Step 2 −に移動 PyDevInterpreterPython

  • Step 3 −をクリックします New ボタン。

  • Step 4−インタプリタの名前を指定します。[場所]フィールドに、python.exeへのパスを入力します。例:C:\ Python26 \ python.exe

  • Step 5 −クリック OK

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

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

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

SL4AおよびAndroidAPIファサード

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

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

S.No. AndroidAPIのファサードと説明
1

ActivityResultFacade

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

2

AndroidFacade

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

3

ApplicationManagerFacade

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

4

BatteryManagerFacade

バッテリーマネージャーを公開し、バッテリーの状態、状態、タイプレベル、電圧などを追跡できるようにします。

5

BluetoothFacade

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

6

CameraFacade

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

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、sensorsGetLight、sensorsReadAccelerometer、sensorsReadMagnetometer、sensorsReadOrientationは、このファサードによって提供される関数です。

17

SettingsFacade

呼び出し音の音量、画面の明るさ、機内モード、バイブレーション、メディアの音量など、さまざまな電話設定へのアクセスを提供します。このファサードが提供する機能は、checkAirplaneMode、checkRingersilentMode、checkScreenOn(少なくともAPIレベル7)、getVibrateMode、setScreenTimeout、toggleVibrateModesetRingerVolumeなどです。

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これらのファサードによって提供されるメソッドの完全なリストについては。以降の章では、AndroidFaçadeAPI関数を使用してユーティリティを作成する方法を説明します。

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

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

  • などのダイアログボックス Alerts

  • HTMLとJavaScriptを使用してUIを構築し、舞台裏でPythonを使用して追加の処理を処理します。

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

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

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

S.No. UiFacadeの機能と説明
1

dialogGetInput

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

title (String) 入力ボックスのタイトル(デフォルト=値)

message (String) 入力ボックスの上に表示するメッセージ(デフォルト=値を入力してください:)

defaultText (String) 入力ボックスに挿入するテキスト(オプション)

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

2

dialogShow

ダイアログを表示

3

dialogCreateAlert

アラートダイアログを作成します。

title (String)(オプション)

message (String) (オプション)

4

dialogDismiss

ダイアログを閉じる。

5

dialogCreateDatePicker

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

year (Integer) (デフォルト= 1970)

month (Integer) (デフォルト= 1)

day (Integer) (デフォルト= 1)

6

dialogCreateTimePicker

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

hour (Integer) (デフォルト= 0)

minute (Integer) (デフォルト= 0)

is24hour (Boolean) 24時間制を使用する(デフォルト= false)

7

dialogGetPassword

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

title (String) パスワードボックスのタイトル(デフォルト=パスワード)

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

8

dialogGetResponse

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

9

dialogSetPositiveButtonText

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

10

dialogSetNegativeButtonText

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

11

dialogSetNeutralButtonText

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

12

dialogSetSingleChoiceItems

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

13

dialogSetMultiChoiceItems

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

14

dialogCreateHorizontalProgress

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

title (String) (オプション)

message (String) (オプション)

maximum progress (Integer) (デフォルト= 100)

15

dialogCreateSpinnerProgress

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

title (String) (オプション)

message (String) (オプション)

maximum progress (Integer) (デフォルト= 100)

16

addContexMenuItem

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

label (String) このメニュー項目のラベル

event (String) メニュー項目のクリックで生成されるイベント

eventData (Object) (オプション)

17

addOptionsMenuItem

オプションメニューに新しい項目を追加します。

label (String) このメニュー項目のラベル

event (String) メニュー項目のクリックで生成されるイベント

eventData (Object) (オプション)

iconName (String)

18

webViewShow

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

url (String)

wait (Boolean) ユーザーがWebViewを終了するまでブロックします(オプション)

19

clearContextMenu

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

20

clearOptionsMenu

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

21

makeToast

通知を作成する

A simple Toast Example

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

A Horizontal Progress Bar

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を使用したPythonGUI

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

次の例は、基本的なHTMLGUIの例を示しています。

1. Speech.html

<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/Speech.html’) 

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

両方のファイル- Speech.html and txtToSpeech.py、に存在する必要があります /sdcard/sl4a/scriptsデバイス上のディレクトリ。Pythonスクリプトを実行して、HTMLファイルを起動します。

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

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

電子メールベースのアプリケーションは、モバイルデバイスで利用できる最も一般的なユーティリティの1つです。1つを使用することができますsendEmail SL4AAndroidファサードから利用可能な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

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

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

バックグラウンドタスク

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

ブートスクリプトで起動

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

トリガー

トリガーは、アクション/イベントに応答して実行する必要がある一連のアクションを定義します。トリガーは追加および削除できます。/ 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時間形式を使用する必要があります。例には、アラーム、リマインダーなどを設定するスクリプトが含まれます。時間ベースのトリガーとは異なり、経過時間ベースのトリガーは、経過時間の後にスクリプトを実行します。アラームアプリケーションのスヌーズオプションは、この概念に基づいています。

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

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

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

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

手順を以下に説明します-

Step 1 −を開きます Contents ドロップダウンして選択します Text

Step 2 −の最初の行 Text Content、スクリプトの名前を入力します(例:greet.py)。

Step 3 −その下にスクリプトの内容を貼り付けます。

Step 4 − [サイズ]ドロップダウンからバーコードサイズを選択します。

Step 5 − [生成]をクリックします。

Step 6 −結果のバーコード画像を埋め込むか、共有します。

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

アプリケーションパッケージの構築– Eclipse

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

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

  • アプリケーションコンポーネントを宣言します。

  • アプリケーションに必要なユーザー権限を特定します。

  • カメラ、Bluetoothサービスなど、アプリケーションで使用または必要とされるハードウェアおよびソフトウェアの機能を宣言します。

  • Google Maps Libraryなど、アプリケーションをリンクする必要のあるAPIライブラリを指定します。

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

  • MercurialからHgをダウンロードしてインストールします- http://mercurial.selenic.com/wiki/Download。PATH変数をインストールフォルダーに設定します。

  • 最新のSL4Aリポジトリのクローンを作成します。ターミナルを開き、クローンを作成する必要のあるディレクトリに移動します。次のHgクローンを入力します:https://android-scripting.googlecode.com/hg/android-scripting。

  • Eclipseを開き、をクリックします File/Import/General/Existingワークスペース/次へプロジェクトを作成し、複製されたディレクトリを参照します。Android / OKをクリックし、すべてを選択して、[完了]をクリックします。

  • 含める ANDROID_SDK[クラスパス変数]リストで、[Windows] / [設定] / [Java] / [BuildPathVariables] / [新規]をクリックします。名前にANDROID_SDKを、フォルダーにSDKディレクトリ(おそらくc:\ ProgramFiles \ Android \ android-sdk-windows)を入力します。

  • [プロジェクト] / [自動ビルド]をクリックしてから、[プロジェクト] / [クリーン] / [すべてのプロジェクトをクリーンアップ] / [OK]をクリックします。

  • スクリプトをに変換するには APK、のコピーを作成します ScriptForAndroidTemplate(右クリック/コピーしてから右クリック/同じ領域に貼り付けます)。Copyofという名前の新しいプロジェクトが表示されますScriptForAndroidTemplate

  • このプロジェクトをSL4Aのクローンに接続するには、プロジェクトをダブルクリックし、build.xml / Run As / AntBuildを右クリックします。リファクタリング/名前の変更を使用してプロジェクトの名前をプロジェクトに選択した名前に変更し、プロジェクトを更新/クリーンアップ/ビルドします。

  • 次に、rawとRefactor / Renameをダブルクリックして、script.pyの名前をに変更します。 your_script_name.py 次に、src / com.dummy.fooforandroid / Script.javaをダブルクリックし、R.raw.scriptをR.raw.your_script_nameに変更して保存します。

  • をダブルクリックします srcパッケージ名com.dummy.fooforandroidをyour.package.nameに変更するには、リファクタリング/名前の変更を行います。genについても同じようにします。

  • 次に、プロジェクトを強調表示してから、[プロジェクト] / [プロパティ] / [Android]をクリックします。あなたのAndroidターゲットを選択してクリックOK

  • プロジェクトリストの下部にあるAndroidManifest.xmlをダブルクリックします。マニフェストのパッケージ名をcom.dummy.fooforandroidからyour.package.nameに変更します。minSdkVersionを「4」からAndroidターゲットに合わせて変更します(これは、Project / Preferences / Androidに表示されるAndroidターゲットのAPIレベルです)。アプリケーションに必要なアクセス許可のコメントを解除します(最初に<!-を、最後に->を外します)。デバッグをに設定False

  • 右クリック your_script_nameテキストエディタで開きます。デフォルトのスクリプトを削除し、独自のスクリプトに置き換えて保存します。次に、プロジェクトをクリーン/ビルド/リフレッシュして実行します。すべてうまくいったら、ファイル/エクスポートをクリックしてアプリケーションをapkとしてエクスポートします。

  • クリック Next

  • すべてのAndroidアプリケーションは、インストールする前にデジタル署名する必要があります。選択するCreate new Keystore、これがこのプロセスを初めて実行した場合。

  • キーストアを保持するファイルを選択し、パスワードで保護する必要があります。

  • クリック Next。有効性フィールドに注意してください。1から99までの任意の年数で有効なキーを作成できます。

  • 最後のダイアログボックスでは、.apkファイルを配置する場所を指定できます。[完了]をクリックします。

  • EclipseまたはADBツールを使用して.apkファイルをテスト/インストールできます。を使用してインストールするにはADB、ターミナルウィンドウを開き、.apk宛先ディレクトリに移動して、次のように入力します-

adb install distributable_file.apk