Symbian C++ Essential Coding Tips (japanese)

  • Uploaded by: Symbian
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Symbian C++ Essential Coding Tips (japanese) as PDF for free.

More details

  • Words: 1,577
  • Pages: 32
Essential Symbian OS

コーディング技法

販売の確実化 業界支援プログラムである Symbian Signed(アプリケー ション認証)を通じて、Symbian OS のソフトウェア開 発者はアプリケーションのデジタル署名を取得すること ができます。 Symbian Signed の認定を受けるために、アプリケーショ ンは様々な標準テストを通過しなければなりません。オ レンジ、ノキア、ソニーエリクソンをはじめとするネッ トワークオペレータや携帯電話メーカーの中には、チャ ネルを通じて販売する C++ および AppForge MobileVB/ Crossfire アプリケーションには認証が必要であると定め ている企業もあります。 Symbian Signed で認証されたアプリケーションは、 「application source untrusted(アプリケーションの出所 が信頼できない)」の警告メッセージなしに実行され、 ビジネスアプリケーションカタログへの掲載が可能で す 。 ま た 、 ISV は 認 証 を 受 け た ア プ リ ケ ー シ ョ ン に 「for Symbian OS」のロゴを使用することができます。

Symbian Signed の詳細は、www.symbiansigned.com をご覧ください。

Essential Symbian OS

コーディング技法

from

コーディング技法 The Essential Symbian OS シリーズ 発行元: Symbian Software Limited 2-6 Boundary Row Southwark London SE1 8HP UK(英国) www.symbian.com 商標、著作権、免責条項 Symbian、Symbian OS および関連する Symbian 商標は、すべて Symbian Software Ltd の商標です。Symbian は、本書に記載されたサードパーティ の商標権を承認しています。© Copyright Symbian Software Ltd 2006 All rights reserved. 本書のいかなる部分も Symbian Software Ltd の書面によ る明示的な許可なしに複写することは禁じられています。Symbian Software Ltd は、本書に記載された情報の適切性・正確性を保証するもの ではありません。本書の記載情報は一般情報としてのみ提供されたもの であり、その他の目的で使用および依存されるべきものではありません。

編集: Phil Spencer Hamish Willee 編集責任者: Freddie Gjertsen Satu McNabb デザイン顧問: Annabel Cooke

デザイナー: James Mentz 校閲者: Ricky Junday 日本語版校閲者: 小西一弘 Ko Chung Wong

謝辞 本書は、高度な技術力と実績を持つエンジニアが、長年にわた る知識・経験を共有した結果として実現されたものです。この 場を借りて感謝の意を表したいと思います。

はじめに Symbian OS アプリケーション開発の際には、設計から インストールファイルの最終設定に至る様々なフェー ズにおいて、アプリケーションの質や信頼性にかかわ る数多くの項目を考慮する必要があります。本書は、 Symbian 開発者向けに信頼性の高いアプリケーションを 完成させるための技法やヒントを取りまとめ、有用な リンクを提供します。

目次 一般情報 ...................................................................... 2 設計技法 ...................................................................... 4 コーディング技法 ....................................................... 6 テスト技法 ................................................................. 17 デバッグ技法 ............................................................. 18 参考文献 ................................................................... 21 開発者リソース ......................................................... 22

2

一般情報 1. Symbian 開発者ネットワーク (www.symbian.com/

developer) は、Symbian OS アプリケーションの開 発者向けに様々な役に立つ情報を提供するサイトで す。最新の SDK、技術情報、サンプルプログラム、 ホワイトペーパーにアクセスすることができますの で、随時ご利用ください。当サイトは、以下の情報 を提供しています。 • Symbian OS FAQ データベース – 設計やプログラミ ングに関する一般的な質問に答える開発者向けのか けがえのない情報源。 • Symbian OS C++ プログラミング標準など、様々な ホワイトペーパー – Symbian は、Symbian OS 開発 の際、複数の重要なプログラミングパターンやスタ イルを設定しました。コーディング作法集(The Coding idioms paper)は、外部開発者に対してこれ らを解説するものです。これらのパターンやスタイ ルを踏襲することで、開発者は、Symbian OS の開 発において培われてきた実績あるノウハウを応用す ることができます。 • Symbian OS 開発者ライブラリ Symbian OS の標準 API リファレンスガイド。 • サンプル アプリケーション、ユーティリティ ライ ブラリ、オプションのシステム API(Symbian OS の 一部ではあるが、すべての携帯電話には搭載されて はいない API)や移植されたライブラリ(新バー ジョンの Symbian OS API を古いバージョンで実行 させるためのソフトウェア)のダウンロード。

