有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java隐藏了Android库的类

我有三个项目在第四个(主项目)中用作库

这三个项目相互遵循如下(build.gradle):

Library Project:

  • 项目A

    compile project(":projectA")
    compile project(":projectB")
    
  • 项目B

    compile project(':projectC')
    

Main Project:

compile(name: 'projectA', ext: 'aar')
compile(name: 'projectB', ext: 'aar')
compile(name: 'projectC', ext: 'aar')

我想对“库项目”做些什么,这样在主项目中,如果我在库项目中单击任何类,我要么看不到代码,要么应该对其进行加密

例如,如果ProjectA中有InterfaceA,并且主项目的主要活动实现了该接口,那么如果我在接口中按Ctrl键,结果应该与我上面指定的类似

我知道Proguard也做了类似的事情,但这只是在你正在构建一个版本的情况下。apk,我需要编译库的相同结果


共 (1) 个答案

  1. # 1 楼答案

    您可以将所有不希望公开的方法设置为默认值,这样它们就不能在原始项目之外使用。此外,还应该将这些库与应用程序项目分开,编译它们,并将它们用作外部依赖项。如果不想发布库的源代码,就不要将其添加到编译选项中。如果您以外的其他人需要使用您的库,请使用bintray发布它,或者只是将编译好的aar/jar文件添加到应用程序项目中

    以下是整个过程的指南:https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en

    或者,您可以使用maven构建库项目(我发现它比使用gradle容易得多),看看这里的例子:https://github.com/simpligility/android-maven-plugin/tree/master/src/test/projects/libraryprojects

    以及一个具体的项目: https://github.com/fcopardo/BaseViews-Android