C 言語で Android ネイティブ ライブラリを使用して画像を表示することで、アプリのパフォーマンスを向上させたいと考えています。この問題は、アプリ内の画像に必要な大量のメモリが原因です。
1 に答える
そうする必要はないに違いない。Android ビットマップは既に C で記述されており、ほとんどの場合、既にハードウェア アクセラレーションが行われています。何を達成しようとしているのか、すでにどのような努力をしたのかを知っておくとよいでしょう。
編集:
そのため、メモリに大量の画像を保持することを考える場合は、ネイティブ メモリを使用できます。その秘訣は、描画には Java メソッドを使用でき (これは便利です)、未使用の画像を保存するにはネイティブ メモリを使用できます (これは高速で大きくなります)。このようなタスクには、NativeBuffer ライブラリを使用してみることができます: http://code.google.com/p/native-buffer/
使用法は非常に簡単です。すべての画像をバッファにプリロードする必要があります。その後、画像が必要になったら、バッファからロードできます。draw() メソッドでもこれを行うことができます。SDカードと比較するとめちゃくちゃ速いです。
もちろん、NativeBuffer は C スタイルの割り当てを使用するため、システム メモリが不足する可能性があることに注意してください。OutOFMemoryError をスローすることはありませんが、確認せずにアプリを強制停止します。NativeLibrary には、使用可能なメモリをチェックするためのユーティリティがいくつか含まれていますが、自分で管理する必要があります。