3 • デバッグおよび開発ツールに関する情報。 • ニュースグループ フォーラム (www.symbian.com/developer/letters/forum.html) – Symbian のエンジニアや他の開発者からのアドバイ スを受けることができます。フォーラムでは、C++ や Java に関する質問からハードウェア、Symbian 認証手続きまで開発に関するあらゆる側面が取り扱 われています。 2. Symbian 開発者ネットワークのニュースレター

(www.symbian.com/developer/letters/index.html) の購 読 – 毎月 E メールで送信され、最新の開発情報入手 が可能です。 3. Symbian OS を採用している携帯電話メーカーも、

同様の開発者プログラムを提供しています。これら のサイトに登録して、各携帯電話固有の情報や開発 のヒントを入手してください。 4. 資格の取得

(www.symbian.com/developer/academy/index.html) – Symbian 公認開発者の資格を取得することにより、 Symbian OS エンジニアとして必要な技術を身につ け、開発アプリケーションの品質を客観的に評価す ることができます。 5. Symbian Signed は、Symbian OS 搭載携帯電話の実

行アプリケーションの品質向上を促進するためのイ ニシアチブです。Symbian Signed の認定は、業界が 規定する品質ガイドラインやネットワークオペレー タの要件を満足するアプリケーションに対してのみ

4 与 え ら れ ま す 。 認 証 手 続 き の 詳 細 は 、 Sy m b i a n Signed ウェブサイト (www.symbiansigned.com) をご 覧ください。 6. Symbian や携帯電話メーカー以外も Symbian の開発

コミュニティを展開しています。主要なサードパー ティの開発サイトへのリンクは、 www.symbian.com/developer/about/trdprtysites.html をご覧ください。 7. Symbian OS に関する様々な書籍も出版されていま

す。Symbian Press (www.symbian.com/developer/books/index.html) は、 信頼性の高い Symbian OS のアプリケーションを容 易に開発するための様々な書籍を出版しています。

設計技法 1. Symbian OS アプリケーションの最も重要な設計ポ

イントは、「エンジン」と UI(ユーザーインター フェース)コードを異なるモジュールに分離するこ とです。Symbian OS 自体もこの設計手法の採用に より、異なる UI システム間のスムーズな移植を可 能としています。 この分離を実現する1つの方法として、非 UI 関連 コードを単一のエンジンファイル (.DLL) に格納する ことでバイナリーレベルでの分離を図るという方法 があります。

5 この場合、アプリケーション UI がエンジン機能に アクセスする際には、この .DLL へのリンクを行い ます。さらに、ソースレベルで分離を実現し、アプ リケーションを単一の .APP ファイルとしてビルド するという方法もあります。ただし、この場合も、 管理やデバッグの容易さを考慮して、「エンジン」 と UI 関連コードは、異なる .CPP および .H ファイ ルに分離されます。 この手法によって、新たな UI プラットフォームへ の対応が容易になり、多くの場合、エンジンのコア 部分は、どの UI プラットフォームでも変更なしに 実行が可能です。したがって、新たな UI への対応 において移植や最適化が必要なのは、分離されたア プリケーション UI レイヤーのみとなります。 2. ローカライゼーションのサポートを常に考慮した設

計を行ってください。文字変数や定数をソースファ イルにハードコードする(直接書き込む)ことを避 け、文字列の格納メカニズムとして Symbian OS が 提供するリソースファイルを使用してください。 3. SDK および Symbian OS のバージョンで正規にサ

ポートされている API を使用してください。サポー トされていない API や保証されていない API を使用 すると、将来問題が発生する恐れがあります。 Symbian は、今後のリリースにおいて外部開発者に 開放されていない API を変更および削除する権利を 持っています。

6 4. 携帯電話によっては、組み込まれていないシステム

