[英]Where is AsyncStorage Data Physically Located on Android Devices?
Maybe the title isn't very clear.可能标题不是很清楚。 Here is what I mean/need to know-
这就是我的意思/需要知道的-
If I use SQLite for some data storing purpose on Android app, I can see the DB created in my phone.如果我在 Android 应用程序上将 SQLite 用于某些数据存储目的,我可以看到在我的手机中创建的数据库。 (/root/data or something I guess).
(/root/data 或我猜的其他东西)。 I have viewed the DB and performed some manipulations, it helps in development.
我查看了数据库并执行了一些操作,它有助于开发。
Now, I am using AsyncStorage API of react native.现在,我正在使用 React Native 的 AsyncStorage API。 There is some problem in my code, I am not able to get the stored data from the store.
我的代码有问题,我无法从商店获取存储的数据。 Not sure what I am doing wrong.
不确定我做错了什么。
So, to see what's wrong, is there a way to view the list of Objects that are being stored on the phone?那么,要看看哪里出了问题,有没有办法查看手机上存储的对象列表? If so where?
如果是哪里? And how do I view it?
我如何查看它?
PS: I am debugging my React Native app using Android Studio's logs. PS:我正在使用 Android Studio 的日志调试我的 React Native 应用程序。 As my chrome on linux is a bad boy (Any Help would be appreciated)!
因为我在 linux 上的 chrome 是个坏孩子(任何帮助将不胜感激)!
You can follow below steps您可以按照以下步骤
Run your apk in debug mode in your device and connect your device to your system在您的设备中以调试模式运行您的 apk 并将您的设备连接到您的系统
Open command prompt.打开命令提示符。
To get list of databases related to your application use below command要获取与您的应用程序相关的数据库列表,请使用以下命令
adb -d shell "run-as om.yourpackage_name ls /data/data/com.yourpackage_name/databases/
adb -d shell "run-as om.yourpackage_name ls /data/data/com.yourpackage_name/databases/
you can get package name from your AndroidManifest.xml file您可以从 AndroidManifest.xml 文件中获取包名称
adb -d shell "run-as com.yourpackage cp /data/data/com.your_package/databases/RKStorage /sdcard/Rkstorage"
adb -d shell "run-as com.yourpackage cp /data/data/com.your_package/databases/RKStorage /sdcard/Rkstorage"
adb pull /sdcard/Rkstorage
adb pull /sdcard/Rkstorage
Now Install Firefox SQLite Manager: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/现在安装 Firefox SQLite 管理器: https ://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
Open Firefox SQLite Manager from Tools->SQLite Manager从工具->SQLite 管理器打开 Firefox SQLite 管理器
In SQLite Manager go to Database->Connect Database and "open file" window will open there you select All files at bottom of your window and navigate where your database copied.在 SQLite 管理器中,转到数据库-> 连接数据库,“打开文件”窗口将在那里打开,您选择窗口底部的所有文件并导航到数据库复制的位置。
Thanks.谢谢。
React Native on Android actually uses SQLite to back up the AsyncStorage API. Android 上的 React Native 实际上使用 SQLite 来备份 AsyncStorage API。 The database file is
/data/data/<your_app>/databases/RKStorage
on your device/emulator.数据库文件是
/data/data/<your_app>/databases/RKStorage
在你的设备/模拟器上。 Keys and values are stored in a table named catalystLocalStorage
.键和值存储在名为
catalystLocalStorage
的表中。
Use sqlite3 /data/data/<your_app>/databases/RKStorage.dump
to see entire content.使用
sqlite3 /data/data/<your_app>/databases/RKStorage.dump
查看全部内容。 And use cp /data/data/<your_app>/databases/RKStorage /mnt/sdcard/
and use adb pull/push
to copy it to your local device.并使用
cp /data/data/<your_app>/databases/RKStorage /mnt/sdcard/
并使用adb pull/push
其复制到本地设备。
If you are working on react-native
and using react-native-sqlite-storage
, then you can find the DB file <aap-name>/android/app/src/main/assets/www/<db-named-file>
for Android
.如果您正在使用
react-native
并使用react-native-sqlite-storage
,那么您可以找到数据库文件<aap-name>/android/app/src/main/assets/www/<db-named-file>
对于Android
。 And for iOS
, DB file location is <app-name>/ios/<app-name>/www/<db-named-file>
.对于
iOS
,数据库文件位置是<app-name>/ios/<app-name>/www/<db-named-file>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.