Androidに移植しています。私の既存のプロジェクトには、Android プロジェクトに移植する大量のリソース ファイルがあります。それらはすべて /res/raw/ にあり、fopen() などの関数を使用して、ネイティブ ライブラリ内のこれらのリソースにアクセスしたいと考えています。これを行うことはできますか、それとも JNI を経由する必要がありますか? 移植の容易さと、速度とメモリの理由から、そうしないことを本当に望んでいます。
質問する
13551 次
2 に答える
15
アセットが APK に追加されるときにアセットが圧縮されないようにする場合は、openRawResourceFd() を使用してファイル記述子、オフセット、およびサイズを取得し、それらをネイティブ コードに渡し、そこで fopen と fseek を実行します。一方、アクセスしたいファイルをビルド システムに圧縮させる場合は、libzipなどを使用して APK からファイルを読み取る必要があります。
于 2010-04-18T21:05:28.610 に答える
5
ndkのobb.hをチェックしてください。
AndroidNDKのdocs/STABLE-APIS.htmlから:
<android/obb.h>
Direct (read-only) access to assets embedded in your .apk. or
the Opaque Binary Blob (OBB) files, a new feature of Android X.X
that allows one to distribute large amount of application data
outside of the .apk (useful for game assets, for example).
于 2012-08-28T02:50:59.510 に答える