一、前言
在我们项目开发迭代过程中,总是不可避免的出现新增、删减需求的情况,其中可能是多个项目有类似需求,这时候,封装库的好处就体现出来了。代码重用、提高开发效率,开发者调用可能仅仅是一行代码,既不破坏原有的代码结构,其简单的使用方法也减少了开发者移植代码的工作。
二、实现
在Android Studio中我们可以选择两种库的形式:jar和aar。jar只包含了Class文件与清单文件(也就是代码文件与xml配置文件),不包含资源文件(如图片等所有res中的文件);aar则包含所有资源,Class文件与清单文件以及res资源文件全部包含。也就是说,如果只是一个简单的类库,那么使用生成的jar包即可;如果是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用aar包。
- 首先,在一个demo项目基础上创建Module:“File -> New -> New Module”,这里我们选择Android Library,输入Module name和Package name后点Finish。
- 创建完成后,工程下的settings.gradle里会出现include ‘:xxx’,代表你的项目工程下包含了这个Module,但这时候工程下app里还不能使用这个Module,需要在app下的build.gradle里dependencies结构体中加入implementation project(path: ‘:xxx’); 。
- 基于封装的思想,我们可以在这个Module里面实现我们的需求,仅提供简易接口让外界访问和调用,具体实现业务需求的代码和方法则私有化。而对于不同项目的业务信息,我们也可以针对性的设计接口以方便调用者根据自身项目需求自定义开发,将业务跟功能剥离开。
- 最后,选中工程下的Module,点击“Build -> Make Module ‘XXX.xxx’”,在build/outputs/aar/下生成aar包。如果不涉及UI功能,但使用了Android API(比如Context),我们也可以使用build/intermediates/aar_main_jar/下的classes.jar。
- aar包和jar包的使用方法也很简单,在app下的build.gradle里的dependencies结构体中加入implementation(name:‘xxx’, ext:‘aar’); ,jar包则是implementation files(‘libs/xxx.jar’); 。
三、总结
封装库其实也是模块化开发的一种体现,归根结底我们的目的只是为了减少重复的工作,提高代码可读性、健壮性,方便使用。