2014-04-02 60 views
5

在我的Android应用程序中,我广泛使用Log.iLog.e在生产中保持Log.i安全吗?

在这些命令上,我通常会通过SQLite查询或与我的应用程序通信的http rest url。

我的问题是:应用程序到达Play商店时是否安全地保留这些日志?如果用户使用他的计算机上连接的设备运行该应用程序,他将能够查看他的LogCat上的日志消息?

+0

如果你离开它当然用户将能够看到它。 – Blackbelt

+0

是的,用户可以在logcat – sabadow

+0

中读取这条日志消息......这两个问题在Play商店中都是安全的,是的,能够看到 –

回答

2

不,在生产中保留日志方法是不安全的。这些日志可用于跟踪Android中的不同回调,如果您在其中显示数据库记录,则必须在发布您的应用程序之前删除这些记录。

而且您不必在项目中逐个删除日志回调。您可以使用Proguard自动删除Log方法,只需在项目根目录中写入proguard-project.txt中的几行即可。

Follow this answer to remove logging methods using proguard

+0

为什么不安全?我的意思是,如果你的字节码在其他人的计算机上运行,​​那么你必须假设没有任何东西可以隐藏起来。 –

2

是的,用户将能够读取这些日志文件。它是'安全'吗? 取决于。你的休息电话或sqlite查询是秘密吗?例如,所有的网络通信都可以用wireshark读取。

当我发布我的应用程序时,我所做的是:我使用方法i,d,e等创建自己的Log类,并使用此Log类代替Android,因为那时我可以使用简单开关,如boolean debug = true我写到LogCat或不写。这样我可以将所有日志语句留在应用程序中。 当你写你自己的日志类,使用它在你的应用程序,你可以简单地用

import your.package.Log; 

与Eclipse替换所有

import android.util.Log; 

+0

你的建议是我所想的,以防万一它不安全。然而,sabadow和Shajeel Afzal建议的proguard似乎更吸引人 – antoniom

2

记录是开发人员使用的非常方便的调试和诊断技术。使用作为Android SDK一部分提供的日志记录类将关于应用程序的重要信息记录到LogCat中,但确保在发布之前检查应用程序的日志记录实现,因为日志记录具有性能缺陷。

在发布您的应用程序之前仔细查看您的日志,以免泄露任何机密数据。

只要您的应用程序处于测试模式,记录就非常重要。日志将为您提供当前设备上应用程序的当前状态和场景。所以每当你更新你的应用程序时它都非常有帮助。

有时Google Play会拒绝您的应用程序,如果他们发现您的日志记录机制违反了规则。