一,什么是SDK
脑暴一下,一个好的sdk具备的特点:
1.简单的使用说明
2.基本功能
3.权限校验
4.灵活的更新方式
5.友好提示:如参数合法性检验,对边界的严格检查
6.sdk体积
7.API职责的合理划分
8.易用性/稳定性/灵活性/资源开销
工作中接触的项目有适配其他合作方的sdk,具体实现是:合作方将其基础功能打包成sdk提供给我们,我们集成后,做出面向用户的产品。有时候感觉只是做了个UI,核心功能在合作方那里。稍许失落。不过这也是一种开发模式,不是所有的东西都需要自己造。
现在对工作中适配sdk做一个总结,遇到那些问题,以及思考怎么做一款优秀的sdk。
项目A:集成腾讯/安天/avast等合作的病毒引擎,做一款手机上杀毒的工具
病毒引擎AVAST
该引擎的SDK结构是:AVAST.RSA+AVAST.apk+jar包
1.AVAST.RSA:该文件是AVAST.apk文件中的签名信息文件即:META-INF/ANDROID.RSA
通过keytool -printcert -file AVAST.RSA查看,发现两个文件输出的签名md5是一样的:
所有者: EMAILADDRESS=android@avast.com, CN=avast! Android,