美文网首页
Android SDK接口设计

Android SDK接口设计

作者: 冰雨9527 | 来源:发表于2022-02-06 22:16 被阅读0次

    设计一个SDK,有两个明确的原则贯穿始终:

    一是:最小可用性原则,即用最少的代码,如无必要勿增实体;
    二是:最少依赖性原则,即用最低限度的外部依赖,如无必要勿增依赖。

    在本系列开篇文章中提到了SDK开发的两个原则:

    一是:最小可用性原则,即用最少的代码,如无必要勿增实体;
    二是:最少依赖性原则,即用最低限度的外部依赖,如无必要勿增依赖。
    SDK开发中,需要尽量避免依赖第三方库,使用通用的Android SDK自带的官方库能满足需求即可,以免引起不必要的冲突或者三方库不要放到lib包下,默认打包进去封装过程中的aar二次打包问题;

    比如,不要为了一个简单的JSON数据转换就引入Fastjson 、Gson之类的第三方json解析转换库。

    如果确实因为项目需要,要引入一些开源库,可以通过源码集成的形式引入,再更改一下包名,避免集成冲突。




    8.jar文件路径,为你Project中,Module目录下,build-intermediates-bundles-debug目录中,jar文件可更改名称。
    如本编此项目最后导出的jar文件路径为 E:\Install\AndroidStudioProjects\SdkDemo\sdk\build\intermediates\bundles\debug


    9.aar文件路径,为你Project中,Module目录下,build-outputs-aar目录中, 如本编此项目最后导出的aar文件路径为
    E:\Install\AndroidStudioProjects\SdkDemo\sdk\build\outputs\aar


    最后,补充一些概念。

    1.SDK中的所有内容,除了之前创建声明过的那个Activity以外,都是没有生命周期的。

    2.jar包不包含资源文件,一般为纯代码。aar包中含有诸如图片之类的资源文件。


    三、SDK包大小与集成增量

    首先我们要区分一下这两个概念:

    SDK包大小:是指SDK包如AAR文件的大小,所占体积;

    SDK集成增量:是指APK集成AAR后的增量,也就是集成前后的APK体积差值。

    这里可以明确的是:集成AAR后的APK体积<集成AAR前的APK体积+AAR体积。举个例子:假如AAR有30M,APP集成该AAR后的增量一般都不会超过30M。而增量具体多少,跟主工程的实际资源或者依赖配置有关。而另一种可能,某些AAR只能支持一种ABI,集成时为了适配而修改了配置,最终反而使得整个APK的体积变小。

    因此,为了科普这一概念,不妨在SDK文档或产品说明中备注SDK包大小以及预估的集成增量。对于APK大小敏感的用户就可以有一些心理准备。


    APK 包含如下目录:

    META-INF/:包含 CERT.SF 和 CERT.RSA 签名文件,以及 MANIFEST.MF 清单文件。
    assets/:包含应用的资源;应用可以使用 AssetManager 对象检索这些资源。
    res/:包含未编译到 resources.arsc 中的资源。
    lib/:包含特定于处理器软件层的已编译代码。此目录包含每种平台类型的子目录,如 armeabi、armeabi-v7a、arm64-v8a、x86、x86_64 和 mips。


    三、Application多继承

    作为一个SDK提供方,假如你的SDK需要用户继承你的Application,我觉得应当提供一个Application多继承的解决方案,毕竟用户可能不仅仅只用你一个SDK,当有多个SDK有这个需求时就尴尬了。
    java 多继承,这里的需求是继承两个类,并不是通过实现接口的方式“继承”多个接口上的方法声明。语言原生不支持,这样就比较麻烦了。解决办法如下:
    通过接口实现 + 反射 的方式来创建代理Application对象,曲线实现Application的多继承,由于代码较多,这里就不贴源码了,解决方案:ApplicationProxyDemo 源码配合注释食用,风味更佳!

    相关文章

      网友评论

          本文标题:Android SDK接口设计

          本文链接:https://www.haomeiwen.com/subject/cwkpkrtx.html