访问 Android 私有数据

作者: 极小光 | 来源:发表于2017-05-04 16:44 被阅读57次

    简评:在开发调试过程中,总会免不了需要访问到应用的私有数据,这里就介绍下如何访问非 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 导读三篇优质英文文章。

    扩展阅读:

    相关文章

      网友评论

        本文标题:访问 Android 私有数据

        本文链接:https://www.haomeiwen.com/subject/fuprtxtx.html