如何设计一款稳定、好用、安全的推送SDK?( 三 )


(3)多样化需求
通过丰富的画像标签 , 对用户进行场景化的智能推送 , 满足用户的多样化需求 。
(4)策略可控
我们还提供静默时间、推送控量、短信补量、定时展示等附加功能 , 满足客户的实际使用场景 。
4. 安全
如何设计一款稳定、好用、安全的推送SDK?
本文插图
SDK设计开发过程中 , 我们还需要注意安全性 。 安全性不仅仅代表网络数据交互的安全、本地数据存储的安全 , 也涉及到 SDK 的加固、混淆、第三方安全软件审核等 。
其中 , 我们重点讲解SDK的加固 。 目前安卓平台SDK绝大部分都是Java语言编写 , 容易被反编译 。 SDK如果只是进行了简单的混淆 , 很容易被窥探到内部实现细节 , 此外还可能存在SDK被二次打包、植入恶意广告等现象 。 因此 , 我们需要对SDK进行加固 , 以提升安全性 。
如上图所示 , SDK的加固主要是Java层面和so层面的操作 。 Java层面可以进行SSR IR指令转换或者做Java2C处理 , 把实现细节放入native中;so层面可以做一些扁平化、虚假控制等来混淆代码 , 也可以通过指令替换、指令跳转逻辑来增加逆向难度 。 此外 , 也可以通过常量字符串加密加固SDK , 这是目前较为简单实用的一种方式 。
现在看来 , 要设计开发一款好的SDK最难的还是如何让自己设计的SDK在复杂的环境下稳定运行 , 这需要我们对 SDK 的架构有比较清晰的认知 , 并不断迭代和优化 。
那么以上提到的四点 , 也是各位产品经理和开发者需要注意的 , 希望对大家有所帮助 。
作者:叶新江 , 个推CTO
本文由 @个推 原创发布于人人都是产品经理 , 未经许可 , 禁止转载 。
【如何设计一款稳定、好用、安全的推送SDK?】题图来自 Unsplash , 基于 CC0 协议


推荐阅读