web-dev-qa-db-ja.com

Androidでexpo / react-nativeアプリのサイズを縮小する方法

Expoでリアクティブネイティブを使用して、小さな辞書アプリを開発しています。

私はApkファイルにコンパイルしています。サイズは最大30 MBになり、デバイスにインストールした後は80 MBになります。

これは正常ですか?

アプリのサイズを小さくする方法はありますか?

君たちありがとう。

10
user3036876

expoは、実稼働用にリアクティブネイティブに移行する必要があるアプリをテストするためのものです。

  • 新しい反応アプリ「react-native init」を作成する

  • Expoプロジェクトからソースファイルをコピーします

  • Expo固有のライブラリを除くExpoプロジェクトのすべての依存関係をインストールします。
  • app.jsonファイルに必要な調整を行います
  • Expを使用してExpoからAndroidアプリの署名キーをダウンロードします

  • fetch:Android:keystoreとセットアップ



これによりアプリが大幅に削減され、CPUアーキテクチャのプロガードと特定のビルドを有効にすることもできます

buildTypes {
    release {
        debuggable false
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
    }
 }



詳細情報をご覧ください https://medium.com/@aswinmohanme/how-i-reduced-the-size-of-my-react-native-app-by -86-27be72bba640

expoコンポーネントを使用する

完了して、より小さなサイズで公開したい場合、またはネイティブライブラリexpoを使用したくない場合は、 ExpoKit というオプションを指定します。既にネイティブコード反応プロジェクトでビルド

1回実行コマンドexpo ejectでExpoKitを追加(「ExpoKit」オプションを選択)
(手動でファイルをコピーした場合、またはネイティブプロジェクトを使用した場合、これを行う必要はありません)
2-expo startでexpoパッケージャーを起動します。これを実行したままにして、次の手順に進みます。
3- Androidおよびiosのリンクライブラリ、このコマンドは主にこれを行いますreact-native link、これは機能しない場合があり、このために手動で行う必要があります expokit
PS:これをテストしなかったので、うまくいかない場合はお知らせください

12
nima moradi

次の場所にあるbuild.gradleファイルに次の変更を加えます

./Android/app/build.gradle

Abiフィルターからx86を削除します。

splits {
        abi {
            reset()
            enable true
            universalApk false
            include "armeabi-v7a", "x86"
        }
    }

アーキテクチャごとに異なるAPKを生成します

def enableSeparateBuildPerCPUArchitecture = true

ProGuardを有効にします。

def enableProguardInReleaseBuilds = true

また、minifyEnabledをtrueに設定し、shrinkResourcesをtrueに設定します

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile("proguard-Android.txt"), "proguard-rules.pro"
        }
    }

また、開発ビルドとリリースビルドに異なるビルドタイプを使用できます(ユーザーベースによって異なります)

buildTypes {
        debug {
            ndk {
                abiFilters "armeabi-v7a", "x86"
            }
            ....
        }

        release {
            ndk {
                abiFilters "armeabi-v7a", "arm64-v8a"
            }
            ....
        }

未使用のFONTファイルを削除することも忘れないでください

9
akshay gore

Expoバージョンを31にアップグレードします。Android向けに発売されたシングルSDKビルド。これらのビルドには、ビルド時にアプリが使用するSDKバージョンのみが含まれ、より高速でスリムです。スタンドアロンアプリのビルドサイズを小さくするのに役立ちます。 リリースノート

0
Anjal Saneen

Android expoを使用したAPKバンドルの場合、次のコマンドを使用できます。

expo build:Android -t app-bundle

サイズははるかに小さくなります一度Playストアにアップロードすると

0
jakobinn

基本的に、apkファイルのサイズを32mb(expo)から7mb(react-native cli)に減らすための2つのオプションがあります。

  1. 博覧会から切り離す
  2. 新しいreact-native cliプロジェクトを作成し、expoからすべてのソースを新しいreact-nativeプロジェクトにコピーします。
0
user3036876

アプリのサイズを小さくするために、上記のすべての手順を使用しました。現在は6.94 MBです。さらに削減する方法。同様のアプリは、Google Playで1 MB未満です。

0
Anirudh

React-nativeを新しいバージョンにアップグレードします。バージョンが異なると、apkのサイズも異なります。

ために 0.57 そうだった ≈12mb

ために 0.59.3 そうだった ≈30mb

および0.59.9 そうだった ≈15mb

常に更新されたreact-nativeバージョンを使用するようにしてください

0
Vinil Prabhu