1

私のAndroidアプリでは、ファイルと一連のファイルを含むフォルダーをロードします。これらをアセットとして追加するのか、リソースとして追加するのか、それとも完全に追加するのかを判断しようとしています。

このファイルは、ファイルに含まれているものからオブジェクトを作成するクラスコンストラクターにパスが渡されるXMLファイルです。必要に応じてコンストラクターコードにアクセスできます。

このフォルダには、特別にフォーマットされた人間が読めないファイルが多数含まれています。フォルダへのパスは、フォルダの構造を知っている別のコンストラクタに渡され、オブジェクトが作成されます。そのコードにアクセスできません。

ああ、そしてこれら2つは、同じアプリで必要とされるという事実を除いて、互いに何の関係もありません。

では、これらをどのように保存すればよいですか?最初にアセットとして追加することを考えましたが、どうやら機能しないアセットの入力ストリームしか取得できないようです。フォルダをリソースとして追加する場合、res /の下の特定のサブフォルダに移動する必要がありますか?どれ?XMLファイルはres/xmlの下に配置する必要がありますか?アセットであろうとリソースであろうと、ファイルとフォルダーにアクセスするために使用する必要があるデフォルトのルートパスはありますか?

どうも!

4

1 に答える 1

2

res/xml/単純にパフォーマンス上の理由から、XML ファイルを の下に置きます。res/xml/は任意の XML をサポートし、XML でエンコードされたすべてのリソースは、通常のファイルを解析するよりも約 10 倍速く解析されます。「ファイルに含まれているものからオブジェクトを作成するクラス コンストラクター」は、その XMLXmlResourceParserのオブジェクトから取得した を使用します。Resources

フォルダーに関しては、assets/リソース (未加工またはその他) にフォルダー構造を持つことができないため、 を使用します。

最初にそれらをアセットとして追加することを考えましたが、アセットの入力ストリームしか取得できず、機能しないようです。

ファイルをアプリと一緒にパッケージ化して直接使用する場合、選択の余地はありません。リソースもアセットも、ファイルとして直接利用することはできません。それらのコンテンツをファイルとして取得する唯一の方法は、ストリームを使用して自分でそれらをローカル ファイルにコピーすることです。これにより、使用するストレージの量が増加し、XML の場合は解析パフォーマンスが低下します。

于 2012-04-23T18:53:16.927 に答える