ちょうど2つのwebviewとその中にいくつかのJavaスクリプトが入っているアンドロイドアプリ、作成されたPDFリーダーAPI、およそ2MBのすべてのPDF約25 MBと他の画像(また圧縮されています)など約1 MBの約30 MBに戻ります。アプリケーションを生成した後、私のアプリケーションのサイズは約55MBです。私は受け入れられないと信じています。 なぜ、私のアプリはそれほど大きなサイズを持っているのですか、どうすれば私のアンドロイドアプリのサイズをさらに小さくすることができますか?私のアンドロイドアプリのサイズを最適化する(減らす)方法
答えて
にあまりにもこれを使用しますあなたが2MBの単一のエクステンションライブラリしか使用していなかったため、私のアプリケーションのサイズが許容範囲外です。
あなたはそのライブラリのサイズとその依存関係を誤って読みました。あなた自身がNDKを使用していないと仮定すると、そのライブラリはNDKを使用しているか、その依存関係がそのライブラリを使用しています。そのライブラリのサイズは、おおよそthis PDF viewerと一致しますが、それがあなたが使用している特定のものかどうかわかりません。
ライブラリを閲覧することPDFのドキュメントはa section on why the library makes your APK bigました:
アンドロイドPdfViewerは、多くのアーキテクチャ用のネイティブライブラリ(ほぼ1600 MB)で設定されているPdfiumAndroid、に依存しています。 Apkには、市販されているすべてのデバイスで実行するために、このライブラリをすべて含める必要があります。幸い、Google Playでは複数のapkをアップロードできます。アーキテクチャごとに1つアプリケーションを自動的に複数のAPKに分割する良い記事があります(利用可能なhere)。最も重要なセクションは、複数のAPKの作成とバージョンコードの処理をAPK分割で改善することですが、記事全体を読む価値があります。アプリケーションでこれを行うだけで、PdfiumAndroidをフォークする必要はありません。
あなたのオプションは以下のとおりです。
は、ドキュメントの助言に従い、ABIを使用するCPUアーキテクチャごとに別々のAPKを持つように分割(あなたがあたり、別のAPKをサポートし、いくつかの手段で配布している場合にのみ役立ちますこのようPlayストアなどアーキテクチャ、)
から機能をレンダリングPDFを排除あなたのアプリ、
ACTION_VIEW
に頼ると、ユーザーの選択したPDFビューアは、HTML/CSS /画像に変換し、あなたのアプリケーションからPDFを排除し、
WebView
Proguardを使用してください。 build.gradleファイルから
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
は、その後、あなたの「proguard-rules.pro」を開き、すべてのルールに言及し、このようにProGuardのを可能にします。外部ライブラリを使用していない場合は、これを "proguard-rules.pro"ファイルに貼り付けてください。 。
WebサービスのためOkhhtp使用している場合は、あなたのproguard-rules.pro
"LIB" は約35%であり、15メガバイトであることが判明# For OkHttp3
-keepattributes Signature
-keepattributes Annotation
-keep class okhttp3.** { *; }
-keep interface okhttp3.* { *; }
-dontwarn okhttp3.*
- 1. UIPinchGestureRecognizerを最適化してフォントサイズを増減する方法は?
- 2. CUDA削減の最適化
- 3. チタンベースのiPhoneアプリのサイズを最適化する方法は?
- 4. 私のアンドロイドアプリが使用するメモリの量を減らす方法
- 5. アンドロイドアプリのメモリを最適化onDestroy()
- 6. apkのGMSサイズを減らす方法
- 7. Djangoの_setsを最適化してクエリを減らす
- 8. 私のPHPコードを最適化して仮想メモリを減らすには?
- 9. Libgdxがコールを減らしてゲームを最適化する
- 10. CUDA削減最適化の例
- 11. 私のOracle SQLを最適化する方法は?
- 12. カレー化関数:それらを最適化する方法
- 13. ASP.NET MVC HTTPリクエストを減らすために何百もの画像を最適化する方法
- 14. このクエリをさらに最適化する方法は?
- 15. Android:ListViewを最適化する方法
- 16. DataContextフリーズを最適化する方法
- 17. UIImageViewを最適化する方法
- 18. OrangeFSを最適化する方法は?
- 19. postgresqlプロシージャを最適化する方法
- 20. ラーベールキューを最適化する方法は?
- 21. プロシージャメソッドを最適化する方法は?
- 22. solrインデックスを最適化する方法
- 23. メニューナビゲーションを最適化する方法
- 24. JSF - データベースパフォーマンスを最適化する方法
- 25. Ghostscriptを最適化する方法
- 26. pigzを最適化する方法は?
- 27. デカルト積を最適化する方法
- 28. mach_msg_trapを最適化する方法
- 29. バッチピボットを最適化する方法は?
- 30. SQLクエリを最適化する方法
「なぜ私のアプリを持っているでそれらをレンダリング非常に大きなサイズ " - 依存性があります。 AndroidスタジオでAPKアナライザを使用して(ビルド> APKの分析...)、スペースがどこにあるかを確認します。 「どうすれば私のアンドロイドアプリのサイズをもっと小さくすることができますか?それから、そしてそれを小さくする方法について心配してください。 – CommonsWare
@CommonsWareあなたのコメントのおかげで私はAPK分析を行ったと私は2 MBの単一のextライブラリを使用していたとして許容されない私のアプリケーションのサイズの約35%である "lib" 15 MBであることがわかった残りのフォルダはOK.nowですが、どうすればこの提案を解決できますか? –
@CommonsWareこれは、APKアナライザで正確になるようになっています-https://postimg.org/image/d4jj4ynj1/ –