使用Proguard隐藏包名称,但将某些方法保存在类中

时间:2015-01-14 16:42:58

标签: java android package proguard obfuscation

我试图创建一个简单的Android库,只要实现它的人只能看到该库的一个类。我已经让ProGuard隐藏了我需要隐藏的大部分内容,但是即使在类名被混淆之后,仍会出现一些包名。例如:

com.app.parsers
com.app.camera
com.app

这些是我的包,当我将.aar导出到另一个项目时,我仍然可以看到包名。但是,一旦我到达那里,就没有其他需要了。大多数类都受到保护,具有公共类和公共类扩展的Public接口。

作为参考,在我的项目视图中,可以看到以下内容:

com.app.parsers.jsonParser
com.app.parsers.xmlParser
com.app.parsers.csvParser
com.app.parsers.ManagerInterface(public)
com.app.parsers.ParserManager(public)

基本上我将解析器管理器公开(以及它的接口)的原因是因为它充当了我各种不同解析器的入口点(或代理)。所以我保持这种组织方式。因此,当我使用proguard时,我在这里看不到任何东西,我只看到一个空包,上面写着com.app.parsers,然后是一个只有通用演员,instanof的列表或者你有什么。我想隐瞒这一点,这样它就不会让任何人分心,或者他们想知道为什么它存在或者是什么。

1 个答案:

答案 0 :(得分:1)

只要您的代码记录良好,我认为将它们暴露出来并不是一件大事。

但你可以尝试使用

@hide annotationFacade pattern