Subchapter 114.59
use-cases/sdk-size-optimization.mdMarkdown5 KBView on GitHub
Reduce mobile app binary size when integrating Zoom Meeting SDK or Video SDK on iOS and Android.
Zoom SDKs add significant size to mobile apps. This guide covers Zoom-recommended techniques from the official developer forum and blog to minimize the impact on your app’s download size.
References
App Types| Platform | Configuration | Size |
|---|---|---|
| iOS | Universal (all architectures) | ~107 MB |
| Android | arm64-v8a + armeabi-v7a | ~97-108 MB |
| Android | arm64-v8a only | ~71 MB |
| Android | armeabi-v7a only | ~47 MB |
| Platform | Size |
|---|---|
| iOS/Android | ~75 MB |
This is the primary method recommended by Zoom to reduce APK size. Filter to only the CPU architectures you need.
// build.gradle (app module)
android {
defaultConfig {
ndk {
// Option 1: Modern devices only (smallest size)
abiFilters 'arm64-v8a'
// Option 2: Broader device support
// abiFilters 'arm64-v8a', 'armeabi-v7a'
}
}
}Size Impact (from Zoom Dev Forum):
| Configuration | APK Size |
|---|---|
| No Zoom SDK | ~11 MB |
| arm64-v8a + armeabi-v7a | ~97 MB |
| arm64-v8a only | ~71 MB |
| armeabi-v7a only | ~47 MB |
Note: Most modern Android devices (2017+) use arm64-v8a. Only include armeabi-v7a if you need to support older 32-bit devices.
Use Android App Bundles for Play Store distribution. Google Play automatically generates device-specific APKs:
android {
bundle {
abi {
enableSplit = true
}
}
}Users only download the architecture matching their device, reducing download size.
iOS App Store automatically applies App Thinning:
Verify in Xcode: Window → Organizer → Archives → App Thinning Report
Zoom has confirmed the following approaches are NOT supported:
From Zoom Developer Forum (August 2024):
“There are no new updates regarding reducing size of SDK“
Zoom has confirmed they do NOT support Android Dynamic Feature Modules:
Resources$NotFoundException at runtimeWarning: ProGuard/R8 causes crashes with Zoom SDK, even with Zoom’s provided rules. Users report runtime crashes. Use at your own risk.
Zoom SDK does NOT support iOS Bitcode due to internal dependencies. However, Bitcode is no longer required by Apple (Xcode 15+).
If SDK size is prohibitive for your use case:
Load the Web SDK in a native WebView instead of using the native SDK:
// iOS
let webView = WKWebView(frame: view.bounds)
webView.load(URLRequest(url: URL(string: "https://your-app.com/zoom-meeting")!))// Android
webView.loadUrl("https://your-app.com/zoom-meeting")Trade-offs:
Open meetings in the native Zoom app instead of embedding:
// iOS
if let url = URL(string: "zoomus://zoom.us/join?confno=\(meetingNumber)") {
UIApplication.shared.open(url)
}// Android
val intent = Intent(Intent.ACTION_VIEW,
Uri.parse("zoomus://zoom.us/join?confno=$meetingNumber"))
startActivity(intent)Trade-offs:
| Platform | Recommended Method | Expected Savings |
|---|---|---|
| Android | abiFilters 'arm64-v8a' | ~26 MB |
| Android | App Bundle (AAB) | Automatic per-device |
| iOS | App Thinning (automatic) | Automatic per-device |
Key Limitation: Zoom does not currently offer modular SDK downloads or feature exclusion. The SDK includes all features bundled together.