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

IT技术 android reactjs local-storage react-native
2021-03-29 02:38:42

可能标题不是很清楚。这就是我的意思/需要知道-

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

现在,我正在使用 React Native 的 AsyncStorage API。我的代码有问题,我无法从商店获取存储的数据。不知道我做错了什么。

那么,要看看出了什么问题,有没有办法查看手机上存储的对象列表?如果是在哪里?我如何看待它?

PS:我正在使用 Android Studio 的日志调试我的 React Native 应用程序。因为我在 linux 上的 chrome 是一个坏男孩(任何帮助将不胜感激)!

4个回答

您可以按照以下步骤操作

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

  2. 打开命令提示符。

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

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

你可以从你的 AndroidManifest.xml 文件中获取包名

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

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

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

adb pull /sdcard/Rkstorage

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

  2. 从工具->SQLite 管理器打开 Firefox SQLite 管理器

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

谢谢。

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

我们可以使不可编译吗?
2021-06-03 02:38:42

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

如果您正在处理react-native和使用react-native-sqlite-storage,然后你可以找到数据库文件<aap-name>/android/app/src/main/assets/www/<db-named-file>Android对于iOS,DB 文件位置是<app-name>/ios/<app-name>/www/<db-named-file>.