如何减少web-RTC库的大小?

时间:2017-03-11 04:33:39

标签: android quickblox videochat quickblox-android

我按照quick blox给出的指示如下: https://quickblox.com/developers/Sample-webrtc-android

dependencies 
{
compile 'com.quickblox:quickblox-android-sdk-videochat-webrtc:3.3.0'
}

最初我的apk大小是9MB但是当我在我的应用程序中集成quickblox视频聊天时,由于以下不同的.so文件平台,apk大小增加到45 MB:

>arm64-v8a
>armeabi-v7a
>x86
>x86_64  

libraries - libjingle_peerconnection_so.so

有没有办法或建议减少apk尺寸?

2 个答案:

答案 0 :(得分:2)

我正在查看QuickBlox提供的示例代码,发现您可以保存最多10 MB的apk但是您必须构建4个apks。您可以查看gradle file

 /*There is code for excluding some native libs (it useful if you need reduce apk size and want
build apk only for specific platform). This method allows you to achieve savings about 10MB
of apk's size (but you need build 4 different apks). */
    packagingOptions {
        exclude '**/armeabi-v7a/libjingle_peerconnection_so.so'
        exclude '**/arm64-v8a/libjingle_peerconnection_so.so'
        exclude '**/x86_64/libjingle_peerconnection_so.so'
        exclude '**/x86/libjingle_peerconnection_so.so'
    }

关于多个APK

  

不同的Android手机使用不同的CPU,这反过来支持   不同的指令集。 CPU和指令的每个组合   集有自己的应用程序二进制接口,或ABI

  • armeabi-V7A

    arm64-V8A

    x86_64的

    86

这些是ABI

构建4个apks意味着你可以分别为这4个ABI创建apk。主要思想是不包括不适用于特定ABI的库,从而通过仅包含该ABI所需的库来减小大小

e.g。

splits {
        abi {
            enable true
            reset()
            include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for
            universalApk true //generate an additional APK that contains all the ABIs
        }
    }

更新

  

如何将多个APK上传到PlayStore?

这个问题已经在SO上提出过了。请查看此question

答案 1 :(得分:-2)

如果要为应用程序添加视频呼叫或音频呼叫功能,则必须添加这些文件。 随着缩小你的apk大小,有很多关于它的文章,但关于使用quickblox的jnilibs并没有太多。

Google Developer Docs on shrinking size

希望它有所帮助。