ファイルがあるため、注意が必要です。Symbian OS のライセンス保持者は、携帯電話の大幅カスタ マイズが可能であるため、同一プラットフォームを 使用する携帯電話でもメーカーが異なる場合は、サ ポートファイルが異なる場合があります。したがっ て、例えば、再生するサウンドチップのロケーショ ンをハードコードするなどということは、移植性の 高い設計とは言えません。常に、「携帯電話に特定 ファイルが存在しない」というエラー条件処理を適 切に設計してください。

コーディング技法 下記は、プログラミングの一般注意事項です。 1. システムのシャットダウン イベントに応答するよ

うにアプリケーションを構築してください。アプ リケーションの AppUi::HandleCommandL()メ ソッドが、EEikCmdExit(および Series 60 の EAknSoftkeyBack をはじめとするプラット フォーム固有イベント)に応答するようなコー ディングを行ってください。 2. Incoming のシステムイベントへの応答。アプリ

ケーションは、マルチタスクの電話システム環境 で動作します。ユーザが優先度の高い通知を受け 取った場合にアプリケーションが正しく応答する ように、gained/lost などのイベントへの対応処理 を適切に行ってください。たとえば、電話の呼び

7 出しによってアプリケーションから制御が移動す る場合には、ステータスやデータの保存が必要で す。(標準の To background イベントに関して適切 な対応が必要です。詳細は、SDK を参照してくだ さい。)通常、フレームワークがこれらを処理する ため、アプリケーション側で特別な処理は必要あ りません。ただし、フレームワークの動作を妨げ るようなプログラミングが行われていないかどう かの注意が必要です。 3. Symbian OS のメモリ処理は、プログラミングにお

いて最も配慮を要する項目です。携帯電話実機環境 は、エミュレータ環境と異なる場合があります。 Symbian Signed のテスト申請を行う場合には、必ず、 事前に実機環境でのテストも実施してください。 4. スタックの容量は限られています。できる限り、オ

ブジェクトはスタック上ではなく、ヒープ領域に生 成してください。スタックの破壊やオーバーフロー により、予期せぬ KERN-EXEC 3 クラッシュが発生す るケースが少なくありません。 5. アプリケーションのパニックは、プログラムの論

理バグを示唆します。以下は、よくあるバグの一 例です。 • 非メンバーのヒープ領域の変数を CleanupStack にプッシュし忘れた。 • メンバー変数を CleanupStack にプッシュした。(メ ンバー変数は、必ずデストラクタ内で削除してくだ さい。)

8 • 削除の重複 – 例えば、CleanupStack 上の削除 済みアイテムに対して Pop()を実行し忘れると、 後にスタックは重複して削除を実行します。ま た、使用済みの関数を削除し、NULL に設定し忘 れると、デストラクタは再度関数を削除しよう とします。 • デストラクタに存在しない変数の関数にアクセスし た。−たとえば、以下のコードは、iSomeServer が NULL の場合(メモリを割り当てる前にオブジェ クトを開放した場合やアプリケーションの別の場 所でメモリを削除した場合)にパニックを起こし ます。 CMyClass::~CMyClass() { iSomeServer->Close(); delete iSomeServer; }

上記コードは、以下のように書き換えてください。 CMyClass::~CMyClass() { if (iSomeServer) { iSomeServer->Close(); delete iSomeServer; } }

9

• NULL ポインターの関数の呼び出し。 • スコープ外の変数上の関数からの関数呼び出し。例 えば、スタック変数を非同期関数のコールバックに 引き渡す場合など。 6. システム資源が不足した場合の適切なエラー処理を

行ってください。システム RAM は最も限られた資 源であるため、低メモリ条件の処理を適切に行って ください。このような防御的プログラミングにおい ては、以下に示す2段階のオブジェクト作成や CleanupStack の使用が重要な役割を果たします。 7. Close()メソッドを使用する ‘R’ クラスでは、常に

CleanupClosePushL()を使用してください。こ れにより、リーブが発生しても適切なクリーンアッ プが保証されます。プログラム例: RFile file; User::LeaveIfError(file.Open(…)); CleanupClosePushL(file); … CleanupStack::PopAndDestroy(&file); Release()または Destroy()を使用する ‘R’ クラス に対しては、Close()ではなく CleanupDeletePushL() および CleanupReleasePushL()を使用することもでき ます。

10 8. CleanupStack は、リーブ発生時に汎用的なク

