2013-05-02 14 views
8

私はAPK EXPANSION FILESというアンドロイドのドキュメントを見ていましたが、パッチapkとアプリケーションのビジネスロジックをすべてメインのapkに持つことができますか?Android拡張apk

私はこれもAndroid Apps Break the 50MB Barrierも読んでいます。

これを作成しようとしましたが、私が直面した問題はウィジェット名が自動的に生成されるR.javaファイルにある必要がありました。次にR.id.xxxを使用します。

これが可能かどうか教えてください。

これが可能な場合、どのように達成できますか?

また、パッチAPKに追加できるリソースや資産は何ですか?

答えて

3

ストレート、それはAPKからレイアウトファイルを分離することはできませんと言えば、その後R.id.whatever

拡張ファイルは、このようなメディア、ドキュメント、およびその他などの資産を保管することを意図している使用してアクセスしようとしていますアプリケーションが使用する静的なものと拡張パックの内容は、デバイスの共有ストレージに保存され、apkファイルにはリンクされません。拡張ファイルのアセットにアクセスするには、そのデバイスの共有ストレージの場所からアプリケーションを読み込むようにアプリケーションをコーディングする必要があります。

レイアウトファイルを拡張ファイルに保存するという問題に戻ります。これを実現するには、LayoutInflatorに似た基本機能を持つ独自のレイアウトパーサーを作成する必要があります。 LayoutInflatorを使用して、apkの一部ではない、または外部ストレージに格納されているレイアウトファイルを解析することはできません。そのため、レイアウトファイルを拡張ファイル(デバイス共有ストレージ上にあるapkから外す)に保存し、独自のパーサを使用してファイルを解析し、ビューを実行時にメインレイアウトに追加します。 R.id.whateverを使用してビューにアクセスすることはできませんが、ビジュアルツリーを使用してビューにアクセスしたり、ビューを解析するときに参照オブジェクトを保存して後で使用することができます。

これはあなたの出発点です。

関連する問題