BlackBerry Java Development Environment
バージョン: 4.7.0
基本ガイド
SWDT499912-499912-1212122150-020
目次
1 BlackBerry および BlackBerry デバイスのためのプログラミングについて................... 5
BlackBerry デバイス向け設計の原則..................................................... 5
リリースのサイクルとバージョン........................................................ 6
BlackBerry Java Development Environment............................................... 7
BlackBerry 向け Java ME と Java API................................................... 7
標準の Java API のサポート........................................................ 8
Java API 拡張機能のサポート....................................................... 8
BlackBerry ソリューション............................................................. 9
BlackBerry Enterprise Solution.................................................... 9
BlackBerry Internet Service....................................................... 10
BlackBerry MDS.................................................................... 10
2 BlackBerry Java Application の設計.................................................... 11
スタンドアロン型アプリケーション...................................................... 11
デスクトップ同期を使用するアプリケーション............................................ 11
ワイヤレスアクセス、ワイヤレス同期、またはワイヤレス警告を使用するアプリケーション.... 11
MIDlet アプリケーション............................................................... 12
CLDC アプリケーション................................................................. 12
API の管理およびコード署名............................................................ 13
オブジェクトモデリング................................................................ 14
マルチスレッド........................................................................ 14
対策:マルチスレッドの使用........................................................ 14
効率的な BlackBerry Java Application の作成に関する対策............................... 14
対策:効率的なコードの作成........................................................ 14
対策:オブジェクトの適切な使用.................................................... 20
対策:コンパイル後コードのサイズ削減.............................................. 20
多言語サポート........................................................................ 21
対策:テキスト文字列のリソースファイルへの格納.................................... 22
マルチメディアサポート................................................................ 22
オーディオのサポート.............................................................. 22
画像処理のサポート................................................................ 22
ビデオのサポート.................................................................. 23
3 UI とナビゲーション設計............................................................... 24
BlackBerry デバイスユーザーの入力とナビゲーション..................................... 24
トラックホイールとトラックボール.................................................. 24
標準の BlackBerry UI と一貫性のある UI の作成......................................... 25
4 メモリの管理.......................................................................... 27
メモリの管理.......................................................................... 27
BlackBerry デバイスのメモリ....................................................... 27
予約される主なリソース............................................................ 27
対策:メモリ使用の最小化.......................................................... 28
利用できるメモリ量が低下した状況の管理................................................ 28
BlackBerry デバイスで利用できるメモリ量が低下した状況の識別....................... 28
リソースの節約........................................................................ 29
対策:効率的なデータ構造選択の使用................................................ 29
対策:オブジェクトグループへオブジェクトの統合.................................... 29
BlackBerry デバイスにおけるガベージコレクション....................................... 30
BlackBerry デバイスでの RAM ガベージコレクション.................................. 30
BlackBerry デバイスにおけるフルガベージコレクション............................... 30
BlackBerry デバイスにおけるアイドル時のガベージコレクション....................... 31
5 データの管理.......................................................................... 32
永続的なメモリにデータを保存するための API のサポート................................. 32
Persistent Store API.............................................................. 32
MIDP Record Management System API................................................. 32
File Connection API............................................................... 33
リムーバブルメディアへの保存.......................................................... 33
microSD メディアカード上のデータへのアクセス...................................... 33
データのバックアップおよび同期........................................................ 34
6 ワイヤレスデータ転送.................................................................. 35
デフォルトと優先のワイヤレスゲートウェイ.............................................. 35
ネットワークゲートウェイとしての BlackBerry Enterprise Server の使用.............. 35
ワイヤレスサービスプロバイダのインターネットゲートウェイの使用.................... 36
代替のデータ転送オプション............................................................ 36
電子メールを使用したデータの転送.................................................. 36
SMS を使用したデータの転送........................................................ 36
PIN メッセージを使用したデータの転送.............................................. 37
7 BlackBerry アプリケーションの統合..................................................... 38
カスタムメニュー項目の追加............................................................ 38
BlackBerry デバイスアプリケーションの呼び出し......................................... 38
電子メールとオーガナイザのデータへのアクセス.......................................... 38
BlackBerry Messenger と BlackBerry Application との併用............................... 39
リスナを使用したアプリケーションの変更への応答........................................ 39
8 セキュリティに関する考慮事項.......................................................... 40
データの暗号化と BlackBerry Application............................................... 40
転送時のデータ暗号化.............................................................. 40
BlackBerry デバイス上のデータ暗号化............................................... 40
メモリへのアクセス.................................................................... 40
認証.................................................................................. 41
BlackBerry デバイスの認証と IT ポリシー........................................... 41
アプリケーションの認証............................................................ 41
サーバー側の認証.................................................................. 41
制御対象 API およびコード署名......................................................... 41
アクセスが制限された BlackBerry API................................................... 42
IT ポリシーのサポート................................................................. 43
アプリケーションの制御................................................................ 43
microSD カード上のファイルの暗号化.................................................... 44
microSD メディアカード上のデータの暗号化.......................................... 44
複数の BlackBerry デバイスでの microSD メディアカードの使用....................... 44
IT ポリシーと microSD メディアカード.............................................. 44
9 BlackBerry Java Application のテスト.................................................. 45
BlackBerry Java Application の難読化.................................................. 45
BlackBerry Java Application の事前検証................................................ 45
BlackBerry Smartphone Simulator 上でのアプリケーションのテスト........................ 46
BlackBerry デバイス上でのアプリケーションのテスト..................................... 46
BlackBerry シミュレータ............................................................... 46
BlackBerry Smartphone Simulator................................................... 46
BlackBerry MDS Simulator.......................................................... 47
BlackBerry Email Simulator........................................................ 47
10 アプリケーションの利用................................................................ 48
コンピュータ接続を介したアプリケーションの配布........................................ 48
アプリケーションのコンピュータからの配布.......................................... 48
アプリケーションの Web ページからの配布........................................... 48
テストのためのアプリケーション配布................................................ 48
ワイヤレスネットワーク上でのアプリケーション配布...................................... 48
ワイヤレスプル(ユーザー実行型).................................................. 49
ワイヤレスプッシュ(サーバー実行型).............................................. 49
11 用語集................................................................................ 50
12 商標などに関する情報.................................................................. 53
基本ガイド
BlackBerry および BlackBerry デバイスのためのプログラミングについて
BlackBerry および BlackBerry デバイスのため
1
のプログラミングについて
BlackBerry® デバイスには、クライアント/サーバーアプリケーションをサポートする Java® ME ワイヤ
レス環境があります。 アプリケーション開発者は、データ入力や検索用の洗練された UI を搭載し、マ
ルチスレッド、国際化、ネットワーク通信、およびローカルデータストレージをサポートする BlackBerry®
Java Application 作成することができます。 アプリケーションは、基礎となるワイヤレスネットワーク
には関係なく、標準の TCP および HTTP 接続を使用してネットワークと通信できます。
またアプリケーション開発者は、BlackBerry Java Application を作成し、基幹となる BlackBerry デバ
イスアプリケーション(メッセージリスト、オーガナイザアプリケーション、電話、ブラウザなど)と密
接に統合することによって、実質的にシームレスなユーザー側の使用感を実現することができます。
BlackBerry デバイス向け設計の原則
BlackBerry® デバイス向けに設計されるアプリケーションでは、実現し得る最高のユーザー操作環境と長
時間のバッテリー持続とのバランスを実現しなければなりません。 BlackBerry デバイスアプリケーショ
ンを設計するときは、モバイルデバイスとコンピュータとの違いを考慮します。 モバイルデバイスに
は、次のような特長があります。
• 画面サイズが小さく、表示できる文字数が限定される
• プロセッサ速度が遅い
• 標準的な LAN よりも遅延時間が長いワイヤレスネットワークを使用する
• 利用できるメモリが少ない
• バッテリー持続時間が短い
• 一度に表示される画面は 1 つ
モバイルデバイスユーザーは、コンピュータ上のアプリケーションを使用する場合とは異なる方法で、モ
バイルデバイス上のアプリケーションを使用します。 モバイルデバイスでは、ユーザーは情報をすばや
く検索できることを期待します。 例えば CRM システムでは大量の情報を提供しますが、ユーザーが一度
に必要とする情報は、そのうちのわずかにすぎません。 BlackBerry デバイスの UI は、ユーザーがタス
クを簡単に実行したり、素早く情報にアクセスしたりすることができるように設計されます。
BlackBerry デバイス用のアプリケーションを設計する場合は、その他の BlackBerry デバイスアプリケ
ーションとできるだけ一貫性を維持するようにしてください。 次のガイドラインを参考にしてください。
• 可能な場合は既存の UI を使用または拡張して、アプリケーションがコンポーネントのデフォルト動
作を継承できるようにします。
• ユーザーがキーボードおよびトラックボールを最大限活用できるように、できるだけ標準のナビゲー
ションモデルに従います。
5
基本ガイド
• すべての操作をメニューから使用できるようにします。 メニューで使用できるアクションが、ユー
ザーの現在のコンテキストに関連していることを確認します。
アプリケーションを設計するときは、次のガイドラインも参考にしてください。
• ユーザーの目前のタスクに集中させたままにします。 データの選択および表示を簡素化し、ユーザ
ーがまもなく必要とする情報だけを表示するようにします。
• 小さい画面を効果的に使用できるように、情報を簡潔に表示します。
アプリケーションを設計する前に、ナビゲーションモデルやアプリケーションの UI 設計における成功事
例について詳細を確認するために、BlackBerry デバイスまたは BlackBerry Smartphone Simulator 上の
コアアプリケーションを使用することを検討します。
リリースのサイクルとバージョン
リリースのサイクルとバージョン
すべての BlackBerry® デバイスには、特定のバージョンの BlackBerry® Device Software と BlackBerry®
Java® Virtual Machine が入っています。 BlackBerry デバイスに入っている BlackBerry Device
Software のバージョンを判断するには、デバイスの[オプション]で[バージョン情報]をクリックし
ます。 BlackBerry Device Software はアップグレードが可能です。 例えば、BlackBerry Device
Software バージョン 4.0 の入っている BlackBerry デバイスを、BlackBerry Device Software バージ
ョン 4.1 にアップグレードすることができます。
Research In Motion では、BlackBerry Device Software と BlackBerry JVM の各メジャーリリースに、
対応する Java API および対応するバージョンの BlackBerry® Java® Development Environment を内蔵
しています。 BlackBerry Device Software のバージョンによって、アプリケーションの開発に使用でき
る BlackBerry® Integrated Development Environment のバージョンが決定されます。 例えば、RIM は
BlackBerry Device Software バージョン 4.0 と BlackBerry JDE バージョン 4.0 を同時にリリースし
ました。 BlackBerry JDE バージョン 4.0 では、BlackBerry Device Software バージョン 4.0 と
BlackBerry JVM バージョン 4.0 で導入された API がサポートされています。 BlackBerry JDE バージ
ョン 4.0 を使用して作成したアプリケーションは、BlackBerry Device Software バージョン 4.0 以上
が動作する BlackBerry デバイスでのみ動作します。
次の条件で、アプリケーションの開発に使用する BlackBerry JDE のバージョンを判断することができま
す。
• アプリケーションが特定の BlackBerry デバイスのハードウェア機能や新しくリリースされた API
拡張機能を必要としない場合は、BlackBerry JDE バージョン 4.0 を使用してアプリケーションを開
発します。
• アプリケーションが BlackBerry® Pearl™ 8100 スマートフォン上のみで動作するように設計されて
いる場合は、BlackBerry JDE バージョン 4.2 以上を使用します。
6
基本ガイド
BlackBerry Java Development Environment
BlackBerry Java Development Environment
BlackBerry® Java® Development Environment は、BlackBerry デバイス用の BlackBerry® Java
Application を構築するための、完全に統合された開発およびシミュレーション環境です。 BlackBerry
JDE では、開発者は Java® ME プログラミング言語および BlackBerry 用の拡張 Java API を使用して、
アプリケーションを構築できます。
BlackBerry Java Development Environment には、次の開発ツールが含まれます。
• BlackBerry® Integrated Development Environment
• BlackBerry Smartphone Simulator
• Java ME API および BlackBerry API
• サンプルアプリケーション
BlackBerry IDE には、BlackBerry Java Application の開発に最適化された編集およびデバッグツール
が含まれます。 BlackBerry Smartphone Simulator では完全な Windows® タイプの環境を提供します。
このシミュレータは、UI およびユーザー対話、ネットワーク接続、メールサービス、ワイヤレスデータ
同期をシミュレートするように設計されています。
BlackBerry Java Development Environment Component Package には、サードパーティの IDE
(NetBeans™、Eclipse™ など)内で開発するための次の開発ツールが含まれています。
• RAPC:このコマンドプロンプトコンパイラを使用すると、.java および .jar ファイルを BlackBerry
Smartphone Simulator または BlackBerry デバイスで実行できる .cod ファイルにコンパイルでき
ます。
• JavaLoader:このツールを使用すると、テスト用に BlackBerry デバイス上でアプリケーションを追
加および更新したり、アプリケーションの .cod ファイルの情報を表示したりすることができます。
• BlackBerry® Signature Tool:このツールを使用すると、コード署名要求を BlackBerry® Signing
Authority Tool に送信できます。
• Preverify Tool:このツールを使用すると、アプリケーションを BlackBerry デバイスにロードする
前に、クラスを部分的に確認できます。
• JDWP:このツールを使用すると、サードパーティの統合開発環境を使用して、アプリケーションをデ
バッグできます。
BlackBerry 向け Java ME と Java API
Java® ME は、各種のワイヤレスおよび組み込みデバイス向けの Java API の共通セットを定義する、業
界標準のプラットフォームです。 BlackBerry® デバイス上の Java ME アプリケーションは、BlackBerry®
Java® Virtual Machine 内で実行されます。この仮想マシンは、ランタイムサービスのすべてをアプリケ
ーションに提供し、一般的なメモリ割り当て、セキュリティチェック、ガベージコレクションなどの機能
を実行します。
7
基本ガイド
Java ME MIDP 標準では、制約のあるワイヤレスデバイスの API と BlackBerry JVM のニーズにユーザー
インターフェイスで対応します。 BlackBerry デバイスでは、JSR 118 で規定されている Java ME MIDP
標準をサポートします。 Java ME MIDP 標準では、基になるオペレーティングシステムとは無関係に、あ
らゆる BlackBerry デバイスでサポートできる Java API のコアセットを提供します。 たいていの場
合、開発者は MIDP 標準 API を使用して Java アプリケーションを 1 つ作成すれば、多くの各種デバイ
スでそのアプリケーションを実行させることができます。
BlackBerry 向け Java ME と Java API
標準の Java API のサポート
BlackBerry® デバイスと BlackBerry® Java® Development Environment では、Java® ME MIDP 標準をサ
ポートしています。Java® ME MIDP 標準には、ワイヤレスデバイスアプリケーションの開発に使用可能
な Java API のコアセットが入っています。 BlackBerry デバイスでは、次の JSR をサポートしていま
す。
• JSR 185:Java Technology for the Wireless Industry(JTWI)
• JSR 139:Connected Limited Device Configuration バージョン 1.1
• JSR 118:Mobile Information Device Profile バージョン 2.0
• JSR 120:Wireless Messaging API(WMA)バージョン 1.1
• JSR 135:Mobile Media API(MM API)バージョン 1.1
• JSR 179:Location API for Java ME
• JSR 75:PIM API のみを対象とする J2ME プラットフォーム用ポータブルオプションパッケージ
(PDAP)のサポート、File Connection API for Java ME(BlackBerry Device Software バージョン
4.2 以上のデバイスでサポート)
• JSR 82:Java APIs for Bluetooth®
• JSR 172:J2ME Web Services
• JSR 177:Security and Trust Services API for J2ME(SATSA)
• JSR 205:Wireless Messaging API 2.0
• JSR 211:Content Handler API
• JSR 238:Mobile Internationalization API
• JSR 30:(CLDC Version 1.0)(BlackBerry® Device Software バージョン 4.0 以前のデバイスでサ
ポート)
• JSR 37:(MIDP バージョン 1.0)(BlackBerry Device Software バージョン 4.0 以前のデバイスで
サポート)
Java API 拡張機能のサポート
BlackBerry® デバイスでは、次の Java® API をサポートしています。これらの API は標準の JSR 定義
の一部ではないため、標準の MIDP API ライブラリよりも優れた特徴と機能があります。
8
基本ガイド
API 説明
User Interface API これらの API を使用して、画面やメニュー項目、およびユーザーイ
ンターフェイスのすべてのコンポーネントを作成できます。
Persistent Data Storage API これらの API を使用して、カスタムのデータをローカルでアプリケ
ーション内に格納することができます。
Networking and I/O API これらの API を使用して、ネットワーク接続を確立したり、サーバ
ー側アプリケーションでのデータの読み取りや書き出しを行うこと
ができます。
イベントリスナ イベントリスナを使用して、BlackBerry デバイスユーザーや、
BlackBerry デバイス上でシステムによって発生したイベントに応答
することができます。
Application Integration API これらの API を使用して、既存の BlackBerry の電子メール、電
話、カレンダー、連絡先、ブラウザ、カメラ、メディアプレーヤ
ー、タスクリストなどのアプリケーションと統合することができま
す。
その他のユーティリティ その他の API は、データの暗号化と圧縮、XML 解析、Bluetooth®
接続、ロケーションベースサービスなどに使用できます。
BlackBerry ソリューション
BlackBerry ソリューション
BlackBerry® デバイスユーザーは BlackBerry® Enterprise Server と BlackBerry® Internet Service
のいずれかを使用することも、同じデバイス上で両方を使用することも可能です。 BlackBerry Enterprise
Server と BlackBerry Internet Service の相違点や自分がサポートする予定のユーザーのタイプを理解
することが重要となります。それは、このことが使用する転送モードやデータ同期の管理方法に影響する
可能性があるためです。
BlackBerry Enterprise Solution
BlackBerry® Enterprise Server は、BlackBerry® Enterprise Solution の一部です。 BlackBerry
Enterprise Server は、企業のファイアウォールの内側にあり、組織の BlackBerry デバイスユーザーが
企業メールやオーガナイザデータにアクセスするためのワイヤレスゲートウェイを提供します。 BlackBerry
Enterprise Server は、次の主要機能も備えています。
• データの暗号化および圧縮
• BlackBerry デバイスの管理および監視用ユーティリティ
9
基本ガイド
• 簡素化されたアプリケーションのプロビジョニング
• BlackBerry® Java Application からイントラネットアクセスを行うための認証済みゲートウェイ
BlackBerry ソリューション
BlackBerry Internet Service
BlackBerry® Enterprise Server と関連付けられていない BlackBerry® デバイスユーザーは、BlackBerry®
Internet Service を使用できます。 BlackBerry Internet Service は、ユーザーにメールメッセージの
自動配信、メール添付ファイルへのワイヤレスアクセス、インターネットコンテンツへのアクセスを提供
するように設計された、BlackBerry デバイス向けのメールおよびインターネットサービスです。
BlackBerry Internet Service には、サードパーティの BlackBerry® Java Application からインターネ
ットへの HTTP および TCP/IP による直接接続のサポートが含まれます。
BlackBerry MDS
BlackBerry® Java Application で企業のファイアウォールの内側にあるリソースにアクセスできるよう
にするため、BlackBerry® Enterprise Server には BlackBerry® Mobile Data System が搭載されていま
す。 BlackBerry MDS には BlackBerry Java Application 用の HTTP および TCP/IP プロキシ機能があ
り、これによって BlackBerry デバイスが追加の VPN ソフトウェアを使用しなくても企業のファイアウ
ォールの内側にあるアプリケーションや Web サーバーと通信できるようになります。 BlackBerry
Enterprise Server をゲートウェイとして使用してデータを送信するアプリケーションでは、BlackBerry®
Enterprise Solution が機能として持っている、簡素化されたエンタープライズ接続や、データの暗号化
と圧縮、ワイヤレスネットワークからの独立性を利用することができます。 BlackBerry MDS にはオープ
ンインターフェイス機能もあるため、企業のファイアウォールの内側にあるサーバー側アプリケーション
で、BlackBerry デバイス上のアプリケーションにコンテンツをプッシュすることができます。
10
基本ガイド
BlackBerry Java Application の設計
BlackBerry Java Application の設計
2
スタンドアロン型アプリケーション
BlackBerry® API を使用して、オフラインアプリケーションとして実行できる静的なリファレンスガイド
やゲームなどのスタンドアロン型アプリケーションを構築できます。 アプリケーションをコンパイルす
る前に、必要なリソースデータを追加することができます。 BlackBerry デバイスユーザーは、ワイヤレ
スネットワークや、BlackBerry® Desktop Software を使用してアプリケーションをインストールするこ
とができます。 BlackBerry デバイスにアプリケーションをインストールした後、ワイヤレスネットワー
クやコンピュータに接続する必要はありません。
デスクトップ同期を使用するアプリケーション
BlackBerry® API を使用して、リファレンスガイドやオーガナイザアプリケーションなど、デスクトップ
同期機能を使用するアプリケーションを構築できます。 ユーザーは、BlackBerry デバイスをコンピュー
タに接続して、コンピュータ上にあるデータを管理および同期します。
Research In Motion® では、HotSync® コンジットやその他のダイレクトデータベース同期モジュールを
提供しません。 開発者は同期用のコードを構築する必要があり、BlackBerry デバイスユーザーはデータ
同期処理を手動で開始する必要があります。 アプリケーションが BlackBerry デバイスにインストール
されたら、BlackBerry デバイスユーザーは BlackBerry デバイスをシリアル接続、USB 接続、または
Bluetooth® 接続を使用してコンピュータに接続し、情報を手動で同期する必要があります。
ワイヤレスアクセス、ワイヤレス同期、またはワイヤレス警告
を使用するアプリケーション
BlackBerry® API を使用すると、BlackBerry® Enterprise Server を使用する環境にある BlackBerry デ
バイスに、ワイヤレスネットワーク上でコンテンツを事前にプッシュするアプリケーションを構築できま
す。 BlackBerry デバイス用の BlackBerry® Java Application では、インターネットや社内イントラネ
ットへのワイヤレス接続を使用して、BlackBerry デバイスのユーザーがリモートデータやアプリケーシ
ョンにアクセスできるようにしています。 BlackBerry® Java® Development Environment には、インタ
ーネットや社内イントラネット上のサーバーへのネットワーク接続を確立するアプリケーションで使用で
きる API が入っています。
11
基本ガイド
MIDlet アプリケーション
MIDlet アプリケーション
MIDlet アプリケーションモデルは、MIDP 仕様の一部です。 MIDlet のメインクラスは、MIDlet クラス
を常に拡張し、 startApp()、 pauseApp()および destroyApp()のメソッドを使用する必要があります。
メリット デメリット
• アプリケーションは、MIDP
仕様もサポートするほかのデ
バイスに移植できます。
• アプリケーションは、 javax.microedition.lcdui ライブラリ
内にあるユーザーインターフェイス API のみを使用できます。
• モデルでは、アプリケーションを閉じるときに、すべてのアプ
リケーションプロセスが終了することを前提としています。
• アプリケーションは、デバイスがオンになったときに自動で起
動できません。
CLDC アプリケーション
CLDC アプリケーションモデルは、Java® ME のフレームワーク仕様の 1 つです。 CLDC アプリケーショ
ンは、 UiApplication クラスを拡張し、標準の main() メソッドで開始します。
BlackBerry® Java® Development Environment に含まれるサンプルアプリケーションのほとんどで、CLDC
アプリケーションモデルが使用されています。 コア BlackBerry アプリケーションのすべてが(メッセ
ージリスト、連絡先リスト、カレンダー、ブラウザを含む)、CLDC アプリケーションとして構築されてい
ます。
メリット デメリット
• BlackBerry User Interface
API では、標準の
javax.microedition.lcdui
ライブラリよりも多くの機能
や柔軟性を備えています。
• アプリケーションは、閉じた
後もアクティブなバックグラ
ウンドスレッドを実行できま
す。
• アプリケーションをその他のデバイスに移植できません。
12
基本ガイド
メリット デメリット
• アプリケーションは、デバイ
スがオンになったときに自動
で起動できます。
• アプリケーションは、IPC
API を使用して、その他のア
プリケーションと情報を交換
できます。
• 開発者は、CLDC アプリケー
ションでインポートできる再
利用可能なライブラリモジュ
ールを作成できます。
API の管理およびコード署名
API の管理およびコード署名
BlackBerry デバイス用の BlackBerry® Java Application を開発するとき、BlackBerry® Java®
Development Environment では、公開 Javadoc™ ドキュメントとして発行およびドキュメント化されてい
る Java API のみを使用できます。 BlackBerry デバイス上の BlackBerry® Java® Virtual Machine は、
基になるデータおよびオペレーティングシステムを保護するように設計されており、アプリケーションで
はドキュメント化されていない、またはサポートされていない API を呼び出したり、API を経由して明
示的に公開されていないデータにアクセスしたりすることはできません。 公式に公開されていない Java
API を使用しようとすると、アプリケーションは実行時にエラーメッセージを受け取ります。
公開 API は、オープンまたは署名付きのいずれかです。 署名付き API では、BlackBerry デバイスユー
ザーデータや、BlackBerry デバイス上にある機密であるとみなされるその他の情報にアクセスするため
のメソッドを公開しています。 署名付き API を使用できますが、Research In Motion にコード署名キ
ーを要求して受け取る必要があります。 その後、アプリケーションを BlackBerry デバイスにインスト
ールする前に、デジタル署名する必要があります。 コード署名では、アプリケーションを認定または承
認しません。機密 API を使用するアプリケーションが悪意を持っている場合に、そのアプリケーション
の作成者を RIM が特定することができるようにするためのものです。
コード署名キーを要求するには、 www.blackberry.com/developers/downloads/jde/api.shtml を参照し
てください。 コード署名キーを受け取るには、10 日程度かかります。
13
基本ガイド
オブジェクトモデリング
オブジェクトモデリング
アプリケーションモデルとして MIDlet を使用する場合も CLDC 使用する場合も、BlackBerry® デバイス
用のアプリケーションを設計する際にはオブジェクト主導型のアプローチを用いる必要があります。 オ
ブジェクト主導型のアプローチでは、開発者はオブジェクトを使用して、特定の処理や機能に共通するコ
ードをアプリケーションに含める必要があります。 例えば、開発者が別個のオブジェクトを使用して、
ネットワークアクティビティやデータストレージ、データ処理および操作、ユーザーインターフェイスの
操作を制御する場合があります。 アプリケーションを設計する際は、適したオブジェクトモデルを使用
して開始してください。
マルチスレッド
BlackBerry® オペレーティングシステムはマルチスレッドのオペレーティングシステムです。これは、
BlackBerry デバイス上で同時に多数のアプリケーションやプロセスをアクティブで実行できることを意
味します。 例えばアプリケーションでバックグラウンドスレッドを使用することによって、プロセッサ
を多く使用するタスクやネットワーク接続を管理して、メインのスレッドに影響しないようにすることが
できます。 アプリケーションでバックグラウンドスレッドを作成し、BlackBerry デバイスユーザーがそ
のアプリケーションを閉じても、バックグラウンドスレッドはアクティブのままです。
対策:マルチスレッドの使用
BlackBerry® オペレーティングシステムのマルチスレッドを有効に使用してください。 特に、ネットワ
ーク接続やその他の時間のかかる(0.1 秒より長い)操作では、常に新しいスレッドを作成します。 リ
スナなど、アプリケーションの起動時にバックグラウンドで実行するプロセスのために、バックグラウン
ドスレッドを使用します。
効率的な BlackBerry Java Application の作成に関する対策
対策:効率的なコードの作成
BlackBerry® Java® Application でリソースを効率的に使用するには、次のガイドラインを参考にしてく
ださい。
• ローカル変数を使用します。
• ブール条件を評価する場合は短縮形を使用します。
• クラスを final にします。
• int を long の代わりに使用します。
14
基本ガイド
• ガベージコレクションの使用を避けます。
• 文字列に静的変数を使用します。
• 文字列(文字列)コンストラクタの使用を避けます。
• 効率的なループを作成します。
• 部分式を最適化します。
• 除算を最適化します。
• java.util.Enumeration の使用を避けます。
• instanceof を使用してキャストを実行します。
• instanceof を使用して条件を評価します。
• StringBuffer.append (StringBuffer)の使用を避けます。
• null を返さないようにします。
• null をメソッドに渡さないようにします。
• null をコンストラクタに渡すときは注意します。
• 固有の識別子には、 long を使用します。
• アプリケーションを適切に終了します。
• スタックトレースを出力します。
効率的な BlackBerry Java Application の作成に関する対策
ローカル変数の使用
ローカル変数は、可能であればいつでも使用できます。 クラスのメンバーにアクセスするよりも、ロー
カル変数にアクセスする方が効率的です。
ブール値条件を評価するための短縮形の使用
ブール値 条件を評価するには、短縮形を使用します。 これにより、コンパイルされたコードは短くなり
ます。
コードサンプル
return( boolean_expression );
クラスを final にする
コードライブラリを作成するときに、開発者がクラスをこれ以上拡張しないことがわかっている場合は、
クラスを final にします。 final キーワードが存在する場合、コンパイラはより効率的なコードを生成
できます。
デフォルトで、BlackBerry® Java® Development Environment コンパイラは、アプリケーションの .cod
ファイルで拡張しないすべてのクラスに対して final にします。
15
基本ガイド
効率的な BlackBerry Java Application の作成に関する対策
long の代わりとしての int の使用
Java® では、 long は 64 ビットの整数です。 BlackBerry® デバイスでは 32 ビットのプロセッサを使
用するため、 int を long の代わりに使用すると、処理が 2 ~ 4 倍速くなります。
ガベージコレクションの回避
ガベージコレクションを実行する際は、 System.gc() を呼び出さないようにしてください。これは、使
用可能なメモリが制限されている BlackBerry® デバイスでは処理に時間がかかりすぎるためです。 ガベ
ージコレクションは BlackBerry® Java® Virtual Machine で行ってください。
文字列への静的変数の使用
タイプが 文字列の静的フィールド(クラスフィールドともいう)を定義するときに、定数( final)で
なく静的変数(final を使用してアプリケーションの速度を上げることができます。 int などの原始的な
データ型では、その逆になります。
例えば、 文字列 オブジェクトは次のように作成できます。
private static final String x ="example";
この静的定数( final キーワードで示される)については、定数を使用するたびに、一時的な 文字列
インスタンスが作成されます。 コンパイラでは "x" を削除し、バイトコード内の "example" とい
う文字列で置き換えるため、BlackBerry® Java® Virtual Machine では "x" を参照するたびにハッシュ
テーブルの参照が行われます。
対照的に、静的変数( final キーワードでない)の場合は、 文字列 が 1 度だけ作成されます。
BlackBerry JVM では、 "x" の初期化時のみハッシュテーブルの参照を行うため、アクセスが速くなり
ます。
private static String x = "example";
公開変数(すなわち final フィールド)の使用は可能ですが、変数は非公開としてマークする必要があ
ります。
String(文字列)コンストラクタの回避
BlackBerry® Java Application では、引用符で囲まれたそれぞれの文字列は java.lang.String クラス
のインスタンスです。 文字列 を作成する際は、 java.lang.String(文字列) コンストラクタを使用し
ないでください。
コードサンプル
String str = "abc"; String str = "found " + n + " items";
16
基本ガイド
効率的な BlackBerry Java Application の作成に関する対策
効率的なループの記述
コンテナに複数の要素が含まれていると思われる場合は、ローカル変数にサイズを割り当てます。
項目を反復する順序が重要でなければ、逆方向に反復することによって、スタック上に余計なローカル変
数が配置されないようにし、比較をよりすばやく行うことができます。
コードサンプル
int size = vector.size(); for( int i = 0; i < size; ++i ) { ... } for( int
i = vector.size() - 1; i >= 0; --i ) { ... }
部分式の最適化
同じ式を 2 度使用する場合は、ローカル変数を使用します。
コードサンプル
int tmp = i+1; one( tmp ); two( tmp );
除算命令の最適化
BlackBerry® デバイスでは、プロセッサにハードウェア除算命令が組み込まれていないため、除算処理が
遅くなる場合があります。
コードで正の数を 2 で割る場合は、右に 1 シフトします(>> 1)。 右シフト(>>)は、正の値を処理す
ることがわかっている場合のみ使用します。
コードサンプル
int = width >> 1;
java.util.Enumeration の回避
データを隠蔽する(すなわち、データそのものでなくデータの列挙を返す)ことを希望しない場合は、
java.util.Enumeration オブジェクトを使用しないでください。 列挙 オブジェクトのベクトルやハッシ
ュテーブルへの問い合わせが遅くなり、不要なガベージが作成されます。 別のスレッドでベクトルを変
更する可能性がある場合は、反復を同期します。 Java® SE では類似した操作に イテレータ オブジェク
トを使用しますが、 イテレータ オブジェクトは Java® ME では使用できません。
コードサンプル
for( int i = v.size() - 1; i >=0; --i ) { o = v.elementAt( i ); ... }
synchronized( v ) { for( int i = v.size() - 1; i >=0; --i ) { o = v.elementAt
( i ); ... } }
17
基本ガイド
効率的な BlackBerry Java Application の作成に関する対策
instanceof を使用した CAST の実行
CAST が成功したかどうかを検証するには、 instanceof を使用します。
コードサンプル
if( x instanceof String ) { (String)x.whatever(); } else { ... } x
instanceof を使用した条件の評価
生成するコードが小さく高速になるように、 instanceof を使用して条件を評価する場合は、変数が NULL
であるかどうかを明示的に評価しないでください。
コードサンプル
if( e instanceof ExampleClass ) { ... } if( ! ( e instanceof ExampleClass ) )
{ ... }
StringBuffer.append(StringBuffer)の回避
文字列 バッファを別の文字列バッファに追加するには、BlackBerry® Java Application で
net.rim.device.api.util.StringUtilities.append
( StringBuffer dst, StringBuffer src[, int offset, int length ] )を使用する必要があります。
コードサンプル
public synchronized StringBuffer append(Object obj) { if (obj instanceof
StringBuffer) { StringBuffer sb = (StringBuffer)obj;
net.rim.device.api.util.StringUtilities.append( this, sb, 0, sb ) return
this; } return append(String.valueOf(obj)); }
Null を返さないようにする
オブジェクトを返す公開メソッドを記述する場合、そのメソッドでは次の条件でのみ Null が返されるよ
うにする必要があります。
• アプリケーションが通常のアプリケーション操作の間に Null 値が発生することを予期している。
• メソッドの Javadoc™ @return パラメータで、Null が可能な戻り値であると述べられている。
アプリケーションが Null の戻り値を予測していない場合は、メソッド呼び出し元が明示的に問題に対処
することを強制する適切な例外がメソッドから発生する必要があります。 メソッド呼び出し元によって
Null 例外が発生しない限り、メソッド呼び出し元が Null の戻り値を確認する必要がない場合がありま
す。
18
基本ガイド
効率的な BlackBerry Java Application の作成に関する対策
メソッドに Null を渡さないようにする
メソッドが Null パラメータをサポートしていることが API Reference で明示的に述べられていない限
り、API メソッドには Null パラメータを渡さないでください。
コンストラクタに Null を渡す際の警告の使用
コンストラクタに Null を渡す際に曖昧さの問題を回避するためには、適切なオブジェクトに Null を
CAST します。
クラスに 2 つ以上のコンストラクタがある場合は、1 つの Null パラメータを渡すと、使用するコンス
トラクタを一意に識別できない場合があります。 その結果、コンパイラからエラーが報告されます。
適切なオブジェクトに Null を CAST することによって、コンパイラで使用するコンストラクタを正確に
指定します。 このようにすることで、API の後のリリースで新しいコンストラクタが追加された場合の
上位互換性を持たせることもできます。
コードサンプル
new someObject ((someObject)null );
一意の識別子としての long の使用
GUID やハッシュテーブルのキー、ステートまたはコンテキスト識別子などの一意の定数には、 long 識
別子を使用し、 文字列 識別子は使用しないでください。
BlackBerry® Java Application 全体で識別子を一意に保つためには、アプリケーションが 文字列と入力
します。 入力する 文字列に、識別子を一意にするために十分な情報を含めます。 例えば、
com.rim.samples.docs.helloworld などの完全修飾パッケージ名を使用します。
アプリケーションの正しい終了
System.exit(int status)を呼び出す前に、アプリケーションで不要になったランタイムストアからオブ
ジェクトを削除するなど、必要なクリーンアップを実行してください。
スタックトレースの印刷
アプリケーションのデバッグ時にスタックトレースを表示するには、 Throwable インスタンスをキャッ
チします。
コードサンプル
catch (Throwable t) { t.printStackTrace(); }
19
基本ガイド
効率的な BlackBerry Java Application の作成に関する対策
対策:オブジェクトの適切な使用
BlackBerry® Java Application がメモリリソースを効果的に使用できるようにするため、次の質問につ
いて検討します。
• アプリケーションのサイズの点から、すべてのオブジェクトが必要ですか?
• アプリケーションでは、プリミティブ( long、 integer および boolean)を表す任意のオブジェク
トについて、オブジェクトとしてはなくプリミティブとして格納できますか?
• すべての持続オブジェクトが必要ですか?
• Vector および Hashtable のインスタンスは存在しますか? これらのインスタンスは必要ですか?
必要な場合、初期サイズが必要サイズよりも大きいために Vector または Hashtable で使用されな
いオブジェクトハンドルはいくつありますか?
• アプリケーションで作成して、その後破棄する オブジェクト はいくつありますか? つまり、アプ
リケーションで作成するスコープ固有の オブジェクト はいくつありますか?
対策:コンパイル後コードのサイズ削減
コンパイル後コードのサイズを削減するには、次のガイドラインを参考にしてください。
• 適切なアクセスを設定します。
• インターフェイスの作成を避けます。
• 静的な内部クラスを使用します。
• 不要なフィールドの初期化を避けます。
• 個々のクラスをインポートします。
適切なアクセス権の設定
コードライブラリを作成する際には、フィールドやメソッドに対して適切なアクセス変更子を使用するこ
とにより、コンパイルしたコードのサイズを大幅に削減することができます。 可能なときはいつでもフ
ィールドを非公開と宣言できます。 正しいコード作成技術に加え、この方法でもコンパイラで .cod フ
ァイルを最適化できます。 可能な場合、デフォルトの(パッケージ)アクセスを公開アクセス(すなわ
ち、 公開 および 保護 キーワードを省略)の代わりに使用します。
インターフェイスの作成の回避
API ライブラリを作成するときは、API が複数実装されることが予測されない限りはインターフェイスを
作成しないようにしてください。 インターフェイスを作成すると、コードが大きくなり、処理が遅くな
ります。
20
基本ガイド
多言語サポート
静的な内部クラスの使用
内部クラスを使用して、あるクラスを別のクラスの中に隠しているが、その内部クラスが外部クラスのオ
ブジェクトを参照していない場合は、内部クラスを静的なものとして宣言します。 この操作により、外
部クラスへの参照が作成されなくなります。
内部クラスを名前のスコーピングに使用する場合は、静的な内部クラスにします。
コードサンプル
class outer { static class inner { ... } }
不要なフィールドを初期化しないようにする
必要であれば、次のようにフィールドを自動的に初期化できるようにします。
• オブジェクトの参照を Null に初期化する
• int、 byte または long を 0 に初期化する
• boolean を False に初期化する
メソッド内のローカル変数は明示的に初期化する必要があります。
コードサンプル
class BetterExample { private int fieldsCount; private Field _fieldWithFocus;
private boolean _validLayout; private boolean _validLayout; }
個々のクラスのインポート
パッケージからわずかな数のクラスを使用する BlackBerry® Java Application では、個々のクラスのみ
をインポートしてください。
コードサンプル
import net.rim.blackberry.api.browser.Browser;
多言語サポート
BlackBerry® Integrated Development Environment には、文字列リソースを作成するためのリソースメ
カニズムが入っています。 Localization API は、 net.rim.device.api.i18n パッケージ内のクラスを
使用します。 MIDP アプリケーションでは言語対応をサポートしていません。
21
基本ガイド
BlackBerry IDE では、ロケールのリソースが ResourceBundle オブジェクトに格納されます。 A
ResourceBundleFamily オブジェクトには ResourceBundles のコレクションが含まれています。このコレ
クションは、BlackBerry® Java Application のリソースを集めたものです。 アプリケーションでは、
BlackBerry デバイスユーザーのロケールによって言語を切り替えることができます。このとき、新しい
リソースバンドルは必要ありません。
BlackBerry IDE を使用して、それぞれのリソースバンドルを、個別にコンパイルされた .cod ファイル
にコンパイルすることができます。 適切な .cod ファイルを BlackBerry デバイスにインストールし、
他の .cod ファイルはアプリケーション用にインストールすることが可能です。
リソースは継承に基づいて、階層形式で整理されます。 ロケールで文字列が定義されていない場合は、
次に近いロケールの文字列が使用されます。
マルチメディアサポート
対策:テキスト文字列のリソースファイルへの格納
テキストをソースコードで使用するのではなく、リソースファイルを使用して言語対応する(特定の言語
および地域に適応させる)ようにアプリケーションを設計してください。
次のガイドラインを参考にしてください。
• ロケールごとに単一のリソースファイルに、テキスト文字列を格納します。
• ソースコードでは、適切なリソースファイルを利用するように固有の識別子を使用します。
• BlackBerry デバイスユーザーのロケールに基づいて BlackBerry® デバイスユーザーに表示する適切
なリソースファイルを動的に取得するようにアプリケーションを設計します。
マルチメディアサポート
オーディオのサポート
BlackBerry デバイスでサポートされるオーディオ形式で動作する BlackBerry® Java Application を作
成できます。 BlackBerry デバイスでサポートされるオーディオ形式は、BlackBerry デバイスのモデル
番号によって異なります。
BlackBerry デバイスでのオーディオのサポートについて詳しくは、 www.blackberry.com/developers を
参照してください。
画像処理のサポート
カメラが内蔵された BlackBerry® デバイスで BlackBerry デバイスユーザーが写真を撮影すると、
BlackBerry デバイスでは、写真を BlackBerry デバイス上のファイルシステムに保管します。
BlackBerry® Java Application では、BlackBerry® Java® Development Environment バージョン 4.2 以
22
基本ガイド
マルチメディアサポート
降で利用できる Java ME の File Connection API を使用して写真にアクセスできます。 BlackBerry
Java Application は、カメラアプリケーションを呼び出して、画像がファイルシステムに追加されるイ
ベントをリスンできます。
ビデオのサポート
画像を表示したり、グラフィックス API クラスを使用してマルチメディアコンテンツを操作し、メディ
アプレーヤーを内蔵する BlackBerry デバイスでビデオファイルを再生したりする BlackBerry® Java
Application を作成できます。
23
基本ガイド
UI とナビゲーション設計
UI とナビゲーション設計
3
BlackBerry デバイスユーザーの入力とナビゲーション
BlackBerry® デバイスには、入力とナビゲーションのためのキーボード、トラックホイールかトラックボ
ール、およびエスケープキーが付いています。 エスケープキーを使用すれば、BlackBerry デバイスユー
ザーは簡単に前の画面へ戻ったり、画面からメニューやダイアログボックスを消したりすることができま
す。
BlackBerry デバイス用の BlackBerry® Java Application では、次の説明にできる限り近い入力および
ナビゲーションモデルを使用する必要があります。
• トラックホイールまたはトラックボールをクリックすると、一般的にメニューが呼び出されます。
• エスケープキーを押すと、表示が前の画面に変わるか、メイン画面からアプリケーションが閉じま
す。
デフォルトでは、この機能はカスタマイズされない状態で BlackBerry 画面のオブジェクトに入っていま
すが、メニュー項目や追加の UI 、およびナビゲーションロジックを追加する必要があります。
トラックホイールとトラックボール
トラックボールの感度
トラックボールの感度は、システムがナビゲーションイベントとして移動を識別し、ナビゲーションイベ
ントをソフトウェアレイヤーへ送り出すために必要となるトラックボールの動きの量を指します。
BlackBerry® デバイスハードウェアでは、ティックという単位を使用してトラックボールの物理的な動き
を測定します。 軸上のティック数がシステムまたは BlackBerry® Java Application のしきい値を超える
と、その軸に沿ったナビゲーションイベントがソフトウェアレイヤーに送られ、システムでティック数が
ゼロにリセットされます。 一定のアイドル時間が経過した後も、ティック数はゼロにリセットされます。
TrackBall API を使用して、トラックボールの感度を設定できます。 トラックボールの感度が高いとい
うことはティックのしきい値が小さくなるということで、トラックボールの小さな動きでもナビゲーショ
ンイベントが発生することを意味します。 逆に、トラックボールの感度が低いということはティックの
しきい値が大きくなると言うことで、ナビゲーションイベントを発生させるにはトラックボールを大きく
動かす必要があることを意味します。
24
基本ガイド
標準の BlackBerry UI と一貫性のある UI の作成
トラックボールの動き
Trackball API を使用して、BlackBerry® デバイスのハードウェアからソフトウェアレイヤーに送信され
るトラックボールの動きのデータをフィルタにかけることができます。 Trackball API では、動きの
"ノイズ" や不要な動きをフィルタで除去できます。
Trackball API を使用して、トラックボールの動きの速さなどの設定を変更することもできます。 トラ
ックボールの動きの速さの設定を大きくすると、その結果として、ユーザーがトラックボールを回し続け
ている間、BlackBerry デバイスのハードウェアで検出される速度よりも速くトラックボールが動いてい
ると ソフトウェアレイヤーが識別する場合があります。 ユーザーがトラックボールを止めずに回すと、
トラックボールの感度は一時的に上がります。
トラックホイール
BlackBerry® Pearl™ 8100 Series よりも前の BlackBerry® デバイスには、トラックボールが付いていま
せん。 その代わり、デバイスの右側にトラックホイールが付いています。 トラックホイールは、ユーザ
ーのナビゲーションを制御する主要な装置です。
ユーザーは、次のような操作を実行できます。
• トラックホイールを回してカーソルを縦に動かす
• Alt キーを押しながらトラックホイールを回して、カーソルを横に動かす
• トラックホイールをクリックして、オブジェクトを選択したりメニューを開いたりする
ガイドライン
• トラックホイールとトラックボール両方のナビゲーションモデルに慣れておき、いずれを使用しても
アプリケーションが動作することを検証してください。
標準の BlackBerry UI と一貫性のある UI の作成
標準の MIDP API および BlackBerry® UI API を使用して、BlackBerry® Java Application UI を作成で
きます。
BlackBerry UI API は、UI コンポーネントのライブラリで、コア BlackBerry デバイスアプリケーショ
ンと一貫性のあるデフォルトのレイアウトおよび動作を提供する目的で設計されています。
• 画面コンポーネントは、標準の画面レイアウト、デフォルトのメニュー、および BlackBerry デバイ
スユーザーがエスケープキーを押したときやトラックホイールまたはトラックボールをクリックした
ときの標準の動作を提供します。
• フィールドコンポーネントは、日付の選択、オプション、チェックボックス、リスト、テキストフィ
ールドとラベル、およびプログレスバーの各コントロールに対する標準の UI 要素を提供します。
25
基本ガイド
標準の BlackBerry UI と一貫性のある UI の作成
• レイアウトマネージャを使用すると、アプリケーションで BlackBerry デバイス画面上のコンポーネ
ントを一般的な方法(水平、垂直、左から右のフローなど)で並べ替えできるようになります。
BlackBerry UI API を使用すると、テーブル、グリッド、その他の特化機能を含む UI を作成できま
す。 BlackBerry Java Development Environment では、標準の Java イベントモデルを使用して、特定
の種類のイベントを取得および応答します。 アプリケーションは、BlackBerry デバイスユーザーイベン
ト(BlackBerry デバイスユーザーがトラックホイールをクリック、トラックボールをクリック、キーボ
ードで入力など)やシステムイベント(グローバルアラート、リアルタイムのクロック変更、USB ポート
の接続など)を受信および応答できます。
26
基本ガイド
メモリの管理
メモリの管理
4
メモリの管理
BlackBerry® Java® Virtual Machine では、BlackBerry デバイス上のメモリ使用量を管理します。
BlackBerry JVM は、メモリを割り当て、ガベージコレクションを実行し、SRAM とフラッシュメモリとの
間でデータのスワップを自動で実行します。 BlackBerry JVM では、BlackBerry デバイスアプリケーシ
ョンと BlackBerry® Java Application との間で利用可能なメモリを共有する必要もあります。 メモリ
の空き容量は、利用可能なメモリの合計量を表します。すべてのアプリケーションと関連するアプリケー
ションデータが BlackBerry デバイス上にある場合は、利用可能な作業メモリよりも大きくなります。
BlackBerry デバイスのメモリ
BlackBerry® デバイスには次の種類のメモリが入っています。
メモリ 説明
フラッシュ BlackBerry オペレーティングシステムおよびすべてのアプリケーシ
ョンモジュールは、フラッシュメモリに永続的に保存されます。
BlackBerry デバイスユーザーが BlackBerry デバイスの電源をオン
にすると、基幹となるオペレーティングシステムと BlackBerry®
Java Application モジュールでは約 10MB ~ 15MB のフラッシュメ
モリを使用します。使用する容量はバージョンによって異なりま
す。 フラッシュメモリには、BlackBerry デバイスユーザーの電子
メールメッセージ、オーガナイザのデータおよびその他の個人情報
のほか、BlackBerry Java Application がメモリに保存するデータ
を保存できます。
SRAM SRAM は一時的なデータオブジェクトおよびランタイムプロセスを制
御します。
microSD 拡張可能メモリカード microSD カードは、メディアファイル、文書、および BlackBerry
Java Application の永続的なデータを保存します。
予約される主なリソース
• フラッシュメモリ:BlackBerry® デバイスで利用できる持続ストレージスペースは、固定量のフラッ
シュメモリです。通常は 8 ~ 64MB あります。
27
基本ガイド
• 持続オブジェクトハンドル:各持続オブジェクトに割り当てられるハンドルは、持続オブジェクトに
よってのみ消費されます。 BlackBerry デバイス上のフラッシュメモリ量により、システム内の持続
オブジェクトハンドルの固定数が決まります。
• オブジェクトハンドル:プリミティブの各オブジェクトおよび配列には、オブジェクトハンドルが関
連付けられています。 BlackBerry デバイス上のフラッシュメモリ量により、システム内のオブジェ
クトハンドルの固定数が決まります。
利用できるメモリ量が低下した状況の管理
対策:メモリ使用の最小化
ランタイムのメモリを最小化するには、次のガイドラインを参考にしてください。
• プリミティブタイプ( int または boolean など)を使用し、オブジェクト( String または Integer
など)は使用しません。
• 全面的にガベージコレクタに依存することは避けます。
• 多くのオブジェクトを短期間に作成することは避けます。
• オブジェクト参照の使用を終えたら、NULL に対するオブジェクト参照を設定します。
• できるだけオブジェクトを再利用します。
• 負荷の高い処理をサーバーに移動します。 例えばデータを BlackBerry® デバイスに送信するまえ
に、データのフィルタまたは並べ替えを行います。
利用できるメモリ量が低下した状況の管理
ローメモリマネージャは、利用可能なメモリリソースが特定のしきい値を下回ると、BlackBerry® デバイ
ス上のメモリリソースを処理します。 ローメモリマネージャは、BlackBerry デバイス上で利用可能なメ
モリを増やすため、使用済みのメモリを解放しようとします。 BlackBerry® Java Application を含むす
べてのアプリケーションは、BlackBerry デバイスのメモリリソースが低下したときに、ローメモリマネ
ージャと連携してメモリをできるだけ多く解放する必要があります。
BlackBerry デバイスで利用できるメモリ量が低下した状況の識別
次の状況が発生すると、ローメモリマネージャがメモリリソースを解放しようとします。
• BlackBerry® デバイスのフラッシュメモリの空き容量がしきい値を下回った場合。 フラッシュメモ
リのしきい値は、システムの RAM の空き容量によって変化します。 フラッシュメモリのしきい値
は、400 ~ 800KB の範囲です。
• BlackBerry デバイスで利用できる持続オブジェクトハンドルの数が 1000 を下回った場合。
• BlackBerry デバイスで利用できるオブジェクトハンドルの数が 1000 を下回った場合。
28
基本ガイド
リソースの節約
リソースの節約
対策:効率的なデータ構造選択の使用
データ構造を選択することで、BlackBerry® Java Application で消費されるオブジェクトハンドルの数
とフラッシュメモリの量が決まります。 データ構造を不適切に選択すると、BlackBerry Java Application
の機能や BlackBerry デバイスユーザーの操作環境が向上せず、重要なリソースが消費されてしまう可能
性があります。
次のガイドラインを参考にしてください。
• データ構造は、 Vector や Hashtable などの高レベルオブジェクトを使用するときには特に、最小
限のオブジェクト数で構成してください。 これらのクラスは重要な機能を提供しますが、十分なス
トレージメカニズムではないため、持続ストアで使用することはできるだけ避けてください。
• 可能であれば、オブジェクトではなくプリミティブを使用してください。プリミティブの場合は、
BlackBerry デバイスで消費されるオブジェクトハンドルの数が減少します。 プリミティブの配列
は、オブジェクトであり、オブジェクトハンドルを消費します。
• 文字列 オブジェクトの効率性は、バイト配列と同程度です。 文字列 オブジェクトは、オブジェク
トハンドル 1 つだけを消費し、アプリケーションがすべての文字をバイトとして格納する場合と同
等です。 つまり各文字の値は、10 進数値で 255 以下です。 アプリケーションが文字をバイトとし
て格納できない場合は、文字を 文字列 として格納できます。これは、 char 配列を格納することと
同等です。
対策:オブジェクトグループへオブジェクトの統合
アプリケーション開発者に頻繁に発生する問題の 1 つは、持続オブジェクトハンドルの枯渇です。
BlackBerry® デバイス上のフラッシュメモリ量により、システムで利用できる持続オブジェクトハンドル
の固定数が決まります。 選択したデータ構造によっては、格納されるレコードによって持続オブジェク
トハンドルを短期間で使い果たしてしまうことがあります。 持続オブジェクト 1 つは、持続オブジェク
トハンドル 1 つとオブジェクトハンドル 1 つを消費します。 一時オブジェクト 1 つは、オブジェクト
ハンドル 1 つだけを消費します。
例えば、10 個の 文字列 フィールド(名前、電話番号、アドレスなどの項目を表す)を含むレコード 1
つは、レコードオブジェクトに 1 つと各 文字列に 1 つで合計 11 個の持続オブジェクトハンドルを消
費します。 BlackBerry® Java Application で 3000 レコードを保持する場合、アプリケーションで
33,000 の持続オブジェクトハンドルを消費します。これは、16MB のフラッシュメモリを搭載した
BlackBerry デバイスで利用できる持続オブジェクトハンドルの数を超えています。
29
基本ガイド
オブジェクトのオブジェクトハンドルを 1 つのグループに統合するために、
net.rim.device.api.system.ObjectGroup クラスを使用できます。 前のパラグラフの例では、レコード
をグループ化した場合、レコードの消費する持続オブジェクトハンドルは 11 ではなく 1 になります。
文字列 フィールドのオブジェクトハンドルは、レコードオブジェクトハンドルの下で統合されます。
オブジェクトハンドルを 1 つのグループに統合すると、そのオブジェクトハンドルは読み取り専用にな
ります。 変更する場合は、その前にオブジェクトをグループ化解除する必要があります。 変更が完了し
たら、もう一度オブジェクトをグループ化します。 先にグループ化解除せずにグループ化したオブジェ
クトに変更を加えると、 ObjectGroupReadOnlyException がスローされます。
オブジェクトをグループ化解除すると、パフォーマンスに影響があります。 グループ化されたオブジェ
クトのコピーが作成され、そのグループ内の各オブジェクトにハンドルが割り当てられます。 そのた
め、オブジェクトは必要なときにだけグループ化解除するようにしてください。
BlackBerry デバイスにおけるガベージコレクション
BlackBerry デバイスにおけるガベージコレクション
BlackBerry デバイスでの RAM ガベージコレクション
BlackBerry® Java® Virtual Machine では、RAM の空き容量が足りないために BlackBerry JVM がオブジ
ェクトを割り当てられない場合のみ、RAM ガベージコレクションを初期化します。 RAM ガベージコレク
ションの操作の実行には、通常 500 ~ 300 ミリ秒かかります。 ガベージコレクションの操作を実行する
と、新しく割り当てられた変数のうち、RAM 内で参照されなくなったものがすべて削除されます。 オブ
ジェクトの削除条件として十分な期間だけ RAM 内で参照されなくなったオブジェクトのみを確実に削除
するよう、RAM ガベージコレクションの操作は、オブジェクトがフラッシュメモリにページアウトされな
くなった場合のみ実行できます。
BlackBerry デバイスにおけるフルガベージコレクション
フルガベージコレクション操作は、平均 1 秒で実行され、完了まで 2 秒もかかりません。 フルガベー
ジコレクション操作では、次の処理が実行されます。
• RAM のガベージコレクション操作を実行します。
• フラッシュメモリ内で参照されなくなった、または保持されなくなったオブジェクトにマークを付け
ます。
• RAM およびフラッシュメモリ内にある非持続オブジェクトハンドルを解放します。
次のような状況で、フルガベージコレクションが開始されます。
• RAM の空き容量が不足しているために、BlackBerry® Java® Virtual Machine がオブジェクトを割り
当てできない場合。
• プロセスが現在割り当てられているヒープサイズを超過しそうな場合。
30
基本ガイド
BlackBerry デバイスにおけるガベージコレクション
• オブジェクトハンドルを利用できないために、BlackBerry JVM が新しいオブジェクトを割り当てで
きない場合。
• BlackBerry デバイスがアイドル状態の場合。
BlackBerry デバイスにおけるアイドル時のガベージコレクション
ガベージコレクションは、BlackBerry® デバイスがアイドル状態になると必ず発生するわけではありませ
ん。 システムパフォーマンスを最適化し、バッテリーパフォーマンスを最大化するためにガベージコレ
クション操作が有効であるとみなされた場合にのみ発生します。
BlackBerry デバイスのユーザー操作環境に影響を与えずにパフォーマンスを高めるために、BlackBerry
デバイスがアイドル状態のときに次のガベージコレクション操作が実行されます。
• フルガベージコレクション操作は、BlackBerry デバイスのアイドル状態が比較的短い時間であると
きに発生することがあります。
• 完全ガベージコレクション操作は、BlackBerry デバイスのアイドル状態が長い時間であるときに発
生することがあります。
31
基本ガイド
データの管理
データの管理
BlackBerry® デバイスには、データを BlackBerry デバイス上の持続メモリに格納するための API が用
意されています。 BlackBerry Persistent Store API および MIDP RMS API (JSR 37 および JSR 118
のサポート)をすべての Java® ベースの BlackBerry デバイスで使用できます。 BlackBerry® Device
Software バージョン 4.2 以降を実行する BlackBerry デバイスでは、従来のファイルシステムを提供
し、JSR 75 API を使用してコンテンツを直接ファイルシステムに保存する機能をサポートします。
BlackBerry Persistent Store API と MIDP RMS API のどちらを使用しても、データをフラッシュメモリ
に持続的に格納できます。 データは、バッテリーを BlackBerry デバイスから外した場合でも保持され
ます。
5
永続的なメモリにデータを保存するための API のサポート
Persistent Store API
BlackBerry® の Persistent Store API は、フレキシブルかつ堅牢なストレージインターフェイスを実現
するために設計されています。 BlackBerry Persistent Store API を使用すれば、Java® オブジェクト
全体を、最初にデータをシリアル化することなくメモリに保存することができます。 アプリケーション
の起動時に、メモリから Java オブジェクトを取得して、情報を処理できます。 パーシステントストア
にはサイズの制限はありません。ただし、ストア内の個々のオブジェクトのサイズは 64KB に制限されて
います。
BlackBerry Persistent Store API には、リレーショナルデータベースモデルは入っていません。 効果
的なオブジェクトモデルを作成し、必要に応じてインデックスやハッシュテーブルを使用してオブジェク
トの関係を管理する必要があります。
MIDP Record Management System API
RMS API は、データストアオブジェクトを作成して一連のレコードをそのオブジェクト内に保持する、簡
単なレコード管理システムを提供します。 それぞれのレコードはバイト配列であるため、ローカルに格
納する前にデータをバイト配列形式に直列化しておく必要があります。 RMS API では、本来備わってい
るべきインデックス作成やレコード間の関係性を提供しません。 RMS データストア 1 つのサイズ制限
は、最大 64KB です。 アプリケーションでは、大量のデータを保持するために複数の RMS データストア
を作成できます。 RMS API は、標準の MIDP 仕様の一部であるため、MIDP をサポートするすべてのデバ
イスで RMS API もサポートします。
32
基本ガイド
リムーバブルメディアへの保存
File Connection API
File Connection API では、従来のファイルシステムを提供し、BlackBerry® デバイス上のファイルシス
テム、または microSD カードにデータを直接保存できます。 Windows® を使用してファイルシステム内
のデータを表示したり、データをコンピュータに移動したりできます。
リムーバブルメディアへの保存
microSD メディアカード上のデータへのアクセス
javax.microedition.io.file パッケージは JSR 75 File Connection API をサポートし、microSD メデ
ィアカードのファイルシステムにアクセスするアプリケーション内で使用されます。 また、
FileConnection インターフェイスを導入して、BlackBerry® デバイスの着信音とカメラの画像にアクセ
スすることもできます。
クラスまたはインターフェイス 説明
ConnectionClosedException 閉じたファイル接続上でアプリケーションがメソッドを呼び出す
と、この例外が表示されます。
FileConnection アプリケーションは、この API を使用してファイルやディレクトリ
にアクセスできます。
FileSystemListener アプリケーションはこの API を使用して、アプリケーションがファ
イルシステムのルートを追加または削除したときのステータス通知
を受信できます。
FileSystemRegistry アプリケーションは、ファイルシステムの追加や削除をリスンする
ファイルシステムリスナの中央レジストリとして、この API を使用
できます。
IllegalModeException メソッドが特定のセキュリティモード(READ や WRITE など)を要
求したが、開かれている接続がそのモードになっていない場合に、
この例外が表示されます。
33
基本ガイド
データのバックアップおよび同期
データのバックアップおよび同期
BlackBerry® Desktop Manager は、BlackBerry デバイスのデータをコンピュータ上のファイルに保存し
たり BlackBerry デバイスにデータを復元したりするために BlackBerry デバイスユーザーが使用でき
る、バックアップと復元のツールを備えています。
アプリケーションで Synchronization API が使用される場合は、BlackBerry Desktop Manager でアプリ
ケーションデータベースをその他の BlackBerry デバイスデータベースと同時にバックアップおよび復元
できます。 Synchronization API を使用すると、データアーカイブを作成したり、BlackBerry デバイス
が BlackBerry デバイスユーザーのコンピュータに初めて接続したときにアプリケーションデータベース
を設定したりすることができます。
データをリモートデータソースに同期するには、BlackBerry Java® Application に同期ロジックを組み
込む必要があります。 ほとんどのアプリケーションでは、ワイヤレスネットワークおよびインターネッ
トまたは企業イントラネット経由で標準の HTTP または TCP/IP プロトコルを使用して、サーバー側アプ
リケーションにデータを送信します。 XML API を使用すると、XML 形式のデータを生成および解析し、
ワイヤレスネットワーク経由で送受信することができます。 ただし、クライアント側およびサーバー側
のアプリケーションでは、データの適切な読み書きと、転送の成功の承認を行う必要があります。
BlackBerry Java Application では、BlackBerry Desktop Synchronization API および BlackBerry
Desktop Manager を使用し、コンピュータベースのアプリケーションに接続して USB 接続経由でデータ
を送信できます。 この場合、BlackBerry Desktop Manager のアドインタスクを経由してデータをクライ
アントから読み込める Windows® 用アプリケーションを構築する必要があります。 BlackBerry デバイス
ユーザーは、BlackBerry Desktop Manager アドインを実行して同期を手動で実行する必要があります。
このアドインは、BlackBerry デバイス上のアプリケーションに対してコンピュータアプリケーションに
データを送信するよう通知します。 ネイティブの USB プロトコルを使用してコンピュータアプリケーシ
ョンにデータを書き込むこともできます。
34
基本ガイド
ワイヤレスデータ転送
ワイヤレスデータ転送
6
デフォルトと優先のワイヤレスゲートウェイ
BlackBerry® Java® Application では、HTTP、HTTPS および TCP ソケットプロトコルを使用してワイヤ
レスネットワーク上で接続を確立できます。 ワイヤレスネットワーク上で接続を開いたり、BlackBerry
デバイスユーザーが使用できるデフォルトのゲートウェイを使用してインターネットや組織のイントラネ
ットへの接続をプロキシ制御したりするようにアプリケーションを設計できます。または、優先のゲート
ウェイを選択するようにコードをカスタマイズすることもできます。 接続で優先されるゲートウェイを
明示的に選択し、優先される方法が使用不可の場合はデフォルトのゲートウェイを使用するように、アプ
リケーションを設計できます。 これによってネットワーク接続に関する問題が減り、アプリケーション
がすべてのネットワークタイプやワイヤレスサービスプロバイダを通じて一貫した接続を使用できるよう
になります。
ネットワークゲートウェイとしての BlackBerry Enterprise Server の使
用
ネットワークゲートウェイとして BlackBerry® Enterprise Server を使用すると、アプリケーションと
BlackBerry Enterprise Server の間のすべてのトラフィックが、AES または 3DES 暗号化を使用して暗
号化されます。 BlackBerry Enterprise Server は組織のファイアウォールの内側にあり、固有のデータ
暗号化を行うため、組織のイントラネット上に存在するアプリケーションサーバーや Web サーバーと、
アプリケーションとの通信が可能です。 BlackBerry Enterprise Server の BlackBerry® Mobile Data
System コンポーネントには BlackBerry MDS Services が含まれています。BlackBerry MDS Service に
は HTTP および TCP/IP プロキシサービス機能があるため、BlackBerry® Java® Application がこれをセ
キュリティ保護されたゲートウェイとして使用し、イントラネットへの HTTP および TCP/IP 接続を管理
することができます。
アプリケーションがインターネットに接続していれば、BlackBerry Enterprise Server をゲートウェイ
として使用できる場合があります。 ネットワーク要求は組織のファイアウォールの内側から BlackBerry
Enterprise Server へ伝わり、そこから企業のファイアウォールを通じてインターネットへ送られま
す。 管理者は、BlackBerry Enterprise Server がすべてのワイヤレスネットワークトラフィック(イン
ターネットを行き先とするトラフィックを含む)のゲートウェイとなるように、IT ポリシーを設定でき
ます。
アプリケーションがインターネットに接続していれば、BlackBerry® Internet Service またはワイヤレ
スサーバープロバイダのインターネットゲートウェイを使用して、接続を管理できます。
35
基本ガイド
代替のデータ転送オプション
ワイヤレスサービスプロバイダのインターネットゲートウェイの使用
ほとんどのワイヤレスサービスプロバイダは、インターネットに直接 TCP/IP 接続が可能なインターネッ
トゲートウェイを持っています。 また一部のワイヤレスサービスプロバイダでは、WAP プロトコル上で
HTTP 接続を実行できる WAP ゲートウェイも持っています。 BlackBerry® Java® Application では、い
ずれのゲートウェイを使用してもインターネットに接続できます。 アプリケーションが特定のワイヤレ
スネットワーク上の BlackBerry デバイスユーザーを対象としている場合は、ワイヤレスサービスプロバ
イダのインターネットゲートウェイを使用することで、多くの場合良い結果が得られます。 アプリケー
ションがさまざまなワイヤレスネットワーク上の BlackBerry デバイスユーザーを対象としている場合、
さまざまなインターネットゲートウェイに対してアプリケーションをテストし、信頼できる安定した使用
感を実現するのが困難な場合があります。 BlackBerry Internet Service が使用できない場合は、
BlackBerry® Internet Service を使用し、プロバイダのインターネットゲートウェイをデフォルトの接
続タイプとして使用すると、有効な場合があります。
代替のデータ転送オプション
電子メールを使用したデータの転送
BlackBerry® API を使用して、データの送受信のための転送メカニズムとして電子メールを使用する
BlackBerry® Java® Application を作成することができます。 電子メールは、従来のプッシュモデルが
使用できない場合に、BlackBerry デバイスユーザーにコンテンツを事前に配布する方法として有効で
す。 BlackBerry Java Application では、BlackBerry API を使用してメッセージを送信し、着信する電
子メールメッセージをリスンすることができます。 また BlackBerry Java Application では、BlackBerry
デバイスにローカルで保存されている電子メールメッセージの詳細やヘッダーにアクセスして、電子メー
ルメッセージのステータスの変更のリスナを登録することもできます。
SMS を使用したデータの転送
BlackBerry® API を使用して、データの送受信のための転送メカニズムとして SMS を使用する BlackBerry®
Java® アプリケーションを作成することができます。 BlackBerry API により、アプリケーションが SMS
メッセージを送信したり、着信する SMS メッセージをリスンしたりすることが可能になります。
36
基本ガイド
代替のデータ転送オプション
PIN メッセージを使用したデータの転送
PIN メッセージは音声チャンネルでなくデータチャンネルを使用するため、転送先の BlackBerry® デバ
イスを固有の PIN 番号で指定することができます。 PIN メッセージは、ある BlackBerry デバイスから
別のデバイスへのデータの送信のみに使用できます。 BlackBerry API では、アプリケーションで
BlackBerry PIN メッセージをプログラム的に送受信することも可能です。 PIN メッセージは、BlackBerry
デバイスユーザーのみを対象とする PIN アプリケーションを実装する際に効果的な方法です。
37
基本ガイド
BlackBerry アプリケーションの統合
BlackBerry アプリケーションの統合
7
カスタムメニュー項目の追加
BlackBerry® Java® Application では、BlackBerry デバイスのメール、オーガナイザ、および電話の各
アプリケーションのメニューに対してカスタムメニュー項目を追加できます。 BlackBerry デバイスユー
ザーがカスタムメニュー項目を選択すると、BlackBerry デバイスユーザーが選択するオブジェクトに対
する参照を使用して BlackBerry Java Application が起動します。 例えば BlackBerry Java Application
で[送信者の場所を表示]というメニュー項目をメールアプリケーションに追加できます。 BlackBerry
デバイスユーザーがこのメニュー項目を選択すると、現在強調表示されている、またはユーザーが開いて
いるメールオブジェクトへの参照を使用して BlackBerry Java Application が起動します。 BlackBerry
Java Application は、連絡先リストからメールアドレスを取得するか、リモートサーバーからデータを
取得して、送信者のメールアドレスから送信者の場所を判断し、手前に移動して地図を表示します。
BlackBerry デバイスアプリケーションの呼び出し
BlackBerry® Java® Application では、BlackBerry デバイスアプリケーション(メール、オーガナイ
ザ、電話、ブラウザ、カメラなどのアプリケーション)を呼び出せます。 BlackBerry Java Application
で BlackBerry デバイスアプリケーションを呼び出すと、BlackBerry Java Application では、BlackBerry
デバイスアプリケーションに操作を実行させたり情報を表示させたりできます。 次の例では、BlackBerry
Java Application が BlackBerry デバイスアプリケーションを呼び出す方法を示します。
• BlackBerry Java Application はカレンダーを呼び出して、特定の日付またはカレンダーエントリを
表示します。
• BlackBerry Java Application はアドレス帳を呼び出して、特定の連絡先を表示します。
• BlackBerry Java Application はブラウザを呼び出して、特定の Web アドレスを開きます。
• BlackBerry Java Application は電話を呼び出して、特定の番号に電話します。
電子メールとオーガナイザのデータへのアクセス
BlackBerry® Java® Application で、BlackBerry API を使用して、BlackBerry デバイスに保存されてい
る電子メールメッセージや連絡先、カレンダーイベント、電話ログの詳細情報にアクセスできます。
BlackBerry Java Application で、情報の読み出しや更新、および新しいエントリの作成ができます。
38
基本ガイド
BlackBerry Messenger と BlackBerry Application との併用
BlackBerry Messenger と BlackBerry Application との併用
BlackBerry® Java® Application と、BlackBerry® Messenger アプリケーションを統合することができま
す。 これは、BlackBerry デバイス用にターンベースのゲームを作成する場合に便利であると考えられま
す。
BlackBerry Messenger アプリケーションと統合する BlackBerry Java Application を作成するには、
net.rim.blackberry.api.blackberrymessenger パッケージ内のクラスを使用します。
BlackBerryMessenger クラスの詳細については、『BlackBerry API リファレンス』を参照してください。
リスナを使用したアプリケーションの変更への応答
BlackBerry® Java® Application では、電子メールとオーガナイザのデータストアや電話アプリケーショ
ンに、変更のリスナを登録できます。 リスナによって、BlackBerry デバイスユーザーがローカルでイベ
ントを実行したときに、BlackBerry Java Application が即座に対応することができます。 電子メール
とオーガナイザのデータのリスナを使用して、新しいエントリが到着したときや、BlackBerry デバイス
ユーザーがデータを追加したり、既存のデータを削除または更新した場合に、BlackBerry Java
Application に通知することができます。 電話リスナを使用して、新しいコールの開始やコールの終了
などのコールアクションをリスンすることができます。
39
基本ガイド
セキュリティに関する考慮事項
セキュリティに関する考慮事項
8
データの暗号化と BlackBerry Application
転送時のデータ暗号化
アプリケーションのネットワークゲートウェイとして BlackBerry® Enterprise Server を使用する場
合、BlackBerry Enterprise Server は、BlackBerry デバイスと企業ファイアウォールの内側にある
BlackBerry Enterprise Server との間の接続におけるあらゆる点で、AES または 3DES 暗号化を使用し
てデータを暗号化します。 BlackBerry Enterprise Server と宛先サーバーとの間でデータをさらに暗号
化する必要がある場合は、HTTPS プロトコルおよび SSL/TLS 暗号化を使用できます。
アプリケーションで BlackBerry® Internet Service、または通信事業者のインターネットゲートウェイ
を使用する場合、データトラフィックは暗号化されません。 BlackBerry デバイスユーザーが希望する場
合は、HTTPS を使用してデータを暗号化したり、暗号化用の Java® API を使用して独自の対称キーまた
は公開鍵暗号を適用したりすることができます。
BlackBerry デバイス上のデータ暗号化
管理者は、BlackBerry デバイスアプリケーションに格納されるすべての BlackBerry® デバイスユーザー
データがフラッシュメモリ内でローカルに暗号化されるような IT ポリシーを設定できます。 データ登
録の API を使用する BlackBerry Java® Application を作成して、暗号化サービスがフラッシュメモリ
にデータを格納する前に、同じセキュリティキーを使用してデータを暗号化できるようにすることができ
ます。
メモリへのアクセス
BlackBerry® Java® Development Environment は、その他のアプリケーションまたはその BlackBerry デ
バイスにおいて、アプリケーションが誤って、または悪意を持って問題を発生させないように設計されて
います。 BlackBerry アプリケーションでは、BlackBerry® Java® Virtual Machine が使用する
BlackBerry デバイスのメモリのみに書き込みできます。仮想メモリや、その他のアプリケーションの持
続ストレージにアクセスすることはできません(そのようなアクセス権が特に付与されている場合を除
く)。 BlackBerry® Java Application は、持続ストレージやユーザーデータにアクセスしたり、その他
のアプリケーションと通信したりするには、特定の BlackBerry API を経由してのみ可能です。 Research
In Motion では、機密 API を使用するアプリケーションの証跡ログを提供するために、これらの
BlackBerry API を使用する BlackBerry Java Application にデジタル署名する必要があります。
40
基本ガイド
認証
認証
BlackBerry デバイスの認証と IT ポリシー
BlackBerry® デバイスユーザーは、自分の BlackBerry デバイスにパスワードを設定できます。 デバイ
スのパスワードがアクティブな場合、BlackBerry デバイスユーザーがデータやアプリケーションにアク
セスするにはパスワードを入力する必要があります。 BlackBerry デバイス上の BlackBerry Java®
Application へのアクセスを制限する最初のステップとして、デバイスのパスワードを使用することをお
勧めします。
管理者は BlackBerry® Enterprise Server に入っている IT ポリシーを使用して、組織内の BlackBerry
デバイスがパスワード保護されるようにすることができます。 また管理者は IT ポリシーを使用して、
BlackBerry デバイスをリモートでロックしたり、パスワードを変更したり、すべてのデータを削除した
りすることができます。
アプリケーションの認証
セキュリティ機能が重要なアプリケーションでは、BlackBerry® デバイスユーザーに対して、BlackBerry
デバイス上のアプリケーションの使用前にログインを要求するようなログイン画面を用意することができ
ます。 UI クラスでは、テキスト入力をアスタリスク文字で隠す簡単なパスワードフィールドを提供して
います。 ログイン画面は、BlackBerry デバイスユーザーのユーザー操作環境にマイナスの影響を与える
ことがあります。BlackBerry デバイスユーザーが BlackBerry デバイスを保護するパスワードを設定す
るのであれば、アプリケーションのログイン画面は不要になる可能性があります。
サーバー側の認証
アプリケーションがサーバー上のアプリケーションやインターネットまたはイントラネットに接続する場
合は、BlackBerry® デバイスユーザーがサーバーにアクセスする際の認証機能を追加することができま
す。 ユーザー認証を必要とするアプリケーションのほとんどは、単純なユーザー名とパスワードの組み
合わせを使用する HTTP Basic 認証に依存しています。 HTTP 接続を開きつつ正しい HTTP ヘッダーを追
加することで、HTTP Basic 認証を使用できます。 証明書を使用したより高度な認証を追加することもで
きますが、ほとんどのアプリケーションではそのような認証は必要ありません。
制御対象 API およびコード署名
Research In Motion では、セキュリティおよびエクスポートを制御するため、機密 API の使用を追跡し
ます。 RIM では BlackBerry® API リファレンスにおいて、鍵アイコンまたは署名付きメモで制御対象の
クラスまたはメソッドを識別します。 アプリケーションで制御対象のクラスまたはメソッドを使用する
41
基本ガイド
には、BlackBerry デバイスでアプリケーションの .cod ファイルをインストールする前に、RIM からの
鍵、つまり署名を使用してアプリケーションに署名する必要があります。 アプリケーションの起動時に
実行する機能など、その他の機能では、アプリケーションに署名する必要の可能性があります。
RIM 登録プロセスでは制御対象 API のほとんどの使用が対象ですが、公開鍵および秘密鍵の暗号に関連
する暗号化クラスでは、Certicom™ によるテクノロジが使用されている場合があります。 これらのクラ
スを使用するには、Certicom に登録して直接ライセンスを入手する必要があります。 RIM 登録プロセス
では、Certicom クラスの使用が含まれません。
コード署名を受け取る前にコードをテストおよびデバッグするには、BlackBerry® Smartphone
Simulator を使用できます。 アプリケーションの署名は、BlackBerry デバイスにインストールする前に
実行する必要があります。 実際のコードは RIM に送信しません。 BlackBerry® Signature Tool を使用
してコードファイルの SHA-1 ハッシュを送信し、署名認証システムで必要な署名を生成できるようにし
ます。
アクセスが制限された BlackBerry API
コード署名の登録および入手の詳細については、『
Password Based Administrator Guide
は、 www.blackberry.com/developers/index.shtml を参照してください。
を参照してください。 クラスの登録および使用の詳細について
BlackBerry Signing Authority ToolVersion 1.0 -
アクセスが制限された BlackBerry API
コード署名がなくても、制御対象 API を使用するアプリケーションを BlackBerry® Smartphone
Simulator で実行できます。ただし、そのようなアプリケーションを BlackBerry デバイスにインストー
ルする前に、Research In Motion からコード署名を入手する必要があります。
RIM の制御対象 API のうち、次のカテゴリを使用できます。
• Runtime API
• BlackBerry® Application API
• BlackBerry Cryptographic API
次のいずれかの BlackBerry API パッケージを使用する場合、アプリケーションを BlackBerry デバイス
にインストールする前にコード署名が必要です。
• net.rim.blackberry.api.browser
• net.rim.blackberry.api.invoke
• net.rim.blackberry.api.mail
• net.rim.blackberry.api.mail.event
• net.rim.blackberry.api.menuitem
• net.rim.blackberry.api.options
• net.rim.blackberry.api.pdap
• net.rim.blackberry.api.phone
• net.rim.blackberry.api.phone.phonelogs
42
基本ガイド
• net.rim.device.api.browser.field
• net.rim.device.api.browser.plugin
• net.rim.device.api.crypto.*
• net.rim.device.api.io.http
• net.rim.device.api.notification
• net.rim.device.api.servicebook
• net.rim.device.api.synchronization
• net.rim.device.api.system
RIM の制御対象 API については、『BlackBerry API リファレンス』を参照してください。
IT ポリシーのサポート
IT ポリシーのサポート
BlackBerry® の IT ポリシー API(net.rim.device.api.itpolicy)をアプリケーションで使用すること
で、BlackBerry デバイス上の IT ポリシー情報にアクセスできます。 BlackBerry Java® Application
では、カスタムの IT ポリシー設定を取得して、アプリケーションの動作や機能を変更できます。 管理
者は、アプリケーション制御を使用して、BlackBerry デバイスにおける BlackBerry Java Application
のインストール状態や動作を制限できます。
それぞれの IT ポリシーアイテムは、説明キーと値とで構成されます。 値は、文字列、整数、またはブ
ール値です。 例えば AllowPhone ポリシーには、値 True または False を指定できます。
BlackBerry デバイスの IT ポリシー設定は、ワイヤレスネットワークを経由して同期および更新されま
す。 BlackBerry® Device Software, の以前のバージョンでは、BlackBerry デバイスユーザーが
BlackBerry デバイスとコンピュータとを同期するときに、デバイスのポリシー設定が更新されます。
IT ポリシーの詳細については、『
してください。
BlackBerry Enterprise Server ポリシーリファレンスガイド
』を参照
アプリケーションの制御
BlackBerry® Application 制御 IT ポリシールールを使用すると、管理者は、アプリケーションが特定
の BlackBerry デバイスで実行される場合のアプリケーションの機能を設定できます。 例えば、BlackBerry
Application 制御 IT ポリシーを使用して、BlackBerry デバイス上のゲームアプリケーションが電話ア
プリケーションにアクセスできないようにすることが可能です。 BlackBerry Application 制御 IT ポリ
シーは、BlackBerry デバイスが BlackBerry® Enterprise Server に関連付けられている場合のみ適用さ
れます。 この IT ポリシーは、BlackBerry® Internet Service のみを使用する BlackBerry デバイスに
は適用されません。
43
基本ガイド
管理者やユーザーが保護された領域へのアプリケーションによるアクセスを拒否すると、関連メソッドに
よって ControlledAccessException がスローされます。 クラスレベルチェックでは、メソッドによっ
て NoClassDefFoundError がスローされます。 使用する API によっては、アプリケーションで両方のタ
イプのエラーを処理する必要があります。
microSD カード上のファイルの暗号化
microSD カード上のファイルの暗号化
microSD メディアカード上のデータの暗号化
BlackBerry® Java® Application が microSD メモリカード上のファイルにアクセスするときは、ファイ
ルの復号化が発生し、ファイルはアプリケーションが読み込むようにメインメモリに移動します。 パス
ワード保護されたファイルに BlackBerry Java Application がアクセスできるようにするため、
BlackBerry デバイスがロックされないようにする必要があります。 暗号化されたファイルは、拡張子
が .rem で、BlackBerry 以外のプラットフォームでは復号化できません。
NVRAM が削除され、microSD メディアカードが BlackBerry デバイス鍵でロックされると、microSD メデ
ィアカード上のデータにアクセスできなくなります。 アクセスできないデータを削除するには、BlackBerry
デバイスを起動し、暗号化されているすべてのメディアファイルを削除します。
BlackBerry デバイスでは、microSD メディアカードに格納されたマスターキーを使用して、BlackBerry
デバイスのメディアファイルを暗号化します。 マスターキーは、BlackBerry デバイスで、暗号化を無効
にしたときやパスワードを変更したときに、すべてのメディアファイルが復号化または再暗号化されない
ようにします。
複数の BlackBerry デバイスでの microSD メディアカードの使用
BlackBerry® デバイスユーザーが microSD メディアカードをデバイスパスワードを使用しない BlackBerry
デバイスに移動したり、移動先の BlackBerry デバイスで使用するパスワードが microSD メディアカー
ドのマスターキーを正しく復号できない場合、BlackBerry デバイスから BlackBerry デバイスユーザー
に対し、microSD メディアカードのパスワードの入力を要求するメッセージが表示されます。 BlackBerry
にパスワードが設定されている場合、BlackBerry デバイスユーザーはそのメッセージを使用して、microSD
メディアカードのパスワードを BlackBerry デバイスのパスワードに変更できます。
IT ポリシーと microSD メディアカード
microSD メディアカードに書き込まれる新規または変更されるファイルに対して、IT ポリシー[microSD
メディアカードに書き込まれるデータを暗号化]を適用できます。 管理者がこの IT ポリシーを設定し
た後で microSD メディアカードに格納するファイルだけが暗号化されます。 メディアファイルを除くす
べてのコンテンツが暗号化されます。
44
基本ガイド
BlackBerry Java Application のテスト
BlackBerry Java Application のテスト
9
BlackBerry Java Application の難読化
BlackBerry® Java® Development Environment および BlackBerry® JDE Plug-in for Eclipse™ のコンパ
イラは、アプリケーションのサイズを最小化するように設定されています。 コンパイラで作成され
る .cod ファイルは難読化のようなサービスを提供します。これは、.cod ファイルのサイズを縮小する
ために、難読化パッケージが提供するサービスに類似しています。 例えば、BlackBerry Java Development
Environment では、.cod ファイルから次の情報を削除します。
• すべてのデバッグ情報
• ローカル変数名
• ソースの行番号
• プライベートメソッドとメンバー名
通常、BlackBerry JDE でデフォルトで提供されている既存の難読化以外に、アプリケーションの難読化
を行う必要はありません。 実際、Research In Motion では製品に対して追加の難読化を行っていませ
ん。
BlackBerry JDE は、サードパーティ製のツールによる難読化をサポートしていません。 BlackBerry デ
バイスで使用する .cod ファイルを難読化するには、コマンドライン処理を含める必要があります。
BlackBerry Java Application の事前検証
クラスを事前検証する際は、アプリケーションのインストール時に BlackBerry® デバイスで実行する必
要のある処理の量を減らします。 BlackBerry デバイスにアプリケーションをインストールする前にクラ
スを部分的に検証するには、Preverify ツールを使用します。このツールは、BlackBerry® Java®
Development Environment に付属しています。 .cod ファイルの事前検証には、BlackBerry® Smartphone
Simulator を使用できます。
BlackBerry Smartphone Simulator の使い方に関する詳細については、『
ユーザーガイド
BlackBerry Java Development Environment Development Guide
』を参照してください。 Preverify ツールの使い方に関する詳細については、『
』を参照してください。
BlackBerry Device Simulator
45
基本ガイド
BlackBerry Smartphone Simulator 上でのアプリケーションのテスト
BlackBerry Smartphone Simulator 上でのアプリケーションの
テスト
アプリケーションの開発とコンパイル後に、BlackBerry® デバイス上でアプリケーションをテストするこ
とができます。 もっとも一般的な最初のステップは、BlackBerry® Smartphone Simulator を使用するよ
うに BlackBerry® Java® Development Environment を設定することです。 BlackBerry Smartphone
Simulator では BlackBerry デバイスと同じ Java コードを実行するため、BlackBerry Smartphone
Simulator は BlackBerry デバイス上でのアプリケーションの動作をテストするための厳密な環境となり
ます。 BlackBerry JDE には、最新バージョンの BlackBerry Smartphone Simulator が入っています。
それ以降のバージョンの BlackBerry Smartphone Simulator をダウンロードするには、
www.blackberry.com/developers/index.shtml を参照してください。
BlackBerry デバイス上でのアプリケーションのテスト
BlackBerry® Smartphone Simulator 上でアプリケーションをテストしてから、BlackBerry デバイス上に
アプリケーションをインストールできます。 アプリケーションが署名つき API を使用している場合は、
コード署名鍵が必要になることがあります。 BlackBerry デバイスにアプリケーションをインストールし
た後で、そのアプリケーションを開いて機能とパフォーマンスをテストすることができます。
デバッグの目的では、BlackBerry® Integrated Development Environment にデバイスを取り付け、デバ
ッグツールを使用してアプリケーションコードを 1 つずつ実行することができます。 ネットワークや
Bluetooth® の問題、シミュレートが困難なその他の問題を識別するには、BlackBerry IDE が便利です。
BlackBerry シミュレータ
BlackBerry Smartphone Simulator
BlackBerry® Smartphone Simulator は、BlackBerry デバイスを使用せずに BlackBerry の使用感をエミ
ュレートするために作られています。 BlackBerry Smartphone Simulator は、コンピュータにインスト
ールして、選択した BlackBerry デバイスモデルのイメージを表示するアプリケーションです。 このイ
メージは、実際の BlackBerry デバイスと同じ見た目と使用感です。 イメージの機能には、実際の
BlackBerry デバイスと同じユーザー操作(トラックホイールやトラックボール、キーボードなど)、同じ
アプリケーション、同じ機能(電子メールメッセージ、電話、インターネットブラウズなど)が含まれま
す。
BlackBerry Smartphone Simulator は、アプリケーションが動作可能なプラットフォームとしての機能も
あります。 この機能には、ネットワーク接続を行ったり、データを保存したり、電子メールメッセージ
を処理したりするアプリケーションの機能が含まれます。 BlackBerry Smartphone Simulator には、
46
基本ガイド
BlackBerry デバイス上で一般的に使用可能な BlackBerry デバイスアプリケーションが入っているた
め、これをインストールして自分のアプリケーションをテストすることができます。 BlackBerry
Smartphone Simulator を使用して、さまざまな接続や状態の変更をシミュレートおよびテストすること
ができます。
BlackBerry Smartphone Simulator を使用してテストを実行する際は、他の BlackBerry サービスをシミ
ュレートする必要がある場合があります。 この目的のためには、BlackBerry® MDS Simulator と
BlackBerry® Email Simulator が使用できます。
BlackBerry Smartphone Simulator を入手するには、 www.blackberry.com/developers にアクセスし、
BlackBerry® Java® Development Environment または BlackBerry Java Development Environment コン
ポーネントパッケージをダウンロードしてください。
BlackBerry シミュレータ
BlackBerry MDS Simulator
BlackBerry® MDS Simulator は、BlackBerry® Enterprise Server の BlackBerry MDS Connection
Service コンポーネントをシミュレートするために作られています。 BlackBerry Smartphone Simulator
と BlackBerry MDS Simulator を併用すると、ネットワークや HTTP、BlackBerry Enterprise Server と
の併用を目的として設計されたブラウザアプリケーションをテストすることができます。 BlackBerry MDS
Simulator を入手するには、 www.blackberry.com/developers にアクセスし、BlackBerry® Email and
MDS Services Simulator Package をダウンロードしてください。
BlackBerry Email Simulator
BlackBerry® Email Simulator は、BlackBerry® Smartphone Simulator と、Microsoft® Outlook® など
のメッセージアプリケーションや POP3 および SMTP サーバーとの間でメッセージを送受信するために作
られています。 BlackBerry® Enterprise Server は必要ありません。 BlackBerry Email Simulator を
入手するには、 www.blackberry.com/developers にアクセスし、BlackBerry® Email and MDS Services
Simulator Package をダウンロードしてください。
47
基本ガイド
アプリケーションの利用
アプリケーションの利用
10
コンピュータ接続を介したアプリケーションの配布
アプリケーションのコンピュータからの配布
BlackBerry® Desktop Manager で Application Loader ツールを使用して、BlackBerry デバイスにアプ
リケーションをインストールできます。 Application Loader ツールを使用すると、ユーザーは簡単にア
プリケーションをコンピュータから各自の BlackBerry デバイスにダウンロードできます。
アプリケーションの Web ページからの配布
BlackBerry® Application Web Loader を使用して、コンパイル済みアプリケーションを Web サイトに投
稿できます。 ユーザは、各自のコンピュータで Windows® Internet Explorer® を使用してその Web ペ
ージにアクセスし、BlackBerry デバイスにアプリケーションをインストールできます。 BlackBerry デ
バイスユーザーが Web ページにアクセスすると、BlackBerry Application Web Loader ではユーザーに
デバイスを USB ポートに接続するようにメッセージが表示されます。 これで、ActiveX® コントロール
を使用してアプリケーションをインストールできるようになります。 BlackBerry Application Web Loader
を使用すると、BlackBerry デバイスユーザーは、BlackBerry® Desktop Manager を実行しなくても簡単
にアプリケーションをコンピュータからインストールできます。
テストのためのアプリケーション配布
BlackBerry® Java® Development Environment には、JavaLoader ツールというコマンドラインツールが
付属しています。このツールは、BlackBerry JDE フォルダ内の BIN フォルダにあります。 JavaLoader
ツールを使用すると、USB ポート経由で直接 BlackBerry デバイス上でコンパイル済みアプリケーション
ファイルを簡単にインストールおよび削除できます。 記述子ファイルまたは Web ページは必要ありませ
ん。 テストや開発で頻繁にアプリケーションをインストールおよび削除するときに JavaLoader ツール
を使用すると便利です。ただし、JavaLoader ツールは、BlackBerry デバイスユーザーが使用する目的で
設計されていません。
ワイヤレスネットワーク上でのアプリケーション配布
ワイヤレスネットワーク上でアプリケーションを配布すると、コンピュータアプリケーションが不要にな
るため、BlackBerry® デバイスユーザー側の使用感を向上させたり、大人数のユーザーへのアプリケーシ
ョン配布を簡略化したりすることが可能になります。 BlackBerry デバイスユーザーは、ワイヤレスネッ
トワーク上でアプリケーションをインストールできます。
48
基本ガイド
ワイヤレスネットワーク上でのアプリケーション配布
ワイヤレスプル(ユーザー実行型)
公開または非公開の Web サイトに、コンパイルしたアプリケーションを投稿することができます。
BlackBerry® は、ワイヤレスネットワーク上で BlackBerry デバイス上のブラウザを使用し、Web サイト
にアクセスしてアプリケーションをダウンロードできます。 ユーザーにインストールを要求するメッセ
ージがブラウザに表示され、その後ワイヤレスネットワーク上でアプリケーションがダウンロードされ
て BlackBerry デバイスにインストールされます。
ワイヤレスプッシュ(サーバー実行型)
BlackBerry® Enterprise Server 環境では、管理者がワイヤレスネットワーク上で BlackBerry デバイス
ユーザーにアプリケーションをプッシュし、インストールを義務付けることができます。 管理者は新し
いポリシーを作成して、BlackBerry デバイスでそのアプリケーションが必要となるように指定します。
ユーザーによる操作がなくても、アプリケーションがユーザーにプッシュされます。 組織が大人数の
BlackBerry デバイスユーザーに新しいアプリケーションを配布する場合に、このアプローチは便利であ
ると考えられます。
49
基本ガイド
用語集
用語集
AES
Advanced Encryption Standard(米国政府の次世代標準暗号化方式)
API
Application Programming Interface(アプリケーションプログラミングインターフェイス)
CLDC
Connected Limited Device Configuration(携帯電話や PDA を対象とした J2ME の一部として定義さ
れている想定実行環境の一種)
HTTP
Hypertext Transfer Protocol(ハイパーテキスト転送プロトコル)
HTTPS
Hypertext Transfer Protocol over Secure Sockets Layer(HTTP に SSL によるデータ暗号化機能が
付加されたプロトコル)
I/O
input/output(入力および出力)
IMAP
Internet Message Access Protocol(インターネットメッセージアクセスプロトコル)
IPC
プロセス間通信
11
JDWP
Java® Debug Wire Protocol(Java でデバッグ時に使用される通信プロトコル)
JSR
Java® Specification Request(Java Community Process で新規の仕様の開発、または既存の仕様に
対する改訂を提案する文書)
JTWI
Java® Technology for the Wireless Industry(組み込み製品向け Java 仕様)
JVM
Java® Virtual Machine(Java 仮想マシン)
MIDP
Mobile Information Device Profile(携帯端末向けに定義された Java 実行環境の仕様)
50
基本ガイド
NVRAM
Non-Volatile Random Acess Memory(不揮発性ランダムアクセスメモリ)
PDAP
PDA Optional Packages for the J2ME Platform(J2ME プラットフォーム用 PDA 向けオプションパッ
ケージ)
PIM
Personal Information Management(個人情報管理)
PIN
個人識別番号
POP
Post Office Protocol(サーバーからメールを受信するためのプロトコル)
RAPC
RIM Application Program Compiler(RIM が提供するアプリケーションプログラムコンパイラ)
RMS
Record Management System(レコード管理システム)
用語集
SHA
Secure Hash Algorithm(ハッシュ記号)
SMS
Short Message Service(ショートメッセージサービス)
SMTP
Simple Mail Transfer Protocol(インターネットやイントラネットでメールを送信するためのプロト
コル)
SRAM
static random access memory(静的ランダムアクセスメモリ)
SSL
Secure Sockets Layer(セキュアソケットレイヤ)
TCP
Transmission Control Protocol(伝送制御プロトコル)
TLS
Transport Layer Security(トランスポート層セキュリティ)
Triple DES
51
基本ガイド
Triple Data Encryption Standard(トリプルデータ暗号化規格)
VPN
Virtual Private Network(仮想プライベートネットワーク)
WAP
Wireless Application Protocol(ワイヤレスアプリケーションプロトコル)
XML
Extensible Markup Language(拡張可能マークアップ言語)
用語集
52
基本ガイド
商標などに関する情報
商標などに関する情報
©2008 Research In Motion Limited. All rights reserved. BlackBerry®、RIM®、Research In
Motion®、SureType®、SurePress™、および関連する商標、名称、およびロゴは、Research In Motion
Limited の所有物であり、米国、 およびその他の国において登録または使用されています。
Bluetooth は、Bluetooth SIG の商標です。 Java および Javadoc は、Sun Microsystems, Inc. の商標
です。 Microsoft、Windows Internet Explorer、ActiveX、および Windows は、Microsoft Corporation
の商標です。 HotSync は、Palmsource, Inc. の商標です。 その他すべての商標は各社の所有物です。
BlackBerry スマートフォン、その他のデバイス、および/または関連ソフトウェアは、著作権、国際条
約、米国特許: 6,278,442; 6,271,605; 6,219,694; 6,075,470; 6,073,318; D445,428; D433,460;
D416,256 を含む各種特許で保護されています。 その他の特許は、米国 および世界各国で登録されてい
るか申請中です。 RIM(以降で定義)の特許リストについては、www.rim.com/patents を参照してくださ
い。
本書は、参照用として本書で取り上げるすべての文書(提供される文書または www.blackberry.com/go/
docs で参照可能な文書)を含めて「現状のまま」または「参照可能な形で」提供されるか、またはアク
セスすることができ、Research In Motion Limited およびその関連会社(「RIM」)はいかなる条件付け、
承認、表明、または保証もしないものとし、RIM は本書の誤記、技術的な誤りまたはその他の誤り、エラ
ー、遺漏について何ら責任を負いません。 RIM の所有権、機密情報および/または企業秘密を保護するた
め、本書では一部の RIM テクノロジの側面を一般化された用語で記述している場合があります。 RIM
は、本書に含まれる情報を定期的に変更する権利を留保します。ただし、RIM には、本書への変更、更
新、拡張、または他の追加を適時ユーザーに提供する義務はないものとします。
本書は、第三者をソースとする情報、ハードウェアまたはソフトウェア、製品またはサービス(コンポー
ネントや、著作権保護されたコンテンツなど)、および/または第三者の Web サイト(これらをまとめて
「サードパーティ製品およびサービス」という)への参照を含んでいる可能性があります。 RIM は、サー
ドパーティ製品およびサービスの内容、正確性、著作権遵守、互換性、性能、信頼性、適法性、品格、リ
ンク、他の側面などに限定することなく、サードパーティ製品およびサービスを一切管理することはな
く、責任も負いません。 本書においてサードパーティ製品およびサービスを参照することは、RIM がサ
ードパーティ製品およびサービスまたは第三者を保証することを意味するものではありません。
該当する司法管轄地域の適用法で明確に禁じられている場合を除き、本書で参照されているソフトウェ
ア、ハードウェア、サービス、またはサードパーティ製品およびサービスについて、耐久性、特定の目的
または使用に対する適合、商品性、適性品質、権利侵害の不存在、品質満足度、権原、または制定法、慣
習法、取引過程、商慣習から生じる、本書またはその使用に関する、または性能または性能の不履行に関
する条件付け、承認、表明、保証などに限定することなく、明示的または黙示的に、いかなる条件付け、
承認、表明、または保証も除外されます。 ユーザーは、国や地域によって異なる他の権利を有する場合
もあります。 一部の司法管轄地域では、黙示的な保証および条件の除外事項または限定事項は禁止され
ています。 法律で認められている範囲で、本書に関連する黙示的な保証または条件は、上記に定めるよ
うに除外できないが限定できる場合、ユーザーが本書または該当する対象物を初めて入手してから 90 日
間に限定されます。
12
53
基本ガイド
商標などに関する情報
該当する司法管轄地域の適用法で認められている最大限の範囲で、本書またはその使用に関連して、また
は本書で参照されているソフトウェア、ハードウェア、サービス、またはサードパーティ製品およびサー
ビスの性能または性能の不履行に関連して、直接的、必然的、典型的、偶発的、間接的、特殊的、懲罰
的、または加重的損害、金銭的損失による損害(利益または収益の損失、予想される貯蓄の未達成、事業
の中断、ビジネス情報の消失、ビジネス機会の喪失、データの破損または消失、データの送受信の失敗、
RIM 製品またはサービスと併用したアプリケーションに関連する問題、ダウンタイムコスト、RIM 製品ま
たはサービスあるいはその一部の使用機会や通信サービスの使用機会の喪失、代替品コスト、保険料、設
備費、保守費、資本コストなど)に限定することなく、損害を予想できたかどうかを問わず、RIM が損害
の可能性について勧告を受けていた場合を含め、いかなる場合においても、RIM はいかなる損害の責任も
負わないものとします。
該当する司法管轄地域の適用法で認められている最大限の範囲で、契約、不法行為、またはユーザーに対
する過失責任または厳格責任について、RIM は他のいかなる義務、責務、または責任も負わないものとし
ます。
本書の限定事項、除外事項、および免責事項は、(A)訴訟原因、請求、またはユーザーによる行為(契約
違反、過失、不法行為、厳格責任、その他の法理論など)の性質に関係なく、この契約の基本目的または
本書に記載されている救済策の根本的違反または不履行を免れるため、(B)RIM およびその関連会社、そ
の後継者、譲受人、代理業者、納入業者(通信サービスプロバイダを含む)、認可された RIM 販売業者
(通信サービスプロバイダを含む)およびその取締役、従業員、および請負業者に適用されます。
上記に定める限定事項および除外事項に加えて、いかなる場合においても、RIM の取締役、従業員、代理
業者、販売業者、納入業者、請負業者または RIM の関連会社は、本書に起因または関連する責任を負わ
ないものとします。
ユーザーは、サードパーティ製品およびサービスの加入、インストール、または使用前に、通信サービス
プロバイダがサードパーティ製品およびサービスのすべての機能をサポートすることに同意していること
を確認する責任を負います。 一部の通信事業者は、BlackBerry® Internet Service への加入によるイン
ターネット閲覧機能を提供しない場合があります。 利用、ローミング、サービスプラン、機能について
は、通信事業者にお問い合わせください。 RIM 製品およびサービスにおけるサードパーティ製品および
サービスのインストールまたは使用には、第三者の権利を侵害または妨害しないように、特許、商標、著
作権、または他のライセンスが必要になる場合があります。 ユーザーは、サードパーティ製品およびサ
ービスを使用するかどうかを決定し、使用するためにサードパーティライセンスが必要かどうかを確認す
る責任を負います。 必要な場合、ユーザーはライセンスを取得する責任を負います。 ユーザーは、必要
なライセンスをすべて取得するまで、サードパーティ製品およびサービスをインストールまたは使用して
はなりません。 RIM 製品およびサービスで提供されるサードパーティ製品およびサービスは、ユーザー
の便宜のために「現状のまま」提供され、RIM は明示的にも黙示的にもいかなる条件付け、承認、表明、
または保証もしないものとし、RIM はそれに関連するいかなる責任も負わないものとします。 ユーザー
によるサードパーティ製品およびサービスの使用は、ライセンスまたは RIM との他の契約で明示的に対
象になっている場合を除き、個別のライセンスおよび第三者との他の該当契約の条件に従うものとし、そ
の制約を受けるものとします。
本書に記載されている特定の機能は、BlackBerry® Enterprise Server、BlackBerry® Desktop
Software、BlackBerry® Device Software の最小限度のバージョンを必要とします。
54
基本ガイド
商標などに関する情報
RIM 製品またはサービスの使用条件は、個別のライセンスまたは RIM との他の該当契約に定められてい
ます。 本書の内容は、本書以外に RIM 製品またはサービスの一部に対して RIM が提供した文書による
明示的な契約または保証を破棄するものではありません。
Research In Motion Limited
295 Phillip Street
Waterloo, ON N2L 3W8
Canada
Research In Motion UK Limited
Centrum House
36 Station Road
Egham, Surrey TW20 9LF
United Kingdom
Published in Canada
55