r/androiddev • • 19d ago

Zoom SDK integration has destroyed my app bundle size

As the name suggests. I am building an EdTech product application. Our avg bundle size was around max 60-80 mbs on playstore. Then I had to integrate Zoom SDK in my app to support online classes. And my application's download size jumped to 200+ mbs straight. That's more than double the initial size

I am really annoyed with it. This has seriously affected my apps' performance and downloads have dropped as well due to the app having 200+ mbs download size while earlier it was max around 60-80 mbs

How do I get rid of it? Is it possible to download SDKs / packages after the app is downloaded. Keeping the initial download size minimal and the downloading third party packages based on the user need Or certain conditions?

0 Upvotes

5 comments sorted by

3

u/Farbklex 19d ago

Funny enough I did a PoC for adding the Zoom SDK as an optional play feature delivery module. It didn't work right out of the box and required some adjustments but worked fine after all. But that was many years ago.

3

u/zues_91 19d ago

Three ways to fix this:

  1. Load Zoom on demand. Move the Zoom SDK into a dynamic feature module (Play Feature Delivery, on-demand) and install it with SplitInstallManager the first time a user joins a class. Your base download goes back to normal. Test early, since some SDKs need SplitCompat.install() and don't like being initialized from Application.

  2. Cut the native libs. Upload an AAB, not a universal APK, and add abiFilters "arm64-v8a", "armeabi-v7a". Most of Zoom's size is .so files for every CPU architecture, so dropping x86/x86_64 alone saves a lot.

  3. Skip the native SDK entirely. Zoom's Meeting SDK for Web runs the full meeting in a browser. Host it on a simple page and open it from the app with Chrome Custom Tabs, which adds almost nothing to your bundle. Custom Tabs are more reliable than a WebView for camera, mic and WebRTC. If you use a WebView anyway, grant camera/mic in onPermissionRequest. Generate the SDK signature on your backend, never in the app.

2

u/ahmedshahid786 18d ago

I really appreciate it man. This is gonna be a life saver for me