动态jar包技术是一种动态引用技术,即平台提供一个空的静态jar包给第三方应用,保证第三方应用引用到jar包中的接口时能编译通过,而接口的具体实现却是在平台系统层动态实现,表面上应用层引用的是静态jar包中的接口,实际调用的却是本平台终端动态jar部署的接口。
优点:实现了代码解耦,模块清晰化;平台在不影响第三方使用的前提下可动态修改接口的实现,封装灵活性更高;上层应用无法查看接口的具体实现,版权保密性更高;
缺点:上层应用引用动态jar包之后在gradle、打包和清单文件中的配置增多,否则不能正确引用;平台还需要生成。具体配置参考以下注意点。
下面以生成com.haming.xxx.jar为例说明具体需要配置的地方。
应用引用动态jar包注意点:
1)、由于jar包中很多接口调用到Android原生系统接口,要求三方应用拥有系统权限”android.uid.system”,具体配置参考以下代码片段:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.haming.xxx"
android:sharedUserId="android.uid.system">
2)、另外需要在清单文件中加入