如何减少android studio中的Apk(.apk)大小

问题描述 投票:-2回答:7

当我运行我的应用程序大小的apk将21 MB。甚至我启用了proguard。我用android studio来运行项目。在项目文件中,src文件夹的大小为8.62 MB,lib文件夹的大小为400 KB。所以我如何减少.apk文件的大小。实际上.apk文件在某些​​日子之前是8 MB,具有相同的图像,但在paypal集成后,我的应用程序大小将增加到21 mb。构建文件夹的大小为127 MB。

build.gradle(模块应用)是:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.oi.food"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions{
        exclude 'AndroidManifest.xml'
    } }

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile files('libs/httpmime-4.1.1.jar')
    compile files('libs/apache-mime4j-0.6.jar')
    compile 'com.squareup.picasso:picasso:2.3.2'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.paypal.sdk:paypal-android-sdk:2.14.1' }
android apk
7个回答
5
投票

我通过在模块app build.gradle文件中添加此代码来解决此问题。

 android {
        packagingOptions{
            exclude 'AndroidManifest.xml'
            exclude 'lib/arm64-v8a/libcardioDecider.so'
            exclude 'lib/arm64-v8a/libcardioRecognizer.so'
            exclude 'lib/arm64-v8a/libcardioRecognizer_tegra2.so'
            exclude 'lib/arm64-v8a/libopencv_core.so'
            exclude 'lib/arm64-v8a/libopencv_imgproc.so'
            exclude 'lib/armeabi/libcardioDecider.so'
            exclude 'lib/armeabi-v7a/libcardioDecider.so'
            exclude 'lib/armeabi-v7a/libcardioRecognizer.so'
            exclude 'lib/armeabi-v7a/libcardioRecognizer_tegra2.so'
            exclude 'lib/armeabi-v7a/libopencv_core.so'
            exclude 'lib/armeabi-v7a/libopencv_imgproc.so'
            exclude 'lib/mips/libcardioDecider.so'
            exclude 'lib/x86/libcardioDecider.so'
            exclude 'lib/x86/libcardioRecognizer.so'
            exclude 'lib/x86/libcardioRecognizer_tegra2.so'
            exclude 'lib/x86/libopencv_core.so'
            exclude 'lib/x86/libopencv_imgproc.so'
            exclude 'lib/x86_64/libcardioDecider.so'
            exclude 'lib/x86_64/libcardioRecognizer.so'
            exclude 'lib/x86_64/libcardioRecognizer_tegra2.so'
            exclude 'lib/x86_64/libopencv_core.so'
            exclude 'lib/x86_64/libopencv_imgproc.so'
        }
    }

           dependencies {
            compile fileTree(include: ['*.jar'], dir: 'libs')
            compile 'com.paypal.sdk:paypal-android-sdk:2.14.1'
        }

3
投票

尝试

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

shrinkResources true不会包含您在最终apk中使用的资源图像

希望这可以帮助


3
投票

您可以通过缩小图像大小轻松缩小应用程序的大小。请使用https://tinypng.com/来缩小图像大小。这将确保您的应用程序大小也减少。图像质量将保持不变。

同样在图书馆的情况下,请务必仅包括您真正需要的那些组件。还删除任何不需要的和未使用的导入


1
投票

在打开新项目向导时单击“完成”之前,取消选中向后兼容性(appcompat)。这可以从1.5 MB减少到180 KB。


1
投票

这四件事减少你的apk大小几乎50-60%

  • proguard-android.txt替换proguard-android-optimize.txt
  • 制作minifyEnabled true
  • 添加shrinkResources true
  • 添加resConfigs buildTypes { release { minifyEnabled true shrinkResources true resConfigs "en" proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }

细节:

  • qazxsw poi是比qazxsw poi更具侵略性的程序配置。
  • proguard-android-optimize.txt属性将删除所有资源,这些资源不会在项目中的任何位置使用。
  • proguard-android.txt属性将在构建应用程序时删除所有其他本地化资源。在这里,它除了英语资源之外。

0
投票

我认为你应该将你的APK构建为(APK包),Google会针对APK尺寸问题进行推广。我已经使用了我的项目选项,它实际上减少了我的APK的大小。


-2
投票

减少APK文件大小的最佳方法是减少build.gradle文件中使用的库的使用。这些库创建了大量的redandancy,反过来又增加了项目的大小.shrinkResources

© www.soinside.com 2019 - 2024. All rights reserved.