大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

访问 Android 私有数据


简评:在开发调试过程中,总会免不了需要访问到应用的私有数据,这里就介绍下如何访问非 root 设备的应用私有数据。

Android 官方介绍中有下面这几种方式来存储数据:

  • Shared Preferences :键值对的方式存储私有数据。
  • Internal Storage:存储在设备内存中(私有数据)。
  • External Storage :存储在共享的外部存储中(公共数据)。
  • SQLite Databases :结构化的将数据存储在设备数据库中。
  • Network Connection :使用网络服务器存储数据。

SharedPreferences 和 SQLite 数据库中的数据都是私有的,无法被其他应用和用户访问到,除非是模拟器或 root 后的设备。下面就介绍下如何在开发调试中访问这些私有数据。

访问私有文件

如果是模拟器或 root 后的设备,就不需要多说了。你已经有了访问设备中私有文件的权限,可以直接通过 Android Device Monitor 或者命令行来进行访问。

对于未 root 的设备,则可以使用命令行:

adb shell
run-as <app-package-name>
cd data/data/...

访问 SQLite 数据库文件

可以使用 SQLite browser 来查看数据库内容和执行简单的 SQL 脚本。也可以直接用 sqlite3 命令行工具:

adb shell
cd data/data/<your package-name>/databases/
sqlite3 <db-name>
.tables
.schema <table-name>

擦除应用数据

当我们想擦除应用的 SharedPreferences 或 SQLite 数据库数据时,通常有两个方法:

  • 卸载、重装应用。
  • 到系统设置中找到你的应用程序,然后点击存储/清除数据。

但其实有一个 Android Studio 插件 - ADB Idea 能有效简化这项工作。只需要在 Android Studio / Preferences / Plugins 中搜索 'ADB Idea' 安装,然后在 Tools / Android / ADB Idea 里面点击相应的选项就可以啦。

另外,也可以使用 Facebook 的 Stetho 来访问 Android 设备中的私有文件(无需 root),还能通过 Chrome Developer Tool 来调试 App,值得一试。

原文:Access Private Data on Android
欢迎关注知乎专栏「极光日报」,每天为 Makers 导读三篇优质英文文章。

扩展阅读: