Android adb的权限问题(可以不通过adb,而直接访问.db文件)

问题描述

自学Android SQLite的时候,在配置好环境变量之后,打开cmd,输入adb shell,会出现如下代码:

generic_x86:/ $

这表示当前为普通用户,这时使用cd命令,将提示:

Permission denied

然后如果输入sqlite3 BookStore.db打开数据库,并键入.table,将有如下错误:

Error: unable to open database “BookStore.db”: unable to open database file

这表示没有root权限,不能打开数据库文件


解决办法

网上有很多获取root权限的办法,但不是特别方便。我下面说的是不用root的方法

这种方法不使用adb工具,而是直接使用同样在platform-tools目录下的sqlite3工具(使用该工具也需要配置环境变量

具体操作步骤如下:

  1. 在Device File Explorer中找到需要打开的数据库文件,右键后选择Save As…,然后选择一个目录并保存(建议将文件放在D盘根目录),操作如下图:
    Android adb的权限问题(可以不通过adb,而直接访问.db文件)_第1张图片

  2. 打开cmd,cd到你刚才文件的存放位置(如果你也将文件放在D盘根目录,只需输入D:即可)

  3. 输入sqlite3,后面加上数据库名,比如我这里输入sqlite3 BookStore.db

  4. 输入.table查看表,输入.schema查看建表语句,操作如下图所示:
    Android adb的权限问题(可以不通过adb,而直接访问.db文件)_第2张图片

升级数据库后:

  1. 如果刚才的cmd没有关掉的话,要先输入.open关闭掉之前打开的数据库。(因为数据库打开状态将无法用新的文件替换掉)

    .open 加上数据库名 表示打开一个数据库
    .open 表示关闭刚才打开的数据库

  2. 用新的数据库文件替换掉之前的文件(步骤类似之前的第1条,但是在Save As…之前,要先点Synchronize进行同步)
    Android adb的权限问题(可以不通过adb,而直接访问.db文件)_第3张图片

  3. 在cmd中输入.open BookStore.db(如果cmd已经关过,参考之前的4条步骤)
    Android adb的权限问题(可以不通过adb,而直接访问.db文件)_第4张图片

你可能感兴趣的:(Android)