NVIDIA Nsight Tegra を導入してみました。これは Tegra Android Development Pack に含まれています。
これが結構便利で、Android のNDK開発では個人的には最有力候補になると思っています。
一昨年くらいの TADP は個人的にはマイナス評価で検証後見送ったのですが、今回は多少のデメリットがあってもこれを選択したい勢いです。
さて入手には登録を必要とするのですが、ちょっとややこしい感じだったので、まずはそれについて説明しておきます。
NVIDIAのDeveloper Programに登録し、ログインを行います。
そして、Tegra Registered Developer Program と Nsight Visual Studio Edition Registered Developer Program の2つを有効化します(ApprovedステータスになっていればOK)。
注意するのはさらに、有効化されたよメールが手元にくるまで、実際には有効化されていないということです。
このメールがくるまでしばらく待ちましょう。
Tegra Android Development Packは今現在 2.0 で、ダウンロードできた物は 2013-02-06 リリースのもののようです。
これをインストールすると Nsight Tegra もインストールされました。
Nsight Tegra は Visual Studio 2010 SP1 に統合され、対象とするAndroidのバージョンは 4.0以降に対応するようです。
先日のICONIA Tab A500 をICSアップデートの真の目的はこのためだったのです!
Nsight Tegra で出来ること
Visual Studio 2010 上で、JavaもC(ネイティブ)も同時に開発可能です。
そしてすごいのはビルドはもちろんのこと、待望のデバッグも可能となっています。今まではEclipseで何とかがんばっていたソースコードデバッグも、これだけで可能になります。Javaの部分ですらブレークポイントが設定できます。そしてデバッグ出力ウィンドウで、”Android Logcat”を選択すれば、ログの確認もVisual Studioで行えます。
ただ、Visual Studio だから仕方の無いことなのかもしれませんが、Javaに対するサポートは弱いようで、インテリセンスが効きませんでした。
インストールして試してみる
まずはプロジェクトを新規作成して出来るテンプレで設定および動作の確認をしてみます。
ここでは、Java+Nativeの構成をとれる Android Application with Native Code を選択します。プロジェクトの作成する場所は、スペースを含まないパスにする必要があるようなので、この点にだけ注意します。
続いて、パッケージ名を指定します。
logcatの出力をVisual Studioで確認出来るように有効化します。有効化した後は、出力ウィンドウで 「Android Logcat」 が選べるようになります。
最後に、プロジェクトの設定を開き、Javaもネイティブも両方ともデバッグブレークできるように設定を変更します。
これでひとまずの設定は完了です。
動作を確認するために、Java部分とC言語部分をちょっとコードを変更しておきます。
また、コードを編集した後には、ブレークポイントを仕掛けておきます。
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Enter code here String str = hellotadp2Native(); // ネイティブコードにあわせて編集 TextView tv = new TextView(this); tv.setText( str ); setContentView( tv ); } public native String hellotadp2Native();
C言語部分
jstring Java_org_sample_hellotadp2_HelloTADP2_hellotadp2Native( JNIEnv* env, jobject thiz ) { // Enter code here return (*env)->NewStringUTF( env, "Hello Nsight Tegra World." ); }
それぞれにブレークポイントを仕掛けて、いつも通り F5 を押してデバッグ実行させてみます。もちろん、対象となるデバイスをUSBで接続しておいてください。
そして、実行後ブレークポイントで停止している図。
まとめ
このNsight TegraはAndroid開発、特にネイティブに重点を置いて開発する場合には、現時点では最強を狙える拡張だと思います。もうしばらく試用&検証してみてどのくらいのポテンシャルを秘めているか、探ってみたいと思います。WinGDB for Mobile Systemsが Androidのネイティブ開発で最強と思っていたのですが、なかなか製品として出てこないですね。そんな中このNVIDIA Nsight Tegra の登場は非常にうれしい限りです。
情報元: https://developer.nvidia.com/nvidia-nsight-tegra