使用另一个APK的Java类

问题描述 投票:-1回答:1

由于许可证的考虑,我想分发我的Android应用程序,作为2个独立的APK。第一个APK包含开源库,第二个包含prorietary代码。在技​​术上是否可以在第二个APK中直接调用第一个APK中的类,而不使用AIDL?

android
1个回答
0
投票

最后,我成功完成了以下操作:

  1. 我创建了一个新模块,用于构建库。在这个模块中,我添加了2个gradle任务,首先构建一个.jar,然后构建一个.dex

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'
}
  1. 我创建了一个新的应用程序,其AIDL服务允许下载文件my.dex.jar的内容
  2. 在我原来的应用程序中,我下载了my.dex.jar文件,并将dex加载到内存中。在我的原文中,我在文件my.jar上使用了一个dependecy,并且我指定它不应该插入到APK中:

dependencies {
   provided files('../my_library/build/outputs/my.jar')
}
© www.soinside.com 2019 - 2024. All rights reserved.