我已经测试了创建,插入和检索数据到我的应用程序数据库,并知道它通过使用日志语句工作。
但是,我希望加快测试并使用Android设备监视器。但是,虽然db存在并且存储了数据,但在下面访问时,data
文件夹为空:
为什么会这样呢?如何配置它来显示db文件和内容?
文件夹/data
可能为空,因为您缺少正确的权限。要解决它,我必须执行以下命令。
adb shell
su
这些命令在模拟器中启动shell并授予您root权限。命令adb
位于Android SDK的platform-tools
文件夹中,通常安装在MacOS上的~/Library/Android/sdk/
中。
chmod -R 777 /data
修改文件夹(和递归子文件夹)/data
的权限,以使它们出现在Android设备监视器工具中。
adb root
最后,此命令以root身份重新启动adb
。要小心,它只适用于开发版本(通常是模拟器版本)。
之后,您可以看到文件夹/data
的内容并传输位于的数据。您也可以使用adb pull <remote> <locale>
在控制台中执行此操作,例如:
adb pull /data/data/<app name>/databases/<database> .
除了@Steven K的答案之外:如果您想获得对数据的访问而无需使用真实设备,您需要在API 23(或更低版本)的模拟器中运行您的应用程序。在部署Android设备监视器时,23以上的API会导致问题,这是一个known problem。
它不是空的....您只是没有权限在设备上查看该文件夹。
在模拟器中试用它,因为你有root访问权限,它会对你有用。
如果有人遇到所述问题,请在终端窗口中按照以下步骤操作:
而已。问题解决了。
如果要浏览设备数据(数据/数据)文件夹,有两种方法。
ADM位置 - (YOUR_SDK_PATH \ Android \ sdk \ tools)
adb root
如果你只是想看看你的数据库和表格,那么最好的方法是使用Stetho
。对于使用SQLite
的Facobook developed
buit的每个Android开发人员而言,这是一个非常酷的工具。
Steps to use the tool
'compile'com.facebook.stetho:stetho:1.4.2'
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); setContentView(R.layout.activity_main); }
现在,构建您的应用程序&当应用程序运行时,您可以通过在URL中打开chrome来浏览您的应用程序数据库:
chrome://inspect/#devices
屏幕截图如下_
ChromeInspact
你的DB
希望这对大家有所帮助! :)
我和API_25
有同样的问题,它对我不起作用。
配置API_23 emulator
,它将适用于API_23
。
在cmd GoTo中:
C:\Users\UserName\android-sdks\platform-tools
执行:
adb root
完成
如果您在Windows上,请按照以下说明逐步操作:
cd C:\Android\sdk\platform-tools
adb root
adb pull /data/data/ name-of-your-package /databases/name-of-your-database
platform-tools
的文件夹中的数据库。然后,您可以通过chrome webstore在Google Chrome中安装Sqlite Manager扩展程序,并使用它来查看和管理导出的数据库。
如果您有根电话,您可以按照上述相同的说明操作。