【问题标题】:Android - Best way to using SQLite?Android - 使用 SQLite 的最佳方式?
【发布时间】:2013-12-12 08:57:16
【问题描述】:

我正在 android 中开发一个应用程序,其中包含需要连接到数据库的活动。我在资产文件夹中添加了我的数据库文件,该文件夹在应用程序第一次运行时被复制到应用程序数据库目录,但是任何其他应用程序都可以访问“资产”目录和“数据”目录(在根设备上)。我在使用数据库文件或在代码中创建数据库之间感到困惑。如果我在代码中创建数据库,它会使数据库文件在“资产”文件夹中消失。当用户将文件扩展名从 .apk 更改为 .zip 时,数据库文件将不会出现在 assest 文件夹中。我该怎么办?

请给我一些建议!

【问题讨论】:

    标签: android sqlite assets


    【解决方案1】:

    这两种方法都很好用,完全取决于您的需要。 通过在代码中创建数据库,您可以保护您的数据免受其他应用程序的影响,但以这种方式创建它会非常痛苦,所以我建议您在资产文件夹中使用 db 或 sqlite 文件,同时在设备或数据文件夹上复制数据库使用一些安全参数来加密它,或者您可以在设备上隐藏您的应用程序数据库文件夹,这样其他应用程序和用户将无法轻松访问它。

    【讨论】:

      【解决方案2】:

      将数据库保存在资产文件夹中并不是一个坏习惯,而且它节省了创建数据库的编码,只要你想让它安全,你必须做两件事

      1.将你的数据库保存在assests文件夹中,复制并保存在内存中,现在它只对你的应用程序可用,并从assests文件夹中删除。

      2. 使用 Proguard 保护它免遭有人反编译您的应用程序并获取资产。

      是的,如果它是应用程序中的机密数据并且您的应用程序值得,那么您也可以选择“加密数据”,但它是一项 TDS 任务,您现在可以自己看看什么适合您。

      【讨论】:

      • 我想使用assets文件夹中的数据库文件。但是当有人将扩展名从 .apk 更改为 .zip 时。他们可以看到数据库文件。这不好。
      • 为此你使用 proguard ,就像你使用你的数据库从 assests 文件夹中一样,所以把你的数据库放在你的 assests 文件夹中,当应用程序启动时,只需将它从 assests 文件夹复制到内部存储器并删除它来自assets文件夹。因此,你得到了两件事:1.使用 proguard,即使有人将 apk 更改为 zip,你也可以保护它不被公开。 2.将其从assets文件夹中删除到内存中,除了你的其他应用程序之外,它对任何其他应用程序都不可用,同时你可以像在assets文件夹中使用它时一样使用它
      • 如何使用 proguard 保护资产文件夹中的数据库???给我一些导师来做这件事!
      【解决方案3】:

      老实说,这是对该主题的最佳解释和非常完整的教程 SQLite Android Tutorial

      不要反感,因为它有点长。一切都很好地解释了,您不必考虑资产文件夹在不同设备上的位置等等......

      【讨论】:

      • 我不需要教程。我需要一些关于安全 SQLite 数据库的建议。
      猜你喜欢
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      • 1970-01-01
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      相关资源
      最近更新 更多