我有一个Java项目库(ProjectLib),它用于更大解决方案的几个不同服务/项目中。这个库有我需要的几个类,我正在创建的Android App。
所以我在build.gradle中使用这个:
implementation project(':ProjectLib')
同样在Settings.gradle中:
include ":ProjectLib"
project(":ProjectLib").projectDir = file("../ProjectLib")
这个lib有一些明智的和未使用的类,比如数据库访问。如果应用程序没有使用这些类,它将被放入APK?发布此应用程序并破坏公司主要数据库等安全方面存在风险吗?
我的意思是,我应该将明智的未使用的类拆分到另一个lib并重做所有其他使用它的项目吗?因为这个安全问题?
答案 0 :(得分:1)
你问的是错误的问题。
含义:您的APK应该从不向世界公开安全相关信息!您的APP是否实际上依赖于某些特定类并不重要。
其他答案在以下意义上是正确的:您可以使用此技术或该技术微调进入APK的确切内容。但正如所说,真正的答案是从不在APK中提供秘密的内容。
(仅供记录:服务器名称或IP地址不秘密)
答案 1 :(得分:0)
默认情况下,即使未使用的类也将包含在最终的APK文件中。
要从APK中删除未使用的类,您可以使用ProGuard。 ProGuard还可以对您的代码进行模糊处理。
答案 2 :(得分:0)
Android应用程序中明智开发和未使用的java库类不太可能包含这样的可利用元素,以至于它是一种安全威胁。
除非这些类一般是安全威胁。
请记住,“其他”应用程序还可以包含类和库。
另请注意,大多数情况下应用程序仅使用所包含的库jar的一小部分。 如果只使用一小部分番石榴是可以的,那么也可以使用你图书馆的一小部分。
那就是说你也希望你的.apk合理的大小。像ProGuard这样的混合器可以帮助减小应用程序的大小,并删除未使用的代码。 ProGuard不仅可以删除未使用的类,还可以删除已使用类中未使用的方法。
无论如何要定义解决方案的安全性,您需要定义解决方案受到保护的威胁。 (威胁分析)