リーンアップに使用できる拡張可能メカニズムで す。複雑な処理を行う場合には、必ず適切なクリー ンアップを行ってください。詳細は、Symbian OS ライブラリの TCleanupItem に関する記述を参照 してください。 9. HBufC メンバー変数を削除した後、同一の変数を

再度割り当てる場合には、必ず変数を NULL にセッ トしてください。HBufC の割り当て(または再割 り当て)によってリーブが発生する場合があり、こ の場合、デストラクタは存在しない HBufC を削除 しようとする可能性があります。これはヒープ領域 変数にも当てはまりますが、HBufC に対するこの ようなコードがより一般的です。 10. アプリケーション独自の TRAP を使用する場合に

は、すべてのエラー条件に対する適切な処理を行っ てください。以下のプログラミングの誤りがよく見 られます。 TRAPD(err, DoSomethingL()); if (err == KErrNone || err == KErrNotFound) { // Do something else }

11 上記のプログラミング例では、他のエラーコードが すべて無視されています。上記プログラムパターン を使用する必然性がある場合は、他のエラーに対し て Leave 関数をコールしてください。 TRAPD(err, DoSomethingL()); if (err == KErrNone || err == KErrNotFound) { // Do something else } else User::Leave(err); 11. CleanupStack への PushL()は直ちに行ってくだ

さい。新たに割り当てられたオブジェクト(メン バー変数以外)は直ちにスタック上にプッシュして ください。以下は誤ったコーディング例です。 void doExampleL() { CSomeObject* myObject1=new (ELeave) CSomeObject; CSomeObject* myObject2=new (ELeave) CSomeObject; … // Do something here with the variables CleanupStack::PushL(myObject1);

12

CleanupStack::PushL(myObject2); // Do something more with the variables … CleanupStack::PopAndDestroy(2); // myObject2, myObject1 }

myObject2 の割り当てが失敗した場合、 myObject1 はクリーンアップのメソッドが存在し ないままになっています。上記のコーディングは以 下のように書き換えてください。 void doExampleL() { CSomeObject* myObject1=new (ELeave) CSomeObject; CleanupStack::PushL(myObject1); CSomeObject* myObject2=new (ELeave) CSomeObject; CleanupStack::PushL(myObject2); … // Do something here with the variables … CleanupStack::PopAndDestroy(2); // myObject2, myObject1 }

13 12. 名前が ‘C’ で終わる関数(NewLC()メソッドなど)

は、自動的にオブジェクトを CleanupStack に プッシュします。アプリケーションで明示的にオブ ジェクトをスタックにプッシュすると、重複します ので注意してください。非メンバー変数を作成する 場合に、‘C’ で終わる関数名を使用すると便利です。 13. 2 段階のオブジェクト作成は、Symbian OS のメモ

リ管理の大きな特徴です。Symbian OS のコンスト ラクタ、デストラクタは、基本的にリーブしません。 C++ のコンストラクタがリーブすると、ポインター の欠如によって部分的に作成されたオブジェクトを クリーンアップすることが不可能になります。この ため Symbian OS のコンストラクタは、先ずオブ ジェクトをインスタンスし、ConstructL()メ ソッドによってメンバーデータをインスタンスしま す。ConstructL()がリーブすると、標準のデス トラクタが呼び出され、作成されたオブジェクトが 消去されます。メモリリークを回避するため、上記 に説明した 2 段階オブジェクト作成の設計パターン をアプリケーションにも応用してください。プログ ラミング中、各行において常にリーブの可能性を考 慮し、リーブが発生した場合にすべての資源が開放 されるようなコーディングを行ってください。 14. アプリケーションでは、_L()マクロのかわりに

_LIT()を使用してください。_L()マクロは Symbian OS v5 以降サポートしていません。_L()は、 文字列の長さを取得するために strlen()関数を

14 コールする TPtrC(const TText*)コンストラク タを呼び出す問題があります。この関数は余分な RAM を使いませんが、CPU サイクルを消費します。 一方、_LIT()マクロは、コンパイル時に初期化さ れるストラクチャを作成するため、TPtrC による CPU の負荷を回避することができます。また、ハー ドコードされた文字定数の使用の是非も検討してく ださい。ハードコードされた文字定数のディスクリ プタは、アプリケーションのローカライズの際にプ ログラムの変更が必要です。 15. 関数パラメータにディスクリプタを使用する場合

は、デフォルトのベースクラスを使用してくださ い。通常は、TDesC& 定数としてディスクリプタを 引き渡します。変更可能なディスクリプタの場合 は、TDes& を使用してください。 16. 関数にオブジェクトを引き渡したり、戻す際、オブ

ジェクトの所有権を持っている場合には、必ずオブ ジェクトを削除してください。Symbian では、ポイ ンターを使用する場合は所有権が呼び出し側に戻 り、レファレンスを使用する場合は、引数オブジェ クトの所有権は、オリジナルの所有者が持ってい ます。 17. アクティブオブジェクトは、Symbian OS の重要な

要素です。SDK ドキュメントおよび Symbian 開発 者ネットワークのホワイトペーパーを参照し、アク ティブオブジェクトのメカニズムに関する理解を深

15 めてください。以下は、アクティブオブジェクトの プログラミングに関する注意事項です。 • RunL()内で TRAP()を呼び出す必要はありま せん。アクティブスケジューラ自身がすでに RunL()をトラップし、リーブの後に CActive::RunError()を呼び出します。 • R u n L ( ) からのリーブ処理を行なうアプリ ケーション独自の RunError()関数を作成し てください。 • RunL()の処理をできるだけコンパクトにし てください。関数の処理が長くなると他のア クティブオブジェクトの実行を妨げます。 • 必ず DoCancel()関数を作成し、必ずアク ティブオブジェクトのデストラクタで Cancel()を呼び出してください。 18. で き る 限 り ア ク テ ィ ブ オ ブ ジ ェ ク ト の フ レ ー ム

ワークを使用してください。バッテリーで駆動さ れる機器でのループ内の頻繁なポーリングは電力 を消費し不適切です。ゲーム開発の際には特に注 意が必要です。詳細は、Symbian 開発者ネットワー クウェブサイト (www.symbian.com/developer/techlib/papers/porting_ 3D_games/XenGames_paper.pdf) を参照してください。

16 19. ゲームなどのビジーなアプリケーションの開発にお

いて、ViewSrv 11 パニックは深刻な問題です。パ ニックは、アプリケーションの ViewSrv アクティブ オブジェクトが制限時間内にビューサーバーに応答 しない場合に発生します。通常、応答制限時間は 10-20 秒です。詳細は、Symbian OS FAQ データベー ス (www3.symbian.com/faq.nsf ) の FAQ-0900(詳細 情報)および FAQ-0920(問題回避の実践的アドバ イス)をご覧ください。 20. HBufC にアクセスするために HBufC::Des()関数

を使用する必要はありません。TDesC& パラメータ を受け取るメソッドに HBuf を引数として渡す際な どには、HBufC を * オペレータで修飾参照します。 (上記の推奨を参照) 21. 標準アプリケーションの .INI ファイルを使用する場

合(Application()->OpenIniFileLC()(アプ リケーションの UI クラスの API)を使用するなど。)、 ストリームにバージョン情報を格納してください。 これにより、将来のアプリケーションバージョン の新規ストリームが作成され、ユーザが新しい バージョンの製品をインストールした場合に、適 切な設定やストリームが検出されなくても、古い .INI ファイルが原因でパニックが発生することはあ りません。

17 22. アプリケーションでフレームワーククラスを使用す

る場合は次の点に注意してください。必ずプラット フォーム固有のフレームワーククラスの派生クラス を使用してください。例えば、UIQ では、 CEikAppUi からではなく CQikAppUi から AppUi クラスを派生させてください。アプリケーション基 本クラス(CQikAppUi, CQikApplication およ び CQikDocument)は、アプリケーションの適切 な動作のためにより広範囲のフレームワークが使用 する機能を追加するものです。

テスト技法 1. テストにおいては、エミュレータを終了させるだけ

でなく、必ず、エミュレータ下でアプリケーション を終了させてください。デバッグモードでは、アプ リケーションのフレームワーク シャットダウン機 能にメモリおよびハンドルチェックコードが付加さ れています。このコードは、アプリケーション終了 時にリークメモリの有無、開いたままのハンドル (‘R’ オブジェクトなど)をチェックします。このた め、UIQ アプリケーションでは、通常、デバッグ モード専用の終了メニューが提供されます。 2. 展開の前にアプリケーションの .PKG ファイルに

プラットフォームの依存情報が書き込まれてい ることを確認してください。依存ストリングの 詳細は、プラットフォーム固有の SDK を参照し て く だ さ い 。 Sy m b i a n O S FAQ デ ー タ ベ ー ス (www3.symbian.com/faq.nsf ) の FAQ-0853 も役に立 つ情報を提供しています。

18 3. .PKG ファイルを作成する際は、できる限り !:\ シン

タックスを使用してください。通常、アプリケー ションは、携帯電話のあらゆるドライブをインス トール先として想定し、どのドライブからでも実行 できるように設計する必要があります。C:\ ドライ ブのみにインストールされるのは .INI ファイルなど ごく一部です。

デバッグ技法 1. エミュレータ上でのデバッグを最初に行ってくださ

い。エミュレータと実機の両方で発生するエラーは、 エミュレータ上の方がデバッグが容易です。 2. 新たなコントロールクラスの作成やデバッグを行う

場合は、アプリケーションの AppUi の ConstructL()機能に iEikonEnv->WsSession() .SetAutoFlush(ETrue) を 追 加 し て く だ さ い 。 ウィンドウのサーバークライアントバッファの フ ラ ッ シ ュ 時 で は な く 、 直 ち に gc draw コ マ ン ド が エ ミ ュ レ ー タ 内 で 表 示 さ れ ま す 。WSINI.INI (\epoc32\release\winscw\udeb\system\data\)に FLICKERFREEREDRAW が含まれていないことを確認 してください。draw コードの実行結果を 1 行ずつ 確認することができます。デバッグの効率を考慮し て、デバッグ行がリリースソフトウェアを呼び出し ていないことを確認してください。

19

3. ソ ー ス フ ァ イ ル に 対 し 、 定 期 的 に L e a v e S c a n

ツールを実行してください。LeaveScan は、すべ ての関数内でリーブ発生の可能性のあるコード をチェックし、関数名が‘L’ で終了していない場 合はエラーレポートを発生してソースコードの バグや見落としの可能性を指摘します。この機 能は、どのコードに対しリーブの発生を許すか、 コードがあらゆる事態に対応しているかを確認 す る 際 に 役 立 ち ま す 。 Sy m b i a n O S FAQ デ ー タ ベース (www3.symbian.com/faq.nsf ) の FAQ-0291 からツールや詳細情報をダウンロードすることが できます。 4. アプリケーションがシャットダウンでメモリーリー

クによるパニックを引き起こす場合、リークアドレ スを MS Visual Studio の CBase* にキャストするこ とで、リークしたオブジェクトのタイプを確認する ことができます。 5. Symbian OS 開発者向けに追加された重要な機能と

して、オンターゲット デバッグがあります。SDK やツールによってはこの機能が利用できない場合も ありますが、最新の SDK や IDE のほとんどでサ ポートされています。アプリケーションのリリース 前にこの機能を活用し、携帯電話固有の問題を解析 してください。詳細は SDK および IDE のドキュメ ントを参照してください。

20 6. 以下により、Just in Time デバッグを有効にするこ

とができます。 • 以下のマクロを \epoc32\data\epoc.ini から削除 する。 JustInTime 0 • レジストリ値を以下の通り設定する。 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows NT\CurrentVersion\AeDebug] "UserDebuggerHotKey"=dword:00000000 "Debugger"="\"C:\\apps\\Metrowerks\\bi n\\IDE.exe\" -p %ld -e %ld" "Auto"="0" 7. %Temp%epocwind.out のデバッグメッセージを

チェックしてください。 8. Lint、Leavesan、HookLogger、Panix および D_EXC

などの開発者ツールを使用し、メモリリークやエ ラーのデバッグを行ってください。これらの便利な ツールは Symbian 開発者ネットワーク (www.symbian.com/developer/downloads/tools.html) からダウンロードすることができます。 9. FA Q - 1 3 4 4 で は 診 断 機 能 を 有 効 に し て プ ラ ッ ト

フォームセキュリティ(KErrPermissionDenied) 違反をデバッグにする方法を説明しています。これ により欠如した機能を識別することができます。

21

参考文献 [1]

Symbian Developer Network newsletter

http://www.symbian.com/developer/faq/index.html [2]

Symbian OS FAQ database

http://www.symbian.com/developer/techlib/faq.html [3]

Symbian OS C++ Coding Standards paper

http://www.symbian.com/developer/techlib/papers/coding_stds/ 2003-01_SyOSCodStn.pdf#one [4]

Coding Idioms paper

http://www.symbian.com/developer/techlib/papers/coding_idioms/2 002_10_09_codingSymbianOS.pdf [5]

Symbian Press

http://www.symbian.com/developer/books [6]

Games Writing paper

http://www.symbian.com/developer/techlib/papers/porting_3D_ games/XenGames_paper.pdf [7]

Active Objects paper

http://nds2.ncsp.nokia.com/download/?asset_id=11981;ref=symbian or http://www.forum.nokia.com/main/1,,1_32_10_5,00.html

22

開発者リソース Symbian Developer Network www.symbian.com/developer

Symbian Developer Network Newsletter www.symbian.com/developer/newsletter.html

Symbian OS Tools Providers www.symbian.com/developer/downloads/ tools_providers.html

Sony Ericsson Developer World http://developer.sonyericsson.com

Forum Nokia http://forum.nokia.com

Sun Microsystems Developer Services http://developer.java.sun.com

開発者アンケート (所要時間 5 分) Symbian は、弊社の開発者サポートに関する皆様のご意 見を伺いたいと考えております。 皆様のご意見は、サポートプログラムの改善に活用さ せて頂く所存です。 弊社の活動にご意見を反映させたいとお考えの皆様は、 ぜひ下記サイトにアクセスしてアンケートにご協力く ださい。抽選で Symbian Press 発行のシリーズ書籍を差 し上げます。

www.symbian.com/developer

より新刊

Symbian OS プラットフォーム セキュリティ Symbian OS のセキュリティモデル や Symbian Signed など、Symbian イニシアチブの詳細を解説。ライセ ンス保持者から ISV まで開発者必読 の啓蒙書。

Symbian OS リアルタイムカーネルプログラミング 現在、注目度 No.1 のスマートフォ ン オペレーティングシステムの最 新リアルタイムカーネルを解説。 Symbian OS のドライバーやサービ スの開発、カーネル移植、発売前の 携帯電話 OS 分析に携わる技術者に とって、Symbian OS のカーネル細 部を理解するために必読の書。 Symbian Press: www.symbian.com/books

より発行

Symbian OS C++ 開発者向け書籍: Developing Software for Symbian OS(英語版) Steve Babin 著 Symbian OS C++ for Mobile Phones – Volume 2(英語版) Richard Harrison 著

翔泳社刊行の日本語版書籍: Symbian OS C++ プログラミング Richard Harrison 著 Symbian OS C++ 実践開発技法 Jo Stichburys 著

より発行

企業および IT 技術者向け: Rapid Mobile Enterprise Development for Symbian OS(英語版) Ewan Spence 著

Symbian OS プロジェクト管理者向け: Symbian for Software Leaders(英語版) David Wood 著

コネクティビティ アプリケーション開発者向け: Programming PC Connectivity Applications for Symbian OS (英語版) Ian McDowall 著

Java 開発者向け: Programming Java 2 Micro Edition for Symbian OS(英語版) Martin de Jode 著

より発行

The Essential Symbian OS シリーズ 発行書籍 Coding tips(英語版)/ コーディング技法(日本語版) Signing tips(英語版) Getting started(英語版)

翻訳書籍 (Getting started、中国語) (Coding Tips、中国語)

Essential Symbian OS

コーディング技法 設計

コー ディング

テスト

デバッグ

設計からデバッグに至るアプリケーション開発 の各フェーズにおいて、高品質の Symbian OS ソフトウェアを作成するためのアドバイスを提 供するハンドブック。 コーディング技法は、Symbian OS 開発者を対象 として情報を分かり易く整理した The Essential Symbian OS シリーズの一部です。

Symbian Press Symbian Press は、Symbian OS および関連技術 に関する実際的で信頼できる情報をタイムリー に提供することを目的として数々の書籍を発行 しています。Symbian Press に関する情報は、 www.symbian.com/books をご覧ください。

Related Documents


More Documents from "Symbian"