• android SDK开发经验总结



    SDK开发经验之谈:
    一、SDK是什么?包含特定功能的软件开发工具包。
    二、这个工具包应该具有什么样的特征?
    1-简洁易用
      ①一个好的SDK,应该让使用者不用花太多时间去学习如何使用。接口尽量简单易懂,包括接口命名,形参命名,以及异常抛出,都要明确。最好每个API都有对应注释。方便进入源码查看。
      ②另外,一个SDK 包(比如android里面aar),它对外开放的最好只有一个类,由它作为整个SDK的入口。

      ③不要依赖外部的其他的第三方包或者库,因为这样,会受到其他库的牵制,使用起来也不方便。

      反正一句话,SDK要做成傻瓜式的。
    2-安全
      ①SDK不应该入侵宿主代码,也就是说,SDK最主要的作用,应该是接收参数以及输出结果,不能将 调用API时传入的某些对象进行改造。(比如,传入了一个ArrayList,SDK内部对这个list进行了增删,这种类似的动作最好不要做);
      ②由于android 的apk,或者SDK 的aar包,都是可以被反编译的,虽然可以用混淆的方式来稍微抵抗一下反编译,但是还是有可能泄漏核心代码。对于这种情况,使用JNI调用核心代码的方式,将核心代码放在动态库文件so里面,是不错的解决办法。
      ③权限最小原则,本SDK内不需要用到的权限,就不要在注册文件里面写。
    3-稳定
      ①SDK的迭代周期相对较长,也就意味着,一个版本的SDK可能会维持很长时间,这段时间之内,要保持接口始终可用。
      ②另外一点,如果遇到了SDK迭代,需要删除某些API,也不能立即删除,而是要先标记该方法过时,然后在下下次迭代时,予以@hide,或者直接删除。
      ③android版本很多,为了让SDK兼容更低的版本,有时候需要在一些方法的上头加上可调用的最低SDK版本号,或者在java代码中判定当前的SDK版本,然后根据不同版本走不同的程序分支。
    4-高效
      ①如果程序运行过程中进入了SDK的某个接口,然而这个接口的执行效率相当低,拖慢了整个程序执行的效率。那么这种SDK是不合格的。
      ②编写SDK内部代码,应该注意尽量减少内存损耗,电量损耗,CPU占用等;当然,如果直接在SDK内部就造成了内存泄漏,那么这个SDK肯定不合格。

  • 相关阅读:
    Spring IoC 容器概述
    OpenSSL生成SSL证书
    吴恩达老师深度学习课程Course4卷积神经网络-第二周课后作业
    吴恩达老师深度学习课程Course4卷积神经网络-第一周课后作业
    PageHelper在SpringBoot的@PostConstruct中不生效
    一个关于List的IndexOutOfBoundsException异常记录
    Mysql中通过关联update将一张表的一个字段更新到另外一张表中
    logback 常用配置(详解)
    Insert into select语句引发的生产事故
    Redis为什么变慢了?常见延迟问题定位与分析
  • 原文地址:https://www.cnblogs.com/hankzhouAndroid/p/8955886.html
Copyright © 2020-2023  润新知