2010年6月17日

Gentoo Linux の world を調べる方法

Gentoo Linux で portage を使用していると、依存するパッケージ等を自動で解決・インストールしてくれます。では、インストールしているパッケージで「自身で指定したパッケージ」と「依存しているためにインストールされたパッケージ」を調べたい場合にはどうするか?という話。
自身で指定したパッケージは、"world" に指定されます。この world はファイルとして保持されていて、/var/lib/portage/world のファイルを確認すれば分かります。

2010年5月9日

Androidアプリのメニューに標準アイコンを指定する方法(xml編)

Androidアプリを作成するにあたって、アプリのメニューで利用するアイコンを他のアプリと共通にする目的でAndroidの標準アイコンを使いたいことがあると思います。(アイコンを作るのが大変というケースもあるかと思いますが…)

xmlでアイコン指定をする方法は、iconとして"android:drawable/アイコン名" を指定します。
例えば、以下のような形で res/menu/menu.xmlファイルを指定します。
  android:icon="@android:drawable/ic_meu_info_details"


指定可能なアイコン名については、タオソフトウェアさんのブログが参考になります。
  参考リンク:Android メニューアイコンタオソフトウェアさんブログ

2010年5月5日

NetBSD5.0のBluetoothをデバッグする方法

最近、NetBSD5.0でBluetoothを利用して色々と試しています。

カーネルのBluetoothスタック関連でのデバッグを行う方法をメモ代わりに書いておきます。
デバッグの種類としては、"Bluetoothスタックのデバッグ"と"ドングルのデバッグ"の2種類があります。
ここでは、ドングルとしてはUSBタイプのドングルを利用するものとして記載します。(ちなみに私が使用しているのは、PlanexのBT-MicroEDR2です)

まずはカーネルでデバッグオプションを有効にしてカーネルをビルドします。設定するオプションは、BLUETOOTH_DEBUG と UBT_DEBUG の2種類。カーネルのコンフィグファイル(e.g. /usr/src/sys/arch/i386/conf/GENERIC)に以下のように追記します。
   options BLUETOOTH_DEBUG
   options UBT_DEBUG

この設定でカーネルをビルドし、ビルドしたカーネルにて起動します。ただ、これだけではデバッグ文は出てきません。デバッグ文を表示するには、sysctlコマンドにてデバッグレベルの設定を行います。例えば、以下のような形式です。
  # sysctl -w net.bluetooth.debug=11
  # sysctl -w hw.ubt_debug=51

これでデバッグ文が出力されるようになります。ちなみにsysctlで設定する値(上記の例では"11"とか"51")はデバッグレベルで値が大きいほどより詳細なデバッグ文が出力されます(その文、デバッグ文の量が増えます)。このあたりは、NetBSDでの他のドライバのデバッグと同じところですね。上記設定を行うと全てのデバッグ文が有効になります。デバッグ文を減らしたい場合は、値を小さく設定すればよいかと思います。

2010年5月3日

Javaの命名規則に関して…

元々Javaはほとんどやったことがない(Cばかり)だったんですが、最近Javaのコードをよく読んでます。
Javaのコードを読んでいて、"mなんちゃら"とプレフィックスに"m"がつく変数がよくでてくるのですが、この意味が分からなかった…。Sun(Oracle)が出しているコーディング規約にも、言及されている部分は見つからず。

Webで色々と調べてみたところ、変数のスコープを明示するために付けているスコープ接頭辞とのこと。
"m"が付いているのは、その変数がメンバー変数であることを表している模様。

なるほどー。

2010年1月11日

Androidアプリのパーミッション設定

Androidアプリケーションを作成するにあたって、例えばネットワーク接続等を行なうアプリケーションはパーミッションの設定を行なう必要があります。
それに関して、簡単な覚書。

パーミッションの設定を行なうためには、アプリケーションのAndroidManifest.xmlに設定を記述必要がある。これについては、以下のドキュメントが参考になります。


Manifest.permissionクラスのjavadoc

2010年1月10日

Androidアプリの勉強中

最近、Androidアプリを勉強しています。
少しWebを調べれば分かることだけれども、個人的な覚書として少しずつ記録していきます。

Activityのライフサイクル
Androidのアプリケーションは、基本的に"Activity"という単位で管理される。
各Activityは個別のライフサイクルを持っており、(アプリケーションが個別に実装した内容以外にも)特定のタイミングでシステムからコールされるメソッドがある。
アプリケーションを作成するにあたっては、これらのメソッドをオーバーライドする形で実装を進めていく。ライフサイクルに関連するメソッドは以下の通り
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart()


詳細は、Androidのリファレンスを参照のこと

2010年1月3日

JNI(Java Native Interface)で、ネイティブからJavaのコードを呼び出す(の参考サイト)

最近、Javaプログラミング(Androidプログラミング)に勤しんでます。
Javaの基本的なところは知っているつもりだったけど、JNI(Java上でNative(CやC++)のメソッドを利用する)は初めてやってます。

Javaからネイティブを読み出すのは色々と参考になるサイトもそろっており、それほど難しくないのだけれども、ネイティブ側からJavaのコードを読み出すのは四苦八苦。
動きとしては、Javaからネイティブ関数を呼び出し、そのネイティブメソッド関数からJavaメソッドを呼び出すというもの。

以下のサイトが参考になります。
  その1
  その2