一 引言:
利用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 –组件调用库
四使用步骤
五 调用ShareSDK组件
以上步骤配置完成以后即可使用ShareSDK组件了,使用方式非常简单,以分享功能为例
1.首先初始化ShareSdkAgent (在PlugShareSDK1.0.0.jar包中定义)
ShareSdkAgent agent=new ShareSdkAgent(this,frame.getSystemBundleContext());
2.创建分享数据BeanPlugShareInfo (在PlugShareSDK1.0.0.jar包中定义)
final PlugShareInfo oks=new PlugShareInfo();oks.setAddress("北京市");oks.setTitle("apkplug下sharesdk分享组件功能");oks.setTitleUrl("");oks.setText("apkplug是android下的模块化框架,ShareSDK是一个非常棒的社会化分享组件,本着不重复造轮子的思想,我们将ShareSDK做成插件。详情见官网");//oks.setImagePath(testImage);oks.setImageUrl("");oks.setUrl("");//oks.setFilePath(testImage);oks.setComment("推荐使用apkplug框架减小应用体积,提供开发效率。");oks.setSite(getString(R.string.app_name));oks.setSiteUrl("");oks.setVenueName("apkplug");oks.setVenueDescription("apkplug是android下的模块化框架!");oks.setLatitude(23.056081f);oks.setLongitude(113.385708f);oks.setDisableSSOWhenAuthorize(false);
3.调用ShareSDK组件进行分享
agent.StatShareSDK(new CheckInitCallBack(){@Overridepublic void onSuccess(PlugShareSDK sharesdk) {//ShareSDK组件已安装并启动完成//执行分享功能sharesdk.showShare(oks);}@Overridepublic void onFailure(int errorNo, String strMsg) {}});运行DEMO:
成功是什么?就是走过了所有通向失败的路.只剩下一条路.那就是成功的路.