Android

Android

Xperia Z1fというかZ1Compact 到着

愛用していた GalaxyS2 もそろそろ限界を感じ始めたので、とうとう XPERIA X1f に乗り換えてみることにしました。今回もまたグローバルモデルを購入したので、Z1f は海外版では Z1 Compact という名称となっておりこちらを購入しました。 ちなみに限界を感じ始めた、というのはあくまで開発者視点で、という意味で、単にメールやブラウザといった...
Android

Galaxy S4 (GT-I9505)に Kitkat をいれてみた

以前 Android 4.3 (JB) を入れてしまった Galaxy S4 でデバッグができない!と嘆いていましたが、最近 KitKat (4.4) のファームウェアが公開されたのでこれを導入してみることにしました。 4.3が入った状態のものについて、もう少し状況を説明しておきます。工場出荷状態では 4.2 だったようですが、これを 4.3へと上げてしまっ...
Android

Android 4.3 に更新したら ndk-gdb できなくなった!?

SIMフリー版(国際版) Galaxy S4 において、 Android 4.3 を入れたものを借りた時のお話です。タイトルにあるとおり、「ネイティブデバッグ(ndk-gdb)が使用不可能」という状態でした。これについて色々と調べて、とりあえずは納得のいく結論(?)までたどり着きました。
Android

最近のAndroid開発環境(NDK r9b)の構築

最近NDKのほうも更新が進んで r9b が出ているようです。 以前の状況と結構変わっているようなので再度セットアップしてみました。 googleからダウンロードしたら、前回ADT bundleのeclipseの場所に展開します。 sdkフォルダがあるところに、android-ndk-r9b として展開します。 そして、環境変数 NDKROOT を作成し、この...
Android

最近のAndroid開発環境の構築

最近では ADT付属のeclipseとして Google から提供されているので、これを使って開発環境を構築する手順をまとめておきます。 必要な物 Java (JDK) ADT Bundleのeclipse (AndroidSDKも同梱)
Android

Androidネイティブデバッグ再び

Nsight Tegraがあまりに強力だったので、逆に標準のndk-gdbではどこまで出来るのだろうとテストしてみることにしました。 以前にLinux(Ubuntsu)環境でAndroid開発用の環境を作った記事(ここ)がありました。この環境を使ってテストしてみます。 当時はNDK r8bを使用していましたが、あれから結構時間も経ったので進化している部分もあ...
Android

NVIDIA Nsight Tegra がすごい その5

あれからもうちょっとだけ、Nsight Tegra を触ってみました。 今回はデバッグによく使うであろう機能についてチェックしてみます。 ブレークポイントが張れて停止するのは今までにしっかりと確認してきました。 今回は、条件付きブレークポイントやメモリ領域の表示、使い慣れたVisualStudioでの変数表示形式指定などを見てみたいと思います。 早速下記のコ...
Android

NVIDIA Nsight Tegra がすごい その4

前回、JniProxyタイプではうまくいかないです~の続きです。 動作させるためには、JavaJniAppのパッケージ(APK)に libNativeAppMain.so を含められればそれで完了です。 これをどうやって行うかですが、強引には以下の手順で実現することが可能です。 NativeAppMainをビルド。soファイルが出来る JavaJniAppの...
Android

NVIDIA Nsight Tegra がすごい その3

今回はNDKの開発で、割と使われるJNIProxyという手法で Nshight Tegra のデバッグブレーク機能は有効になるか?を確かめてみたいと思います。 このJniProxyという方法は、Android上ではアプリケーションの実行体イメージがメモリ上にまだ存在する場合、再利用してアプリケーションが動く、という挙動に対して解決する方法の1種です。 C/C...
Android

NVIDIA Nsight Tegra がすごい その2

NVIDIA Nsight Tegra 検証の第2弾です。 前回はほぼデフォルトで作成される状態のサンプルプログラムを実行させての動作確認だったので、今回はもう少し実際にあり得るケースで正常にデバッグが出来るのか、を試してみたいと思います。 今回のケース想定 2つのスタティックライブラリを使用して、.so を作成し、Javaから利用する。 要は libXXX...