在我的安卓应用程序中,我广泛使用Log.i
、Log.e
。
在这些命令中,我通常传递与我的应用程序通信的SQLite查询或http rest url。
我的问题是:当应用程序到达Play商店时,保留这些日志是否安全?如果用户在连接到计算机的设备上运行应用程序,他能否在他的LogCat上查看Log消息?
在我的安卓应用程序中,我广泛使用Log.i
、Log.e
。
在这些命令中,我通常传递与我的应用程序通信的SQLite查询或http rest url。
我的问题是:当应用程序到达Play商店时,保留这些日志是否安全?如果用户在连接到计算机的设备上运行应用程序,他能否在他的LogCat上查看Log消息?
是的,用户将能够读取这些日志文件。它是否“安全”?这要看情况。你的rest调用或sqlite查询是否是机密的?无论如何,所有的网络通信都可以被wireshark等工具读取。
当我发布我的应用程序时,我会创建自己的Log类,并使用方法i、d、e等来代替Android的Log类。因为这样我就可以根据一个简单的开关boolean debug = true
决定是写入LogCat还是不写入。这样我就可以在应用程序中留下所有的日志语句了。
当你编写自己的Log类以在整个应用程序中使用时,只需替换所有的
import android.util.Log;
使用
import your.package.Log;
记录日志是开发人员使用的非常方便的调试和诊断技术。使用作为Android SDK一部分提供的日志记录类将有关应用程序的重要信息记录到LogCat中,但在发布之前请务必审查应用程序的日志记录实现,因为记录日志会影响性能。
在发布应用程序之前,请仔细检查日志,以确保不泄露任何机密数据。
当您的应用程序处于测试模式时,记录日志非常重要。日志将为您提供当前设备上应用程序的当前状态和场景。因此,每当您更新应用程序时,它都非常有帮助。
有时候,如果Google Play发现您的日志记录机制违反规则,他们会拒绝发布您的应用程序。
在生产环境中保留日志方法是不安全的。这些日志可以用于跟踪Android中的不同回调,如果您在其中显示数据库记录,则必须在发布应用程序之前删除它们。
您不必逐个删除项目中的日志回调。您可以使用Proguard通过在项目根目录中编写几行代码来自动删除日志方法。