利用插件化技術調用ShareSDK減少應用體積

 

一 引言: java

    ShareSDK是很是棒的移動社會化分享和評論工具,相信咱們在開發應用過程當中都離不開它。可是當咱們集成ShareSDK時候一樣會遇到一些問題。 android

1. ShareSDK包比較大,組合國內多家分享平臺之後其SDK包的大小應該在1M以上,這對應用來講仍是不小的負荷。 git

2. 集成ShareSDK過程當中咱們不可避免的須要將它的資源文件複製到應用的res資源目錄下,這對咱們應用後期維護形成不小的干擾。 app

基於以上的兩大狀況,我想經過ApkPlug框架將ShareSDK總體作成組件,在用戶須要的時候才動態的從服務端加載到本地,這樣作很方便的就解決了以上兩個問題。 框架

項目源碼可從這裏下載 ide

二 項目所使用到的開發庫 模塊化

Apkplugv2.7.5版本  (必須是v2.7.5以上版本,不然沒法運行) 工具

Apkplug插件託管服務 v1.8.0版本以上 this

ShareSDKv2.10.7 (使用的最新版本DEMO) spa

三 項目目錄結構

ShareSDKMain           ---主應用演示DEMO

ShareSDKPlug           ---ShareSDK 組件的具體實現

PlugShareSDK1.0.0.jar  --組件調用庫

四 使用步驟

  1. 將apkplug框架主庫Bunde2.7.5.jar【200k】加入到主應用libs目錄下
  2. 將apkplug插件託管服務SDK【200k】加入主應用libs目錄下
  3. 將ShareSDK組件調用庫PlugShareSDK1.0.0.jar【20k】加入到宿主libs目錄下
  4. 配置apkplug和ShareSDK所須要權限和activity【可直接從源碼的ShareSDKMain項目配置文檔中提取】

五 調用ShareSDK組件

以上步驟配置完成之後便可使用ShareSDK組件了,使用方式很是簡單,以分享功能爲例

1.首先初始化ShareSdkAgent (在PlugShareSDK1.0.0.jar包中定義)

ShareSdkAgent agent=new ShareSdkAgent(this,frame.getSystemBundleContext());


 

2.建立分享數據Bean PlugShareInfo (在PlugShareSDK1.0.0.jar包中定義)

final PlugShareInfo oks=new PlugShareInfo();
oks.setAddress("北京市");
oks.setTitle("apkplug下sharesdk分享組件功能");
oks.setTitleUrl("http://www.apkplug.com");
oks.setText("apkplug是android下的模塊化框架,ShareSDK是一個很是棒的社會化分享組件,本着不重複造輪子的思想,咱們將ShareSDK作成插件。詳情見官網http://www.apkplug.com");
//oks.setImagePath(testImage);
oks.setImageUrl("http://img.appgo.cn/imgs/sharesdk/content/2013/07/25/1374723172663.jpg");
oks.setUrl("http://www.apkplug.com");
//oks.setFilePath(testImage);
oks.setComment("推薦使用apkplug框架減少應用體積,提供開發效率。");
oks.setSite(getString(R.string.app_name));
oks.setSiteUrl("http://mob.com");
oks.setVenueName("apkplug");
oks.setVenueDescription("apkplug是android下的模塊化框架!");
oks.setLatitude(23.056081f);
oks.setLongitude(113.385708f);
oks.setDisableSSOWhenAuthorize(false);


 

3.調用ShareSDK組件進行分享

agent.StatShareSDK(
new CheckInitCallBack(){
@Override
public void onSuccess(PlugShareSDK sharesdk) {
            //ShareSDK組件已安裝並啓動完成
            //執行分享功能
			sharesdk.showShare(oks);
		}
		@Override
		public void onFailure(int errorNo, String strMsg) {
									
		}
});


運行DEMO:

相關文章
相關標籤/搜索