コンポーネント開発の流れ

本章では、RTM on Androidを利用してRTコンポーネントを開発する方法について、サンプルコンポーネントのアプリを例に説明します。

開発環境の構築

RTM on AndroidでRTコンポーネントを開発するためには、以下の開発環境が必要になります。

  • JDK
  • Eclipse
  • Android SDK
※開発環境の構築方法は下記ページを参照
  1. RTM on Androidの開発準備

本章では、上記の環境が構築されているものとして説明を行います。

コンポーネントのプロジェクトの作成

プロジェクトの作成

 サンプルのRTMonAndroidSampleを例に新規にプロジェクトを作成します。 まずはAndroidのプロジェクトを作成しましょう。[ファイル]メニューより[新規]-[Android Project]を選択します。

 New Android Projectウィンドウが開くので、次の値を設定して、プロジェクトを作成してください。

設定内容
項目名 内容
プロジェクト名 RTMonAndroidSample(任意設定)
ビルド・ターゲット Android 2.3.3
アプリケーション名 RTMonAndroidSample(任意設定)
パッケージ名 jp.co.sec.rtc.sample(任意設定)
Create Activity RTMonAndroidSample
Min SDK Version 4

../_images/newproj.png

 完了ボタンを押すとプロジェクトが作成され、「RTMonAndroidSample.java」ファイルが作成されます。

※ [Min SDK Version]には、11以下のAPIレベルを指定してください。12以上を指定すると、この次の手順で配置するRTM on Androidのライブラリがコンポーネント実行中に異常終了する場合があります。本事象は、Androidのバージョン互換に関する既知の問題であり、[Min SDK Version]を上記のとおり指定することにより回避できるとされています。

ライブラリの配置

 RTM on Androidは、JavaライブラリとCのネイティブライブラリ群で提供されています。  配布パッケージを解凍すると下記のライブラリファイルに展開されますので、EclipseのRTコンポーネント開発プロジェクト内のフォルダへコピーし配置することで利用可能となります。

└─libs
    ├─armeabi         // NDKライブラリ
    │  ├─libCosNaming.so
    │  ├─libOpenRTM_on_Android.so
    │  ├─libRTC_on_Android.so
    │  └─libRtORB.so
    └─RTM.jar         // JAVAライブラリ

 フォルダーを作成し、以下のファイルをコピーしてください。

  • RTMonAndroidSample/libs
    • RTM.jar
  • RTMonAndroidSample/libs/armeabi
    • libCosNaming.so
    • libOpenRTM_on_Android.so
    • libRTC_on_Android.so
    • libRtORB.so

 操作はEclipse上の操作でも、エクスプローラ等で直接ファイルをコピーしてもかまいませんが、直接ファイルをコピーした場合は、EclipseのパッケージエクスプローラのRTMonAndroidSampleプロジェクト上を選択状態でF5キーでリフレッシュしてください。

マニフェストファイルの編集

 ネットワークを通して通信する為、以下のパーミッションを追加します。

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

ミドルウェアのサービスを使用する為、以下のサービスを追加します。

<service android:name="jp.co.sec.rtm.RTCService"></service>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="jp.co.sec.rtc.sample"
     android:versionCode="1"
     android:versionName="1.0">
   <uses-sdk android:minSdkVersion="4" />
   <uses-permission android:name="android.permission.INTERNET"></uses-permission>
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
   <supports-screens android:smallScreens="true" android:xlargeScreens="true" android:largeScreens="true" android:normalScreens="true"></supports-screens>
   <application android:label="@string/app_name" android:icon="@drawable/rtm_logo" android:debuggable="true">
       <activity android:name=".RTMonAndroidSample"
                 android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:windowSoftInputMode="stateHidden">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   <service android:name="jp.co.sec.rtm.RTCService"></service>
   </application>
</manifest>