分享技术哪家强(附demo对比)

本文对比了友盟分享SDK与其他分享SDK的区别,包括jar大小、代码逻辑、集成难易程度等方面,展示了友盟分享SDK的优势,如统一的分享逻辑、简化集成流程、丰富的数据统计功能等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每一个app的开发者都会面临这样一个问题,我的应用需要一个分享功能,我应该怎么实现呢?
这时你有两个选择,一是去对应的三方平台下载对应的原生SDK,另一种就是去使用成型的分享SDK,如友盟分享等。下面对比一下原生SDK与原生分享的区别。

原生与友盟分享的对比

jar大小

友盟的jar为用户提供了精简,去掉了不常用的功能,并且由于对各个分享平台共性的代码进行了统一,所以jar更小。

三方平台精简版完整版
微信32.09k235.32k
QQ43k348.65kk
新浪17.82k701.21k

代码逻辑

友盟分享对分享的逻辑进行了精简,将所有平台的逻辑进行了统一,也就是说,开发者可以通过调用同一行代码,实现对所有平台的分享或者授权。这当然原生平台没有做到的。

集成难易程度

各个三方的平台的分享,各家有各家的逻辑,尤其是国外平台,配置方式更是千差万别,要想集成,您需要去看所有的逻辑和demo,但是友盟分享为开发者做了统一,真正的实现了一劳永逸。

数据统计

开发者集成分享,当然是希望,可以看到用户的分享行为,关注分享量的增减。接入友盟后,友盟会为您提供专业的数据分析,如下图所示:

Paste_Image.png

Paste_Image.png

友盟与市场上其他产品的对比(包含android和IOS)

看官肯定会问,为什么市面上有那么多分享的产品,这里独推友盟,原因很简单,笔者认为,友盟的分享的每一步设计真正做到了为开发者考虑,下面对比一下各个品牌的分享产品(文章的最后会有一个demo,笔者没有信口开河,这个demo集成了友盟和另一家分享产品,感兴趣的朋友可以看看)。

Android

接口功能对比

内容友盟其他产品说明
appkey的设置程序中assets的xml中放在assets中的文件直接解压缩就可以打开,增加了数据暴露的风险
分享面板的依赖jar源码友盟是通过jar依赖,用户通过调用设置方法进行设置,更加简便,不易出错
资源文件遗漏会有log提示缺少什么文件不会报错,可正常运行,只是对应图片不会显示其他产品的这种方式很容易让开发者出错,而且很难定位错误原因
对分享图片的处理支持传入任何形式的图片只支持三方平台需要的类型友盟的工程师内部为用户提供了图片转化的功能,不管你传入的图片是什么类型,我们会内部转为三方平台需要的类型,如果需要还会做好压缩处理,防止OOM
分享类型的设置只需要传入对应的分享内容即可需要传递分享类型参数友盟的工程师会根据用户传递进来的分享内容智能判断分享类型,省去了开发者呢的工作
回调的线程统一回调到主线程回调到子线程不管进行什么样的操作,回调之后一般都要进行界面的更新,友盟更加贴心的回调到了主线程,方便用户进行界面的更新,其他产品还需要在子线程中将界面的更改post到主线程
内存泄漏6.2.1版本后修复了内存泄漏问题仍有内存泄漏友盟为了解决这个问题,特意为开发者增加了释放的功能,消除了内存泄漏
后台应用被杀死,没有授权回调提供了解决方案无解决方案对于部分低端手机,跳转到授权界面时,自己的应用很可能被系统杀死,这是授权回来,不再有回调,友盟为这种情况特意做了处理

单平台分享的代码对比

友盟:

new ShareAction(this).setPlatform(平台名).withText("xxxx").share();

其他分享产品:

Platform wx = ShareSDK.getPlatform(Wechat.NAME);
Wechat.ShareParams params = new Wechat.ShareParams();
params.setText("xxxxxxxxxxxxx");
params.setShareType(Platform.SHARE_IMAGE);

Platform weibo = ShareSDK.getPlatform(SinaWeibo.NAME);
SinaWeibo.ShareParams params = new SinaWeibo.ShareParams();
params.text = "xxxxx";
weibo.share(params);    

由代码可以看出,分享不同平台需要构建不同类型,而在友盟,都是统一的代码,只需要传递不同的参数名即可。

集成错误自检

在友盟中,如果出现集成问题或者由于一些分享失败等,会有详细的log告诉开发者应该如何操作。这个可以参照我之前的一篇文章:
http://www.jianshu.com/p/1bee8f282ec7
而在其他产品中,如果出现错误,没有任何log,让开发者无所适从,不知如何修改。

参考代码

我将对比代码放在了github上,感兴趣的朋友可以对比观看
https://github.com/mymdeep/share_mob

IOS

初始化方式

在友盟中,直接引入U-share头文件,设置appkey即可。
在其它产品中,若有三方平台的SDK还要引入三方的SDK,头文件,并将三方SDK的class进行注册。
对比可知,友盟的设计为加入SDK便会自动触发注册平台,其他产品初始化的方式较为繁琐

初始化代码

在友盟中,一个平台对应一行初始化代码。
其他产品中,虽然初始化只有一个api调用,但是分多个block回调进行交互传递数据,参数较多,整个初始化全平台需要近200行代码,繁琐程度不言而喻。

分享行为

友盟分享的API设计为抽象分享行为,根据具体参数内容,内部识别。
其他产品分享入口与平台绑定,互不通用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值