AsyncStorage数据在Android设备上的物理位置在哪里?

时间:2015-12-19 14:56:29

标签: android reactjs local-storage react-native

也许标题不是很清楚。这就是我的意思/需要知道的事情 -

如果我在Android应用程序上使用SQLite进行某些数据存储,我可以看到手机中创建的数据库。 (/ root / data或我猜的东西)。我查看了数据库并执行了一些操作,它有助于开发。

现在,我正在使用反应原生的AsyncStorage API。 我的代码存在一些问题,我无法从商店获取存储的数据。不确定我做错了什么。

那么,要查看错误,有没有办法查看手机上存储的对象列表?如果是这样的话?我该如何看待它?

PS:我正在使用Android Studio的日志调试我的React Native应用程序。正如我的chrome on linux is a bad boy(感谢任何帮助)!

4 个答案:

答案 0 :(得分:6)

您可以按照以下步骤

  1. 在设备的调试模式下运行apk并将设备连接到系统

  2. 打开命令提示符。

  3. 要获取与您的应用程序相关的数据库列表,请使用以下命令

  4.   

    adb -d shell“run-as om.yourpackage_name ls   /data/data/com.yourpackage_name/databases /

    您可以从AndroidManifest.xml文件中获取包名称

    1. 现在您在上面的列表中有数据库名称,然后使用以下命令将该数据库复制到手机中的SD卡,以反应本机它将是RKStorage
    2.   

      adb -d shell“run-as com.yourpackage cp /data/data/com.your_package/databases/RKStorage / sdcard / Rkstorage”

      1. 现在使用以下命令将上面复制的数据库从您的设备拉到您的系统。下面的命令会将数据库复制到adb.exe所在的目录。
      2.   

        adb pull / sdcard / Rkstorage

        1. 现在安装Firefox SQLite Manager:https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

        2. 从Tools-> SQLite Manager

        3. 打开Firefox SQLite Manager
        4. 在SQLite管理器中,转到数据库 - >连接数据库,将打开“打开文件”窗口,在窗口底部选择所有文件并导航数据库复制的位置。

        5. 感谢。

答案 1 :(得分:5)

Android上的React Native实际上使用SQLite来备份AsyncStorage API。您的设备/模拟器上的数据库文件为/data/data/<your_app>/databases/RKStorage。键和值存储在名为catalystLocalStorage的表中。

答案 2 :(得分:0)

使用sqlite3 /data/data/<your_app>/databases/RKStorage .dump查看全部内容。然后使用cp /data/data/<your_app>/databases/RKStorage /mnt/sdcard/并使用adb pull/push将其复制到本地设备。

答案 3 :(得分:0)

如果您正在使用react-native并使用react-native-sqlite-storage,则可以找到<aap-name>/android/app/src/main/assets/www/<db-named-file>的数据库文件Android。对于iOS,数据库文件位置为<app-name>/ios/<app-name>/www/<db-named-file>