android - android studio 在 Linux dev 机器上将 sqlite db 保存在哪里?

标签 android linux sqlite

我想将数据直接插入到我的应用程序的 sqlite 数据库中,但我无法在 android studio 路径的任何位置找到它,即使在我的根路径上也是如此:

$sudo find /  -type f -name 'myapp.db'

我知道有人问过几个类似的问题before但是 Windows 的答案在 Ubuntu Linux 上对我没有帮助。非常感谢您的帮助。

最佳答案

Android Studio 不会将数据库本地存储在您的计算机中。数据库仅存在于设备中,每次您部署到新设备时,您的数据库都将在该新设备中创建新的。这就是为什么您无法在计算机中找到它的原因。这是数据库在设备中的位置:

/data/data/full_qualified_java_package_name/databases/database_name.db

现在,如果您想直接插入数据,可以使用 Android Studio 中的终端并使用 ADB 从模拟器中拉出数据库,修改它,然后将其推回。哎呀,我相信如果您足够了解在 Linux 中,您可能可以将需要的内容插入其中,而无需将其从设备中拉出。以下是 Android Studio 终端的一些示例命令:

~/Android/Sdk/platform-tools/adb devices

获取设备号,然后:

~/Android/Sdk/platform-tools/adb -s emulator-#### pull /data/data/full_qualified_java_package_name/databases/database_name.db <local-filepath>

要将其发回,只需:

~/Android/Sdk/platform-tools/adb -s emulator-#### push <local-filepath> /data/data/full_qualified_java_package_name/databases/database_name.db

示例:

~/Android/Sdk/platform-tools/adb -s emulator-5554 pull /data/data/com.danielkaparunakis.stackoverflowquestions/databases/Questiondatabase.db /Users/DanielKaparunakis/Desktop

补充提示:如果你这样拉的时候留空:

~/Android/Sdk/platform-tools/adb -s emulator-5554 pull /data/data/com.danielkaparunakis.stackoverflowquestions/databases/Questiondatabase.db

它会自动将其拉到项目的根文件夹中。

关于android - android studio 在 Linux dev 机器上将 sqlite db 保存在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37363924/

相关文章:

android - 无法从 Android 上的 xmpp 服务器获取公共(public)房间列表?

c++ - 应用程序中的嵌入式控制台工具功能

c# - Entity Framework 6 和 Sqlite 的问题。 Any() 查询失败,但 Contains() 查询正常

c# - 在 C# 中,如何清空现有的 SQLite 数据库?

java - 奇怪的 logcat : How to fix?

android - 使用 android :singleLine and android:autoLink 时按钮文本不可见

linux - 在谷歌可抢占实例上被抢占时如何保存状态?

linux - WaitForMultipleObjects() 和 WSAEnumNetworkEvents() 的等效 linux API 是什么?

sqlite - 如何为 sqlite3.exe 提供密码?

android - findFragmentByTag() 始终返回 null - Android