2016-08-27 3 views
0

GoogleのGuide to Support Libraries for Androidを読んだのは、私がこのようなサポートライブラリandroid.support.v4を必要としたためです。私のアプリケーションに含まれる特定の機能FileProviderが必要だったからです。android.support.v4.content bloatから必要なもの(FileProviderなど)のみを抽出する方法はありますか?

サポートライブラリを含めると、163kb apkが大幅に増加することに気付きました。私の質問は、このサポートライブラリの必要/使用された部分だけを含めることは可能ですか?また、提供された他の機能を含めることで膨らませないでください(私のAPKサイズを大きくすることはできません)。

私は、例えばandroid-support-v4.jar の一部のコンテンツを削除するいくつかのテストをした私はandroid/support/v4/contentを保ったが、私はそこに提供されるクラスのいずれかを必要としないであろうことを考えandroid/support/v4/mediaを削除しました。

これまでの任意の除外では悪影響は見られませんでしたが、私のテストスペース(Android 5.x携帯電話のみ)は十分ではないかもしれませんし、除外するサポートライブラリの部分は実際にはandroid/support/v4/content.FileProviderに必要です。

私はそのようなサポートライブラリがどのように動作するはずであることを知りませんでしたか?

私の質問は、どのように使用されている機能だけに絞り込むことができますか?私の質問は、このサポートライブラリの一部「それが可能であるのみ必要/使用を含める方法」、および提供される他の特徴を含むことにより、(私のAPKのサイズを増やす)肥大化していないが、とにかく私が使用していないです

答えて

1

アプリ?

大部分の膨満は、Javaクラス(support-v4 AARの私の素早い検査)によるべきです。その膨張の大部分はリリースビルドのためにProGuardによってクリアされるべきです。 ClassySharkのようなものを使ってAPKを見ることで、ProGuardの設定を自分のものよりも調整する必要があるかどうかを確認できます。

または、IIRC FileProviderはちょうどone Java source fileであるため、ソースを直接使用してください。

FileProviderに基づいてmy StreamProviderを使用してください。これには、現在21KBのAARがあります(劇的に成長する可能性は低いです)。

または、ContentProviderをご記入ください。

GoogleがGoogle I | O 2016のプレゼンテーションに基づいて計画している異なるライブラリに、support-v4を分割するまで待ってください。しかし、私たちはどれくらい早くこのことが起こるか分かりません。

+0

どのようにプロガードがそれを行うのでしょうか?ガードの外で使用することができますか?直接ソースに言及してくれてありがとう!すばらしい! – humanityANDpeace

+0

@humanityandpeace:https://developer.android.com/studio/build/shrink-code.html http://proguard.sourceforge.net/ – CommonsWare

関連する問題