安卓应用实用功能的技术实现:《Android消息推送实现》 | Android DevCamp
主题简介:作为移动应用开发的一个重要需求,微软和苹果公司分别为iOS和Windows Phone平台应用开发者提供了很好的消息推送解决方案。实际上Google也为Android平台提供了C2DM的解决方案供开发者使用, 但是由于多方面的原因,Android开发者在国内使用C2DM有诸多困难。对于这个普遍存在的问题,本次演讲将和大家一起探讨可能的替代方案, 如:定时请求, SMS,第三方服务,自己搭建消息服务器等方式。通过对这些方式优缺点的剖析和比较,带给开发者一些方向上的建议, 帮助开发者选择适合自身需求和条件的方案。
讲师简介:徐仙明,友盟资深安卓开发工程师,主要负责友盟交换产品SDK端开发工作。 兴趣包括:Android应用开发,移动互联网平台上的大数据分析和挖掘,机器学习, 移动平台安全性等。
推荐指数:3星
推荐理由:很受关注的话题,很认真的幻灯片准备,很全面的解决方案的总结,很诚恳的投石探路的讲述。
不足之处:内容略微浅显了一些。
现场评分:3.4
【讲师现场靓照】
【幻灯片在线观看】*:
<iframe src="http://www.slideshare.net/slideshow/embed_code/13839358" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen=""> </iframe>
备注:* 因为炫姐姐对SlideShare这一平台的偏爱,尽管需要使点小技巧才能上传分享,但是炫姐姐还是坚持选择了这一功能强大却简洁好用的平台。一来对国外这些开发出优秀的工具和平台、造福于互联网和人类的团队表示致敬,二来则是对国内对于这些优秀的工具和平台的限制表示一下立场。读者如果不能正常浏览,那么需要像炫姐姐一样用点小技巧。而对于那些还是不知道炫姐姐在说什么的小白读者,可以移步到这里查询原因。
【幻灯片下载页面】:Android DevCamp幻灯片下载:Android消息推送实现 | 友盟 徐仙明 -来自CSDN下载频道(不需要积分,自由下载)
【幻灯片内容刚要】:
- 1. Android DevCampProduced by CSDN
- 2. Android 消息推送 投石问路 徐仙明
- 3. 是什么?Source: http://the-gadgeteer.com/2009/10/30/day-3-android-basics-on-verizons-droid/
- 4. ? 是什么 消息 推送 例子 • ⼀一段文字 • 用户不需要主动刷新 • ⼀一种设计模式 Publish/ subscribe • ⼀一个指令
- 5. 大佬们 Apple • APNS (“A” for “Apple”, not “Android”) Google • C2DM -> Google Cloud Messaging (GCM) Microsoft • Direct Push, Exchange ActiveSync, long lived https RIM • Push Technology, Push Mail Nokia • Symbian, Push mail
- 6. Google 的方案 – GCM for Android
- 7. Google Cloud Messagingl 从C2DM (Cloud to Device Messaging)发展而来l 参考: • Google Cloud Messaging for Android http://developer.android.com/guide/google/gcm/index.html • Google IO 2012: Google Cloud Messaging for Android https://developers.google.com/events/io/sessions/gooio2012/100/ • Google IO 2010: Building push applications for Android http://dl.google.com/googleio/2010/android-push-applications- android.pdf
- 8. GCM case study -- Chrome to Phone Source: Google IO Chrome to Phone
- 9. 组成 Mobile Device Applica tion Server GCM Servers Sender ID Application Sender Auth ID Token Credentials Registration Google User ID AccountReference: http://developer.android.com/guide/google/gcm/gcm.html
- 10. GCM Service your app app server 1.1. app_id, sender_id1.2. app_id, sender_id, device_id 2.1. REG_ID 2.2. REG_ID 3. REG_ID 4. REG_ID, API Key, message 5.1. message 5.2. notification
- 11. 步骤 注册 Android设备把使用C2DM功能的用户账户(比如android.c2dm.demo@gmail.com)和App名称发送给C2DM服务器。 接收GCM服务器返回REG_ID C2DM服务器会返回⼀一个registration_id值给Android设备,设备需要保存这个registration_id值。 发REG_ID 到应用服务器 应用把registration_id和用户标识发送到自己的服务器。 应用服务器发送数据到GCM 服务器 应用服务器把要发送的数据和registration_id以及认证发送给C2DM服务器。 GCM把数据推送到Android设备 Android设备只要在程序中按之前和服务器商量好的格式从对应的key中获取数据即可。
- 12. GCM 非常好 但是 … Google Play (Android Market) Google 账户 • 魅族, 华为等诸多国产手 机 >= Froyo (2.2) • 94.6%, as of 2012/07/25 服务器在美国 • 服务不可靠 • app server 最好放在国外
- 13. 小甜点发送数据服务器域名SSL签名不可靠 (as of 2012/07/25) • https://android.apis.google.com/c2dm/send
- 14. 除了GCM http://www.push-notification.org/ DIY http://www.pubnub.com/ http://getsocialize.com/ http://urbanairship.com/ http://www.android-push.com/
- 15. DIY有多复杂? 网络不稳 定 • GPRS, 3G 高并发 • 500k 电池容量 小 • 1400mAh http://developer.android.com/guide/google/gcm/adv.html#retry
- 16. Source: http://dl.google.com/googleio/2010/android-push-applications-android.pdf
- 17. DIY 几种方法 • 实时 • 实时SMS 轮询 (Polling) 持久连接 (Persistent TCP/IP) • 要花钱 • 实现容易 • 服务进程? • 架构简单 • 并发? • 不够实时 • DDOS? • 周期? 机制? • 耗电
- 18. 自力更生 mqtt androidpn RSMB / OpenFire masquitto wmqtt.jar asmack MQTT XMPP
- 19. mqtt -- an experiment by Anton Lopyrev 服务器: Masquitto / RSMB 客户端: 客户端无认证 wmqtt.jar IBM连接数量有限 制 协议: MQTT 持久 TCP • Ping to keep Topic: alive device id • Wake Lock / AlarmManagerReference: http://dalelane.co.uk/blog/?p=1599http://tokudu.com/2010/how-to-implement-push-notifications-for-android/
- 20. androidpnl 开源项目 • http://sourceforge.net/projects/androidpn/l OpenFire + Spring + MINA+ ASMACK +XMPPl XMPP • 分布式 • 安全: SASL及TLS • 开源 • 跨平台: XML
- 21. androidpn 服务器: openfire Long 客户端: Polling asmack androidpn Topic: 协议: device XMPP id Mina: async IO
- 22. C500k -- Urban Airship 的实验 Implementation Connections Memory Used Java Pure NIO 512,000 + 2.5 GB Java w/Netty 330,000 2.2 GB Scala w/Netty 173,000 1.5 GB Source: http://urbanairship.com/blog/2010/08/24/c500k-in-action-at-urban-airship/
- 23. C500k -- Urban Airship 的实验l Linux Kernel Tuning 64bit • fs.file-max = 999999 • net.ipv4.tcp_rmem = 4096 4096 16777216 • net.ipv4.tcp_wmem = 4096 4096 16777216l Java NIO Source: http://urbanairship.com/blog/2010/08/24/c500k-in-action-at-urban-airship/
- 24. 但是,中国还没有成熟的第三方消息推送服务提供商
- 25. 嗯, 看来那个码农说这个太复杂了 的没错, 没那么简单, 我搞不定了 我们这个版本就不上 推送功能了吧。 如果明天不下雨, 我去车库咖啡投个 团队做这个
- 26. Thank you
分享到:
相关推荐
安卓应用实用功能的技术实现:《Android消息推送实现》 | Android DevCamp | 7月28日 北京 主题简介:作为移动应用开发的一个重要需求,微软和苹果公司分别为iOS和Windows Phone平台应用开发者提供了很好的消息推送...
逆向工程技术详解:《揭开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现》 | iOS DevCamp 话题简介:在AppStore中经常会出现各种令人耳目一新的App,他们是如何实现那些效果的?他们又是使用哪些公共组件来完成...
友盟+消息推送Demo,友盟+消息推送Demo,友盟+消息推送Demo
C#进行友盟消息推送post实例
友盟消息推送Java后端,简单集成于springboot,推送次数限制用redis缓存JAVA后端要推送消息给前端的话一般要做定时任务或者轮询,不然就只能等前端请求才能给回应。
详解讲解友盟推送的具体操作步骤,教你快速学会使用推送功能,本人亲测,文档总结,非常给力,没有官方文档的淀余
友盟消息推送官方sdk包和demo,方便大家下载,资源不是很好,有待大家发现更好一起分享
友盟推送:全域数据建立精准的消息推送平台,为开发者提供更灵活、更智能、更有效的消息推送方案,有效提升用户粘性,提高App活跃度。
android友盟推送3.1.0SDK
Android 集成友盟消息推送功能,代码简单易懂,适合新手。我的博客主页:https://blog.csdn.net/k571039838k
友盟消息推送 自定义界面,用户可以参考代码 进行修改 或者有问题进行指正
友盟推送android,android友盟推送,android友盟推送。友盟推送android,android友盟推送,android友盟推送。
实现了友盟分享推送第三方登录功能,demo直接可用,使用友盟的社会化分享功能
友盟推送配置教程,详细的截图说明,带你实现友盟推送的相关证书推送等。iOS
友盟推送集成写的demo
友盟消息推送,帮助开发者建立于用户直接沟通的渠道。将APP的内 友盟推送PushSDK 友盟推送PushSDK 容更新或者活动通知主动推送给终端用户,让用户第一时间获取到相关信息,有效提升用户活跃度和忠诚度。
react-native集成友盟推送
友盟消息推送Java后端,简单集成于springboot,推送次数限制用redis缓存友盟消息推送Java后端,简单集成于springboot,推送次数限制用redis缓存
Android-友盟第三方登录、分享实现