基于ApkPlug调用ShareSDK组件减少应用体积

基于ApkPlug调用ShareSDK组件减小应用体积

一 引言:

     利用ApkPlug插件化框架将ShareSDK组件化,以实现按需动态加载和减小应用体积的目的。

    ShareSDK是非常棒的移动社会化分享和评论工具,相信我们在开发应用过程中都离不开它。但是当我们集成ShareSDK时候同样会遇到一些问题。

1. ShareSDK包比较大,组合国内多家分享平台以后其SDK包的大小应该在1M以上,这对应用来说还是不小的负荷。

2. 集成ShareSDK过程中我们不可避免的需要将它的资源文件复制到应用的res资源目录下,这对我们应用后期维护造成不小的干扰。

基于以上的两大情况,我想通过ApkPlug框架将ShareSDK整体做成组件,在用户需要的时候才动态的从服务端加载到本地,这样做很方便的就解决了以上两个问题。

二 项目所使用到的开发库

Apkplugv2.7.5版本  (必须是v2.7.5以上版本,否则无法运行)

Apkplug插件托管服务 v1.8.0版本以上

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

三 项目目录结构

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:

基于ApkPlug调用ShareSDK组件减少应用体积

基于ApkPlug调用ShareSDK组件减少应用体积

基于ApkPlug调用ShareSDK组件减少应用体积

基于ApkPlug调用ShareSDK组件减少应用体积

基于ApkPlug调用ShareSDK组件减少应用体积

4楼sinat_208685172小时前
不错,这样做一下应用还维护多了
3楼eesg223小时前
好牛逼,居然可以这样弄
2楼u0122416293小时前
要是在把第三方登陆做上就好了
1楼xianvlovebeibei3小时前
学习着