【移动应用开发技术】打造百亿量级、亿级日活SDK的十大关键要点_第1页
【移动应用开发技术】打造百亿量级、亿级日活SDK的十大关键要点_第2页
【移动应用开发技术】打造百亿量级、亿级日活SDK的十大关键要点_第3页
【移动应用开发技术】打造百亿量级、亿级日活SDK的十大关键要点_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】打造百亿量级、亿级日活SDK的十大关键要点

一个好的SDK应该具备易用性、稳定性、轻量、灵活的特点,而个推作为国内第三方推送市场的早期进入者,一直致力于为开发者提供高效稳定的推送SDK。经过十年的深耕与创新,个推夯实了行业地位。截止2019年6月,个推SDK累计安装量超440亿,日活独立设备数达4.3亿,并成功服务了人民日报、新华社、微博、马蜂窝、酷我音乐等一系列明星APP。辉煌数据的背后是强大的技术支撑。这期文章,我们特地采访了个推Android资深开发敬瑜,以个推推送SDK为例,来聊聊打造大型SDK的关键技术点。作者个推Android资深开发敬瑜

01开发SDK和开发APP有什么联系?APP和SDK两者关系密切,APP是SDK的主要载体,SDK则是APP开发所需的重要工具。从研发者的角度来看,SDK开发和APP开发均属于Android顶层应用开发,并无本质区别,两者的目的均是要提供产品给客户使用;但从商业角度来讲,APP是toC的产品,用户是广大群众;而SDK则是toB的产品,用户为广大开发者,两者在运营模式上有所不同。

02SDK开发最关键的点是什么?SDK没有UI交互,用户使用APP时并不会感知到SDK的存在。但是作为APP的重要部分,SDK的性能直接影响着APP的性能,也间接影响着用户在使用APP时的体验和感受。总结个推推送SDK的开发经验,我们认为SDK开发最需要注意的是其稳定性。作为一款第三方SDK,稳定性是第一要素,我们要保证推送SDK在不同环境下(APP、终端设备等)都能正常运行。要想保障稳定性,复杂环境的兼容是关键。减少使用非SDK接口也有助于提升稳定性。除了稳定性外,以下几个问题对于打造优质SDK也很重要。

03SDK版本适配以及厂商兼容情况如何?个推SDK支持Android端和iOS端,以下文章均使用Android端来举例。截止目前,Android系统从07年发布第一版至今,经历了多次迭代,AndroidQ为其最新版本。个推AndroidSDK支持Android2.3及以上版本,几乎可以在市面上现存的所有Android版本上运行。**1)版本适配**

APP主要在手机上运行,若想APP在Pad、电视之类的智能设备上运行,则基本需要单独适配,也就是说,APP会根据其使用环境调试相应的版本。而SDK的运行环境相对复杂,我们根本不知道自己开发的SDK会在什么样的环境下运行,可能是手机、Pad、电视,也可能是车载设备,甚至是冰箱等智能家居设备。这类设备的Android系统版本从2.3至10.0不等。我们在开发SDK的时候需要尽量地向下兼容。为此,个推推送SDK依旧保留着对Android2.3系统的兼容。**2)厂商兼容**

一个成熟的SDK势必要保证在不同的厂商设备上正常运行,尤其是当SDK内部涉及到Android四大组件时需要特别注意厂商的兼容性,注意其是否会限制固定action的广播使用及限制固定类名service的启动。而如果SDK开发涉及到Androidframewrok的引用,某些功能可能会失效。比如AndFix的底层实现依托于Art/Dalvik虚拟机的架构,但是大部分厂商会对虚拟机进行定制,修改底层ArtMethod结构,这时,AndFix将无法在修改过虚拟机的设备上生效。所以在SDK开发过程中我们要尽量避免AndroidFramework的引用。个推在使用Android四大组件的时候,会要求开发者提供自定义Service,其Service只需要继承个推默认的即可,这样可以保证SDK在不同厂商上均能正常运行。

04怎么看待现在市面上的SDK广泛支持多混合开发这一现象?大前端开发是必然的趋势,现在新推出的产品会优先使用混合开发,保证一套代码可以在多个终端上运行。因此,一个成熟的SDK有必要对不同的语言框架进行适配。目前,个推SDK不仅支持Android、iOS系统,还支持混合开发,如unity3dcocos2dxreact-nativefluttercordovaapicloud等。具体见

个推实验室

05AndroidSDK是否会使用开源项目?不会使用。

有以下几点考虑:

06如何适配海外市场环境?开拓GooglePlay市场是各大互联网公司的长远规划之一。个推AndroidSDKGooglePlay版本自发布以来,积极适配复杂的海外环境,为海外App消息的稳定下发提供强大的支撑和保障。为了有更好的用户体验,个推推送SDK还在国外众多地方布置了机房,以保证推送的到达率。另外,个推推送SDK还需要对GooglePlay制定的各种规则进行适配,以及还要考虑不同国家不同版本机型的适配问题。这要求我们在开发过程中尽量使用Google生产的手机进行调试与测试。

07SDK如何降低手机电量、流量的消耗?为了给用户更好的使用体验,我们会尽可能地降低SDK对电量以及流量所造成的消耗。为此,我们不会使用蓝牙这类电量消耗较高的工具。此外,我们还会采用多链路合并技术来节约流量。为了准确地了解所耗电量、流量的降低情况,我们还会做一个全面的测试。每次发版之前,我们都会采用严格的测试标准,使用特定的APP进行电量压测。为了尽可能地排除外来因素的干扰,保证测试的准确性,我们往往会使用集成了个推推送SDK的APP来测量。常见测量APP的方式有Batterystats&bugreport和BatteryHistorian。具体细节可以自行查阅PowerProfile.java和power_profile.xml的使用与原理。

08如何自主检测SDK的异常?经过近10年的优化与升级,个推推送SDK的异常情况已经控制在一个非常非常低的水平,但因为Android市场碎片化非常严重,SDK在如此碎片化的环境下运行难免会出现各种意想不到的突发情况,为此我们专门开发了SDK运行自查系统,类似于精简版的bugly。该内部产品与SDK相辅相成,可以自主检测SDK的异常情况,并在发现异常后主动上报。其次,在代码层面,我们也做了一些防控,避免SDK因为异常而导致无法正常使用。另外,我们还成立了技术支持团队,服务广大的开发者,定期回访客户,帮助解决客户遇到的问题。

09开发SDK还有什么是需要注意的么?SDK开发过程中,我们还需要注意安全性。安全性不仅仅代表网络数据交互的安全、本地数据存储的安全,也涉及到SDK的加固、混淆、第三方安全软件审核。举例来说,个推AndroidSDK提供了四大组件的对接,SDK内部会特别注意,避免这些组件被反序列化攻击。为了让开发者更加放心地使用我们的SDK,我们公司内部建立了严格的安全管理机制,来保障SDK的安全性。

10对SDK开发者有何建议?其实从AndroidAPP诞生开始,SDK的开发就从未中断过。SDK开发者与APP开发者的工作内容基本相同,但是开发SDK更注重对Java语言以及Android底层的理解。如果大家想从事AndroidSDK开发,建议多研究Java的相关知识,深入理解

Androidframework层。开发SDK并不难,难的是如何让自己开发的SDK在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论