博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简述Android SDK制作流程
阅读量:5243 次
发布时间:2019-06-14

本文共 1280 字,大约阅读时间需要 4 分钟。

  1. SDK“坑不坑”?
  2. SDK“难不难”?
  3. 如何封装用户接口? 
  4. Android Studio 打包混淆aar

1 . SDK“坑不坑”? 

没有接触过SDK研发的人可能不觉得,SDK研发费时费力,并且没有什么成就感。你写的做的,最终结果你并不能看到。最重要的是,一个SDK完成后,你会感觉到居然什么都没有得到?(有点小夸大哦)当对于普通的APK研发,SDK还是比较坑的。


2 . SDK“难不难”? 

在eclipse时代,怎么加载类?怎么加载资源?怎么让开发者更快更简单的接入?还是比较困难的。


3 .如何封装用户接口? 

以上两点都是在扯。言归正传,如何让自己的SDK更安全?让自己的逻辑对用户完全透明? 
* 利用好混淆 
* 建造者模式 
先看下我SDKdemo的目录结构 

这里写图片描述

总体的架构采用MVP。最近超喜欢用这种模式,比MVC更好理解,解耦性更好,就是接口写的多了点。重点看admin包。这个包的主要功能是暴露给用户的。也就是说SDK中一切提供给用户的API接口都写在这个包中。当混淆时候只忽略这一个包即可。建造者模式构建用户接口,优缺点不必多说。唯一重点想提的一个小细节。

 

@Override    public void GoToActvity(Context context) {        if (Constant.sdkInstance.getUserAppName() == null) throw new IllegalArgumentException("UserAppName can not be null"); if (Constant.sdkInstance.getUserChannel() == null) throw new IllegalArgumentException("UserChannel can not be null"); if (Constant.sdkInstance.getUserKey()==null) throw new IllegalArgumentException("UserKey can not be null"); Intent intent = new Intent(context, SdkActivity.class); context.startActivity(intent); }

像这种异常一定要跑出来让接入者看到,会让你省去很大麻烦。demo我会在最后贴出下载地址。 


4. Studio 打包混淆aar 

首先配置混淆,在你的SDK项目build.gradle中配置,如图 

这里写图片描述

其次配置你的proguard-rules.pro文件,这里提供一个模版哦, 非常不错。然后就可以生成aar包了,第一你可以运行下项目(这种太low)。或者你可以在控制台下输入gradlew如图。 

这里写图片描述

最终你的aar会生成在这里。。。上图

这里写图片描述

 

对了,如何使用aar那?

这里写图片描述 

具体代码详情请看github 转载:

 下载地址:

转载于:https://www.cnblogs.com/akiha/p/6404546.html

你可能感兴趣的文章
java 企业站源码 兼容手机平板PC 响应式 主流SSM框架 freemaker 静态引擎
查看>>
AliOS编译安装MyRocks
查看>>
JS博客
查看>>
Docx转Doc操作(c#)
查看>>
Docker——error pulling image configuration
查看>>
一条简单的 SQL 执行超过 1000ms,纳尼?
查看>>
Python函数(一)之杵臼之交
查看>>
关于将qt作为max插件ui库所遇到的困难
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
SendMail与Postfix的架构备忘
查看>>
paip.mysql 性能测试 报告 home right
查看>>
Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx...
查看>>
283. Move Zeroes把零放在最后面
查看>>
我的函数说明风格
查看>>
ssh 简介
查看>>
26.无向网邻接表类
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
洛谷 p1352 没有上司的舞会 题解
查看>>
Python 数据类型
查看>>