我有一个Java Project库(ProjectLib(,该库用于更大解决方案的几个不同服务/项目。该库有几个我要创建的Android应用需要几个类。
所以我在build.gradle中使用了这样的使用:
implementation project(':ProjectLib')
也在设置中:
include ":ProjectLib"
project(":ProjectLib").projectDir = file("../ProjectLib")
此lib具有一些明智的且未使用的类,例如数据库访问。如果应用程序未使用这些类,它将放入APK中?有任何发布此应用程序并损害任何安全方面的风险,例如公司的主要数据库?
我的意思是,我是否应该将明智的类别不使用的类别分配给另一个LIB并返回所有其他使用它的项目?由于这种安全问题?
您问了错误的问题。
含义:您的APK应该永远不会向世界展示安全性相关信息!您的应用程序实际上是否依靠某些特定类都没有关系。
其他答案在以下意义上是正确的:您可以使用此技术或该技术微调APK中的确切内容。但是,正如所述, real 答案是从不在APK中具有 Secrets 的内容。
(仅用于记录:服务器名称或IP地址是不是秘密(
即使未使用的类也将默认情况下包含在最终APK文件中。
要从APK中删除未使用的类,您可以使用Proguard。proguard也可以混淆您的代码。
不太可能在Android应用程序中明智地开发和未使用的Java库类包含这样的可利用元素,以致是安全威胁。
除非这些类是一般的安全威胁。
请记住,"其他"应用程序还可以包括类和库。
还请记住,大多数时间应用程序仅使用包含库罐的一小部分。如果可以只使用番石榴的一小部分,那么也可以使用库的一小部分。
说您也想让.APK合理尺寸。诸如Proguard之类的肥胖器可以帮助减小应用程序的大小以及删除未使用的代码。proguard不仅可以删除未使用的类,还可以删除未使用的类别中的未使用的方法。
在任何情况下,要定义解决方案的安全性,您需要定义解决方案的威胁。(威胁分析(