NDKでassets下のファイルを直接弄る方法

あるにはある。Android 2.3から新規追加されている。NDK同梱のサンプルコード*1を参考にされたし。というかいくらググっても他に実装例が見当たらないorz。

一連の流れは以下の通り。

  1. Java側でAssetManagerを取得し、JNI側に受け渡し (createAssetAudioPlayerあたり)
  2. AAssetManager_fromJava
  3. AAssetManager_open
  4. AAssetManager_*でゴニョゴニョ
  5. AAsset_close

open後、何が出来るかってのは直接<android/asset_manager.h>を見ておくれ。大体予想が付くはずだ。

面倒なのは元より、2.3以降と実に使い勝手が宜しくないバージョンであるのもアレ。結局、assetsの中にあるファイルをローカルの適当な領域にコピーして フツーにfopen,fcloseした方がサポート範囲が広がるよねって話に落ち着くかと。2.3ではNDKが結構拡張されただけにこのバージョンが積極的に使いにくい ってのは歯がゆい。

Key : NDK


*1 ./android-ndk-r7/samples/native-audio

Last-modified: 2012.09.23 (日) 07:15:11 (4234d)