打造百亿量级,亿级日活SDK的十大关键要点

  

一个好的SDK应该具备易用性、稳定性、轻量、灵活的特点,而个推作为国内第三方推送市场的早期进入者,一直致力于为开发者提供高效稳定的推送SDK。

     

经过十年的深耕与创新,个推夯实了行业地位。截止2019年6月,个推SDK累计安装量超440个亿,日活独立设备数达4.3亿,并成功服务了人民日报,新华社,微博,马蜂窝,酷我音乐等一系列明星应用。辉煌数据的背后是强大的技术支撑。

     

这期文章,我们特地采访了个推安卓资深开发敬瑜,以个推推送SDK为例,来聊聊打造大型SDK的关键技术点。

     

作者个推安卓资深开发敬瑜

     

  

     

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

     

  

     

SDK没有UI交互,用户使用应用程序时并不会感知到SDK的存在。但是作为应用程序的重要部分,SDK的性能直接影响着应用程序的性能,也间接影响着用户在使用应用程序时的体验和感受。总结个推推送SDK的开发经验,我们认为SDK开发最需要注意的是其稳定性。

     

作为一款第三方SDK,稳定性是第一要素,我们要保证推送SDK在不同环境下(APP,终端设备等)都能正常运行。要想保障稳定性、复杂环境的兼容是关键。减少使用非SDK接口也有助于提升稳定性。

     

除了稳定性外,以下几个问题对于打造优质SDK也很重要。

     

  

     

个推SDK支持端Android和iOS端,以下文章均使用Android端来举例。

     

截止目前,Android系统从07年发布第一版至今,经历了多次迭代,Android Q为其最新版本。个推Android SDK支持Android 2.3及以上版本,几乎可以在市面上现存的所有安卓版本上运行。

     

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

     

* * 2)厂商兼容* *   
一个成熟的SDK势必要保证在不同的厂商设备上正常运行,尤其是当SDK内部涉及到安卓四大组件时需要特别注意厂商的兼容性,注意其是否会限制固定行动的广播使用及限制固定类名服务的启动。而如果SDK开发涉及到Android framewrok的引用,某些功能可能会失效。比如AndFix的底层实现依托于艺术/Dalvik虚拟机的架构,但是大部分厂商会对虚拟机进行定制,修改底层ArtMethod结构,这时,AndFix将无法在修改过虚拟机的设备上生效。

     

所以在SDK开发过程中我们要尽量避免Android框架的引用。个推在使用安卓四大组件的时候,会要求开发者提供自定义服务,其服务只需要继承个推默认的即可,这样可以保证SDK在不同厂商上均能正常运行。

     

  

     

大前端开发是必然的趋势,现在新推出的产品会优先使用混合开发,保证一套代码可以在多个终端上运行,因此,一个成熟的SDK有必要对不同的语言框架进行适配。目前,个推SDK不仅支持Android, iOS系统,还支持混合开发,如unity3d cocos2dx react-native颤振科尔多瓦apicloud等。具体见   个推实验室

     

  

     

不会使用。   
有以下几点考虑:

     
      <李>使用开源项目会增加包的体积;李   <李>不能保证开源项目支持复杂的终端环境;   
    -客户的应用可能已使用开源项目,将导致编译失败;
     

  

     

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

打造百亿量级,亿级日活SDK的十大关键要点