由于许可考虑,我想将我的Android应用分发为2个独立的APK。第一个APK包含开源库,第二个包含prorietary代码。在技术上是否可以在第二个APK中直接调用第一个APK中的类,而不使用AIDL?
答案 0 :(得分:0)
最后,我成功完成了以下操作:
task makeJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('build/outputs/')
include('classes.jar')
rename('classes.jar', 'my.jar')
}
task makeDex(type: Exec) {
workingDir "${projectDir}"
commandLine android.sdkDirectory.path + '/build-tools/27.0.3/dx.bat', '--dex', '--output=build/outputs/my.dex.jar', 'build/outputs/my.jar'
}

我创建了一个新的应用程序,其中包含允许下载文件内容的AIDL服务my.dex.jar
在我原来的应用程序中,我下载了my.dex.jar文件,并将dex加载到内存中。在我的原文中,我对文件my.jar使用了依赖,并且我指定它不应该插入APK:
dependencies {
provided files('../my_library/build/outputs/my.jar')
}