集成友盟分享 SDK 時,默認包含微信、QQ、新浪微博、鈕釦等十幾個平台,會顯著增加 APK 體積。通過配置可精確保留所需平台,移除多餘代碼。
友盟 SDK 支持模塊化依賴,僅引入需要的平台模塊:
dependencies {
// 核心基礎庫 (必須)
implementation 'com.umeng.sdk:share-core:latest.version'
// 按需添加平台模塊
implementation 'com.umeng.sdk:share-wechat:latest.version' // 微信
implementation 'com.umeng.sdk:share-qq:latest.version' // QQ
implementation 'com.umeng.sdk:share-sina:latest.version' // 新浪微博
// implementation 'com.umeng.sdk:share-facebook:latest.version' // Facebook (不需要則不加)
// implementation 'com.umeng.sdk:share-twitter:latest.version' // Twitter
// ... 其他平台同理
}
在 `Application` 或初始化處設置:
import com.umeng.socialize.Config;
import com.umeng.socialize.PlatformConfig;
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
// 1. 設置 AppKey
Config.APP_KEY = "your_app_key";
// 2. 配置平台密鑰 (僅配置需要的)
PlatformConfig.setWeixin("wx_app_id", "wx_app_secret");
PlatformConfig.setQQZone("qq_app_id", "qq_app_key");
PlatformConfig.setSinaWeibo("sina_app_key", "sina_app_secret", "redirect_url");
// 3. 關鍵:僅啟用需要的平台 (友盟 6.9.0+ 支持)
Config.setPlatforms(
SHARE_MEDIA.WEIXIN,
SHARE_MEDIA.WEIXIN_CIRCLE,
SHARE_MEDIA.QQ,
SHARE_MEDIA.QZONE,
SHARE_MEDIA.SINA
// 不添加的平台將不會初始化,不會增加體積
);
}
}
-keep class com.umeng.** { *; }
-keep interface com.umeng.** { *; }
-dontwarn com.umeng.**
# 保留已配置平台的類
-keep class com.umeng.share.wechat.** { *; }
-keep class com.umeng.share.qq.** { *; }
-keep class com.umeng.share.sina.** { *; }
若使用舊版全量包,需通過 刪除 assets/umeng_socialize 目錄下對應平台文件 並配合 ProGuard 移除未用類:
# 刪除 assets/umeng_socialize 下不需要的平台目錄
# 如:facebook/, twitter/, line/, kakao/ 等
# ProGuard 保留規則同上
apkanalyzer 或 Android Studio Analyze APK 檢查體積核心原則:依賴精簡 + 代碼顯式配置 + 混淆保護 三步走,輕鬆實現友盟分享 SDK 輕量化集成。