首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

友盟分享SDK移除不需要的分享平台配置方法

     編輯:程式設計綜合問答

集成友盟分享 SDK 時,默認包含微信、QQ、新浪微博、鈕釦等十幾個平台,會顯著增加 APK 體積。通過配置可精確保留所需平台,移除多餘代碼。

Gradle 依賴精簡(推薦方式)

友盟 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
            // 不添加的平台將不會初始化,不會增加體積
        );
    }
}

ProGuard 混淆配置(防止誤刪)

-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.** { *; }

舊版本 SDK 移除方法(6.9.0 之前)

若使用舊版全量包,需通過 刪除 assets/umeng_socialize 目錄下對應平台文件 並配合 ProGuard 移除未用類:

# 刪除 assets/umeng_socialize 下不需要的平台目錄
# 如:facebook/, twitter/, line/, kakao/ 等

# ProGuard 保留規則同上

驗證效果

  1. 構建 Release APK:`./gradlew assembleRelease`
  2. 使用 apkanalyzer 或 Android Studio Analyze APK 檢查體積
  3. 對比精簡前後:通常可減少 1-3 MB (視移除平台數量)
  4. 實機測試分享功能,確保保留平台正常工作

最佳實踐總結

  • 優先使用模塊化依賴(Gradle 按需引入),從源頭控制體積
  • 代碼中顯式聲明啟用平台列表 (`Config.setPlatforms`)
  • ProGuard 配置精確保留所需平台類
  • 定期檢查友盟官網文檔,獲取最新模塊化依賴坐標

核心原則:依賴精簡 + 代碼顯式配置 + 混淆保護 三步走,輕鬆實現友盟分享 SDK 輕量化集成。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved