この章ではAndroid版においてのBiz/Browserとしての仕組みの違いについて記載します。
○Android版のCRS実行エンジンはBiz/Browser Vと同等のものを使用しています。
また、内部文字コードにはMobile版同様Unicodeが採用されています。
○メソッド名や変数名、外部リソース定数等の識別子の解決を行う際、全角文字に対しても大文字小文字を区別せずに扱かわれることがあります。
全角英字やギリシャ文字等を用いた識別子を使用する場合はご注意ください。
○Biz/Browser Mobileと同様、UseTapAndHoldプロパティが定義されているオブジェクトでは、UseTapAndHold=$TRUEと設定されているときにのみRClickedイベントが発生します。
○使用可能な改行コードはPC版,Mobile版と異なり、「\n」または「\r\n」となります。
○日本円の通貨記号はPC版, Mobile版と異なり、全角の「¥」が使用されます。
○プラットフォームやアーキテクチャの違いにより、浮動小数点演算の結果がわずかに異なる場合があります。
○Edit系オブジェクト等でIMEを用いて入力中にフォーカスを移動した場合、PC版,Mobile版と異なり入力中の文字列が確定されます。
○Biz/Browser Mobileには搭載されていないセキュリティレベルの概念を搭載しています。
規則についてはセキュリティレベルについてを参照してください。
○Android OSの仕様上、Biz/Browserが前面に表示されていない状態になった時に自動的にBiz/Browserのプロセスが強制終了される場合があります。
そのため、処理・操作フロー等はそのことを考慮した開発が必要となります。
(CRSプログラムとしては、Root.SetReloginURLメソッド、Root.ReloggedInプロパティ、Root.WindowStateChangedイベント等を用いることで記述可能です)
○端末やOSに依存する動作に対してはBiz/Browserはその挙動に従います。そのため一部の機能については結果・挙動に差異が出る可能性があります。
Biz/Browser AIは他の一般的なAndroidアプリ同様、機能を実現するためにAndroid OSに対しパーミッションと呼ばれるものを要求します。
パーミッションはAndroidアプリがどのような機能に対してアクセスする可能性があるかを明示するもので、Androidアプリのインストール時にその一覧が表示されます。
Androidアプリは要求したパーミッション以外の機能にアクセスすることはAndroid OSによって禁止されます。
ExternalObject パッケージ(Java連携)を用いてAndroid標準ライブラリやサードパーティ製ライブラリで実行可能となる処理もこのパーミッションによって制限されますので、ライブラリを使用する前に予め必要となるパーミッションをご確認下さい。
Biz/Browser AIがAndroid
OSに対して要求するパーミッションは下記のとおりです。
パーミッション |
説明 |
android.permission.ACCESS_COARSE_LOCATION |
おおよその位置情報(ネットワーク基地局)へのアクセス許可 |
android.permission.ACCESS_FINE_LOCATION |
詳細な位置情報(GPS)へのアクセス許可 |
android.permission.ACCESS_NETWORK_STATE |
ネットワーク状態へのアクセス許可 |
android.permission.ACCESS_WIFI_STATE |
Wi-Fi状態へのアクセス許可 |
android.permission.BLUETOOTH |
ペアリング済みのBluetoothデバイスへのアクセス許可 |
android.permission.BLUETOOTH_ADMIN |
Bluetoothデバイスの検索とペアリング操作の許可 より追加されました |
android.permission.DISABLE_KEYGUARD |
キーロックを無効化することの許可 より追加されました |
android.permission.INTERNET |
完全なインターネットアクセスの許可 |
android.permission.VIBRATE |
バイブレーション制御の許可 |
android.permission.WAKE_LOCK |
端末のスリープを無効にすることの許可 より追加されました |
android.permission.WRITE_EXTERNAL_STORAGE |
SDカード内のコンテンツに対するアクセスの許可 |
android.permission.WRITE_SETTINGS |
システムの全般設定の許可(画面の明るさの変更等) |
com.android.launcher.permission.INSTALL_SHORTCUT |
ショートカットを作成する事の許可 より追加されました |
Android OSが動作する一般的な端末では512MB〜2GB前後のRAMが搭載されていますが、Androidアプリにおけるアクティビティ(アプリケーションの1画面に相当します)が使用可能なメモリサイズは16MB〜48MB程度に制限されています。
Biz/Browser AIに対してもこの制限が適用されるため、巨大なデータや画像を扱う際には使用メモリサイズにご注意ください。
(使用可能最大メモリサイズはRuntime.GetMaxMemoryメソッド、メモリ使用量の調査にはRoot.SetMemoryLimitThresholdメソッド、Root.MemoryLimitExceededイベントを使用できます)
Webサーバへのリクエスト時のUserAgentがPC版とMobile版で異なります。
UserAgentにて処理を分岐している場合ご注意ください。
|
UserAgent |
PC版 |
Biz/Browser |
Mobile版 |
Biz/Browser |
Android版 |
Biz/Browser AI |
SYSオブジェクトの値が異なります。
|
SYS_CLIENT |
PC版 |
Biz/Browser |
Mobile版 |
Biz/Browser
|
Android版 |
Biz/Browser AI |
またSYS_CLIENT_VERSIONも実行中のバージョンとなるため、既存のCRSプログラム中で、SYS_CLIENT_VERSIONやSYS_CLIENTを利用して処理を分岐していたような場合には注意が必要です。
Biz/Browser AIで実行した場合、定数「$ANDROID」は「1」となります。
これを利用して、Android版での実行時のみ処理させてPC版やMobile版のときには無視させる分岐処理の記述が可能です。
Android版では起動時にメインウィンドウ(rootオブジェクト)は画面上で最大化され変更することはできません。
root直下のFormオブジェクトはPC版やMobile版と異なりrootのサイズと連動しません。またX,Yプロパティに0以外の値を指定した場合無視されます。
StringオブジェクトにはUnicode文字が格納され、文字数や処理単位はUnicode1文字単位となります。
CRS内における文字コードの変換規則は下記のとおりです。
---CRSファイル--- ◇CRS解析時は、BOMがある場合はBOMに従い、その他の場合、OSの言語設定が日本語のときShift-JIS、その他の言語設定のときにはISO/IEC 8859-1 となります。
---Stringクラス--- ◇文字数は、UTF-16の数え方と同様です。
---入出力関連--- ◇ByteArrayクラスオブジェクトにセットした文字列はUTF-8として扱います。
◇Fileクラス, Securityパッケージにおける入出力では、UTF-8として扱います。 ・DecryptorクラスDecryptStringメソッドの第二引数のpass(パスワード)はUTF-8として扱われます。 ・EncryptorクラスEncryptStringメソッドの第二引数のpass(パスワード)はUTF-8として扱われます。
◇HTTPパッケージにおける入出力 ・httpRequestのメソッドで指定される文字列はUTF-8として扱います。 ・httpResponseクラスのオブジェクトのレスポンスデータはByteArrayとして扱います。 ・httpResponseクラスのReadLineメソッドではUTF-8として扱われます。ただし、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。
◇XMLパッケージにおける入出力 ・XmlDOMImplementationクラスのParse、LoadメソッドではUTF-8として扱われます ・XmlDocumentクラスのSaveメソッドでは第二引数で指定されたエンコードに従います。 (デフォルト:UTF-8)
◇CSVパッケージにおける入出力 ・CSVDocumentクラスのParseメソッド、Loadメソッド、SaveメソッドではUTF-8として扱われます。 ・CSVDocumentクラスのGetメソッドではUTF-8として扱われます。ただし、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。
より、下記の仕様は廃止されました --> ・CSVDocumentクラスのGetメソッドではcsvDocumentコンストラクタ引数で指定された エンコードに従います。(デフォルトはOSの言語設定が日本語の場合Shift-JIS, その他の場合はISO/IEC 8859-1です。) <--ここまで
|
Android版ではMaxLengthプロパティはPC版と異なり文字数(Unicode単位) で統一されています。
Android版ではIMEの入力モードを制御することはできません。
IMEモードを指定した場合のSIP(Software Input Panel)の状態につきましては各クラスのIMEModeプロパティを参照してください。
端末内蔵フォントの違いにより、PC版, Mobile版と比較して行間や文字幅が異なります。
文字列が表示領域に収まらなかった場合の表示や、ワードラップ処理の結果がWindowsとは異なります。
太字や斜体については端末に該当するフォントが存在する場合のみ適用されます。
下線はAndroid版では対応しておりません。
現時点ではKeyDownイベントが発生することが保証されるキーは下記のとおりです。
キーの種類 |
格納される値 |
Enter |
“RETURN” |
Tab |
“TAB” |
音量+ |
“VOLUME_UP” |
音量- |
“VOLUME_DOWN” |
Backキー |
“BACK_BTN” |
OSの違いによりドライブやディレクトリの構造がWindowsと異なるため、絶対パスでのアクセスなどにて動作しない場合があります。
Android版ではプライベートルート、パブリックルートの場所が下記ディレクトリ以下となります。
◆プライベートルート : /data/data/jp.co.axissoft.biz/files/filesystem/private_root/(サーバ名)
◆パブリックルート : /sdcard/Android/data/jp.co.axissoft.biz/files/filesystem/root
パスの区切り文字は"\"ではなく"/"を用います。
ファイルパスを表すワイルドカードの扱いがWindowsとは異なります。
(例:"*.*" を指定した場合、"." を1つ以上含むファイルのみが対象となります)
Android版ではOSの制約のため、日本語のタグ名を扱うことができません。
XmlNodeクラスのSelectSingleNodeメソッド、SelectNodesメソッドで指定するXPath式でのインデックスの開始番号は1からとなります。
//.SYSオブジェクトのプロパティにMobile版と同等のプロパティが追加されています。
プロパティ名 |
説明 |
String MODELNAME
|
メーカーが設定したメーカー名や機種名が取得できます。 メーカーが自由に設定できるため必ず取得できるとは限りません。また書式に規則性はありません。 このプロパティを用いると機種に依存した条件分岐やコーディングが可能になります。 |
String PLATFORM
|
プラットフォーム種別が取得できます。 Android版では端末のCPU命令セットを取得できます。 |
String DEVICEID
|
機体固有のIDが取得できます。 この値を用いるとサーバ側で機体個別の管理やロギングなどが可能になります。 |
スケーリング設定画面について
Biz/Browser AIでは開発やデバッグを容易にするための補助機能として、画面の表示倍率やスクロールバーサイズをスクリプトを書かずに指定することの出来る「スケーリング設定画面」を用意しています。
スケーリング設定画面で設定すると端末内で実行するすべてのCRSプログラムに一律で反映します。
アプリケーションシステムとして個々の画面でのスケーリング設定を行う場合には、下記のスケール関連設定をCRSスクリプトに記述して行なってください。
機能 |
対応するプロパティ |
表示倍率設定 |
|
スクロールバー幅設定 |
「スケーリング設定」画面 各項目
【表示倍率関連】
□デフォルトのスケール値を上書きする
チェックをつけた状態で[OK]ボタンを押下すると各倍率を即反映して表示します。
チェックを外した状態で[OK]ボタンを押下すると各倍率を「1.0」に戻します。
□水平方向倍率
水平方向(X, Width等)の表示倍率を指定します。
□垂直方向倍率
垂直方向(Y, Height等)の表示倍率を指定します。
□フォント倍率
フォントの表示倍率を変更します。
□[フォームにフィット]ボタン
「デフォルトのスケール値を上書きする」にチェックが入った状態で有効になります。
押下すると、Root直下のFormが収まる倍率値を自動的に各倍率欄にセットします。[OK]を押下するとセットされた倍率で表示されます。
□[リセット]ボタン
「デフォルトのスケール値を上書きする」にチェックが入った状態で有効になります。
各倍率欄に「1.0」をセットします。[OK]を押下するとセットされた倍率で表示されます。
※Formが存在しない、スクリプトが例外などで停止している場合には動作しません。
※スクリプトのスケーリング関連の記述が更新されることはありません。
【スクロールバー幅関連】
□デフォルトのスクロールバー幅を上書きする
チェックをつけた状態で[OK]ボタンを押下するとスクロールバー幅で設定された値でスクロールバーを表示します。
チェックを外した状態で[OK]ボタンを押下するとスクロールバーをデフォルトの幅で表示します。
□スクロールバー幅
スクロールバー幅を指定します。
○px 設定スクロール幅の単位をピクセルで指定します。
○mm 設定スクロール幅の単位をミリメートルで指定します。
※RootクラスのScrollBarSizeプロパティで設定された値より優先して反映されます。
※Root直下のFormの表示されているスクロールバーには即反映します。それ以外のスクロールバーに対してはそのオブジェクトが再作成されたタイミングで反映されます。
PC版と同様、Biz/Browser AIでは任意のCRSを直接実行するためのショートカットを作成することができます。
ショートカットの作成方法としては、主に「Biz/Browser AI上からの作成」と「Androidのホームアプリ上からの作成」の二点があります。
Biz/Browser AI上からショートカットを作成する場合は下記の操作を行うこととで可能です。
1. Biz/Browser AIを起動します。
2. 初期表示されるログイン画面上のブックマーク一覧で、ショートカットを使いたいブックマークをロングタップします。
3. 「ブックマークメニュー」ダイアログが表示されますので、「ショートカットを作成」ボタンをタップします。
より追加された機能です。1.0.1.0以前では後述の「Androidのホームアプリ上からの作成」方法を行なって下さい。
Androidのホームアプリ上からショートカットを作成する場合、作成方法はAndroid OSのバージョンや端末のホームアプリなどにより異なります。
なお、一般的には下記の方法で作成することができます。
○ Android 2.x系で実行中の場合
ホーム画面をロングタップ →「ホーム画面に追加」ダイアログの 「ショートカットの作成」をタップし、Biz/Browserを選択します。
○ Android 3.x系で実行中の場合
ホーム画面上部の「+」ボタンをタップ→「その他」タブをタップ後、Biz/Browserを選択します。
○ Android 4.x系で実行中の場合
ドロワー(アプリ一覧画面)の「ウィジェット」タブをタップ→Biz/Browserのアイコンをロングタップ→ショートカットを配置したい場所で指を離します。
「ショートカット作成」画面 各項目
□ショートカット名
ショートカットアイコン下部に表示される文字列を指定します。
□ログイン先URL
Biz/Browserの起動後に自動的にログインするCRSのURLを指定します。
□ブックマークから選択
「ショートカット名」と「ログイン先」をBiz/Browserのブックマークに登録されているURLから選択することができます。
□アイコンの選択
タップすることでアイコンを選択するダイアログが表示されます。
適切なアイコンのサイズはAndroid OSのバージョンや端末の解像度によって異なりますのでご注意下さい。
□コアダンプ出力モード より追加されました
Biz/Browserの実行中にハンドリングされない例外がCRS実行エンジンに補足された場合、デバッグ情報(コアダンプ)を出力し、処理を中断します。
Biz/Browser AI 1.0.2.0より、このデバッグ情報(コアダンプ)の出力制御をショートカット作成画面から指定できるようになりました。
コアダンプ出力モードは下記のモードが指定可能です。
値 |
説明 |
0 |
デバッグ情報(コアダンプ)を出力しません |
1 |
ハンドリングされていない例外が発生した場合、デバッグ情報(コアダンプ)を出力します。 コアダンプがすでに存在する場合、上書きされます。 (従来のBiz/Browserの動作と同等です) |
2 |
ハンドリングの有無にかかわらず、例外が発生するたびにデバッグ情報(コアダンプ)を出力します。 コアダンプファイル名にはタスクIDと4桁の連番が付与され、コアダンプが出力される度に新たに作成されます。 |
デフォルトでは1が選択されています。