Android ネイティブ C/C++ アプリケーションおよびライブラリのデバッグ

このチュートリアルでは、NDK(Native Development Kit)に付属の hello-neon アプリケーションのデバッグ方法について説明します。ここでは、ターゲットとして Android SDK Platform 2.2 と Android エミュレータを使用します。

Android ツールのインストール方法は、ここでは説明しません。詳細については、Android Developers の Web サイトを参照してください。

Note

Android開発キットを使用する場合は、それらの契約条件に従います。

Show/hide前提条件

ネイティブ C/C++ コードが含まれた Android パッケージをデバッグするには、以下の条件を満たしている必要があります。

  1. Android SDK(Software Development Kit)がダウンロードされインストールされていること。これにより、Java アプリケーションをネイティブの C/C++ コードに組み込んで、.apk というファイル拡張子の付いた Android パッケージにビルドすることができます。

  2. Android NDK がダウンロードされてインストールされていること。Android NDK は Android SDK のコンパニオンツールです。アプリケーションで特に高いパフォーマンスが求められる部分を C 言語や C++ 言語などのネイティブコードでビルドします。

    Note

    Windows 環境では、make パッケージを含む cygwin をダウンロードしてインストールする必要があります。これにより、Android NDK の内側でスクリプトを実行できます。

  3. DS-5 の arm_directory\gdbserver\...\android に用意された Android バージョンをコピーして、関連の Android NDK ツールチェーンディレクトリにある gdbserver のバージョンを更新してください。このチュートリアルでは、...\toolchains\arm-eabi-4.4.0\prebuilt ディレクトリを使用します。

  4. Eclipse plug-in for Android をセットアップします。

    1. Eclipse を起動します。

    2. ADT(Android Development Tools)Eclipse プラグインをインストールします。例えば、以下のサイトからインストールします。http://dl-ssl.google.com/android/eclipse.

    3. [Window] → [Preferences] → [Android]を選択し、[Browse...]をクリックして Android SDK のインストール先を設定します。

    4. [Window] → [Android SDK と AVD マネージャ]を選択し、[Android SDK and AVD Manager]ダイアログボックスを開きます。

    5. [Available packages]グループを展開し、必要に応じて SDK プラットフォームを追加します。例えば、Android SDK Platform Android 2.2 を使用します。

    6. 新しい AVD(Android Virtual Device)を作成します。

  5. Android NDK スクリプトファイル ndk-gdb で、デバッグに DS-5 を使用するように編集します。Android NDK には、デバッガを起動する前に、ターゲットで gdbserver とアプリケーションを実行するスクリプトファイルが含まれています。このスクリプトファイルは、デフォルトではデバッグに DS-5 を使用しません。この動作を変更するには、以下に示すように最終行をコメントアウトする必要があります。

    #$GDBCLIENT -x `native_path $GDBSETUP`
    

Show/hide手順

アプリケーションをデバッグするには

  1. Android NDK に付属のスクリプトを使用して、hello-neon ソースファイルをデバッグ情報とともにビルドします。このチュートリアルでは、...\toolchains\arm-eabi-4.4.0\prebuilt ディレクトリを使用します。以下に例を示します。

    ./ndk-build -C samples/hello-neon NDK_TOOLCHAIN=arm-eabi-4.4.0 NDK_DEBUG=1
    
  2. Eclipse を起動します。

  3. 新しい Android プロジェクトを作成します。

    1. [File] → [New] → [Project...]を選択します。

    2. [Android]グループを展開し、[Android Project]を選択します。

    3. [Next]をクリックします。

    4. 適切なプロジェクト名を入力します。例えば、「HelloNeon」と指定します。

    5. [Create project from your existing source]を選択し、hello-neon フォルダを見つけます。

    6. 表示されるデフォルトのディレクトリにプロジェクトを作成する場合は、[Use default location]オプションをオンのままにします。または、このオプションをオフにして、適切なプロジェクトディレクトリを参照します。

    7. 必要なビルドターゲットを選択します。例えば、[Android 2.2]を選択します。

    8. 適切なアプリケーション名を入力します。例えば、「Hello, Neon」と指定します。

    9. 適切なパッケージ名を入力します。例えば、「com.example.neon」と指定します。

    10. 適切なアクティビティ名を入力します。例えば、「HelloNeon」と指定します。

    11. [Finish]をクリックします。

  4. アプリケーションが、デバッグ情報とともにビルドされることを確認してください。これは以下の方法で行います。

    1. AndroidManifest.xml ファイルを開きます。

    2. [Application]タブをクリックします。

    3. [Debuggable]フィールドで、[true]を選択します。

    4. 変更を保存してファイルを閉じます。

  5. Android プロジェクトをクリーンアップしてリビルドします。

  6. このアプリケーションが既にターゲットにインストールされている場合は、アンインストールする必要があります。以下に例を示します。

    path\adb uninstall com.example.neon
    
  7. アプリケーションをインストールします。以下に例を示します。

    path\adb install samples/hello-neon/bin/HelloNeon.apk
    
  8. ndk-gdb スクリプトを実行してアプリケーションと gdbserver を起動します。以下に例を示します。

    ./ndk-gdb --project=samples/hello-neon --verbose --port=5000 --start --force --adb=adb
    

    スクリプトファイルとコマンドラインオプションの使用方法の詳細については、Android NDK のマニュアルを参照してください。

  9. gdbserver TCP 接続を使用して、DS-5 をアプリケーションに接続します。

    1. [実行]メニューから[デバッグコンフィギュレーション...]を選択します。

    2. コンフィギュレーションツリーから[DS-5 デバッガ]を選択し、[★新規作成]をクリックして新しいコンフィギュレーションを作成します。または、既存の DS-5 デバッガコンフィギュレーションを選択し、ツールバーで[Duplicate]をクリックします。

    3. [Name]フィールドに、新しいコンフィギュレーションの適切な名前を入力します。

    4. [Connection]タブをクリックし、以下の図に示すように、DS-5 デバッガターゲット接続を設定します。

      Figure 15. Android アプリケーションの一般的な接続構成

      Android アプリケーションの一般的な接続構成

    5. [Files]タブをクリックし、app_process オブジェクトファイルを選択します。

      Figure 16. Android アプリケーションの一般的なファイル選択

      Android アプリケーションの一般的なファイル選択

    6. [Run]コントロールパネルの[Debugger]タブをクリックし、[Connect only]を選択します。

    7. [Execute debugger commands]を選択し、対応するテキストボックスに「sharedlibrary」と入力してすべての共有ライブラリのデバッグ情報をデバッガにロードします。

    8. [Paths]パネルで、デバッガがソースコードを表示するときに使用する、ホスト上の共有ライブラリの検索ディレクトリを指定します。

      Figure 17. Android アプリケーションの一般的なデバッグ接続設定

      Android アプリケーションの一般的なデバッグ接続設定

    9. [Debug]をクリックしてターゲットに接続します。

  10. デバッグには、DS-5 デバッグパースペクティブが必要です。[Confirm Perspective Switch]ダイアログボックスが表示された場合は、[Yes]をクリックしてパースペクティブを切り替えます。

  11. アプリケーションをデバッグする必要に応じて、ブレークポイントを設定し、実行し、ステップ実行します。

Show/hide関連項目

Copyright © 2010, 2011 ARM. All rights reserved.ARM DUI 0478FJ
Non-ConfidentialID111611