我即将发布一款应用。我应该在Log
声明中删除e.printStackTrace()
语句和catch
吗?
答案 0 :(得分:4)
日志是必不可少的故障排除资源,即使对于已部署的软件也是如此。
我会限制生产版本的日志记录(甚至可能将其限制为“仅登录紧急情况”)。但我不断然说“没有记录”。
这是一个很好的讨论(有一些很好的指导方针):
PS: 话虽如此,我赶紧补充道:
不,您应该不在生产版本中进行任何“调试”或“信息”记录。
以上链接中引用的Android文档也正是如此。
答案 1 :(得分:2)
这通常被认为是一种很好的做法,因为:
答案 2 :(得分:1)
有时启用日志会产生安全问题。由于多种原因,大多数Android应用程序都不需要担心这个问题,但我个人只是习惯于禁用基于开发人员的功能,除非您希望用户帮助您调试其他设备上的问题,这在我的经验中并不常见
答案 3 :(得分:0)
答案是是。
您可以隐藏它们在proguard.cfg文件中添加一些行。
-keep class * extends android.app.Activity
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** e(...);
public static *** i(...);
}
应用程序签名后,没有人能够读取调试,错误和信息日志。 希望它有效。