因工作需要,想要在提供一种能力,供三方apk进行调用,通常的解决方式就是通过提供aar给到三方apk进行继承。但是这样的方式就会有一个明显的缺陷,就是在资源文件众多的时候,aar文件会变得非常大,进而导致三方apk的包体变大。这样显然是不利于三方进行接入,并且在多个apk集成后,同样的内容在同一个系统中打包了多份,这显然也不是我们想要的。这个时候,shared-library就十分符合我们的诉求。
网上搜索了半天,关于sharedlibrary实在是少之又少,因此经过一番周折以后,我觉得有必要为后续碰到问题的人提供一点帮助。
接下来我会一步一步得介绍如何创建一个自己得共享库。
这个其实就比较简单,直接看官方文档就可以,放上官方文档就不再进行详细解释。
https://developer.android.google.cn/guide/topics/manifest/uses-library-element?hl=en
如图,为了保险起见,我们把所有的资源文件也全给删了
然后,我们先创建一个普通的类,只有一个测试方法
public class LibMain {
public int getMyNumber(int a) {
return a * a;
}
}
AndroidStudio使用aapt进行编译,aapt可以添加对应参数表明当前项目需要编译为系统共享库,此处是重点,考试会考,基本是本文最主要的部分。添加系统共享库编译参数
aaptOptions {
aaptOptions.additionalParameters("--shared-lib")
}
在项目的AndroidManifest.xml中添加library声明,添加至application中间,如下
<application
android:allowBackup="true"
android:supportsRtl="