• Android SQLite 学习2


    昨天成功实现了创建数据库,并用adb shell查看。

    下一步计划用Android Device Monitor 的File Explorer 和 可视化工具看到数据库。


    DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务。
    它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。
    在集成开发环境中,有DDMS控制台窗口。
    【Q1】
    Unexpected error while parsing input: invalid ui automator hierarchy file.
    【未解决】

    【Q2】Android Device Monitor - File Explorer 能看到 data 但是点击没反应。
    【解决方案】https://zhidao.baidu.com/question/2202780952126210388.html
    首先确认该文件夹下是否有文件,确认好之后,可以用adb shell 命令行的方式访问,如果也可以,在adb shell下, chmod 777 -R data 把整个文件夹权限全改掉。

    C:UsersAdministrator>adb shell
    generic_x86:/ $ su
    generic_x86:/ # chmod 777 -R data
    
    

    获取权限后,可以看到数据库了。

    【分析】 在这个模拟器中安全权限高? 为什么郭老师那么细致的人,书中都没提到这个细节?折腾时间不短,原因就在于这个权限问题。

    最终问题的核心就是把data从 drwxrwxr-x 权限 变为 drwxrwxrwx 权限。即:用户权限增加了“写”权限。

    这种权限写法是Linux的,知识扩展如下:

    drwxrwxr-x除出去第一个字母d后的rwxrwxr-x表示的是三种用户关系对文件或文件夹的操作权限。

    从左到右每三个一组,依次表示所有者权限、组权限、其他用户权限。

    每组的顺序均为rwx,如果用户有相应的操作权限就用相应的字母表示,如果不具有相应的操作权限就用-表示。

    比如: rwxrwxr-x表示文件或文件夹的所有者具有rwx(可读,可写,可执行)的操作权限,组用户也具有rwx(可读,可写,可执行)的权限,其他用户具有r-x(可读,可执行,没有可写)的操作权限。


     更改权限后,在$提示符下,也可以看到数据库了~

    C:UsersAdministrator>adb shell
    generic_x86:/ $ cd data
    generic_x86:/data $ cd data
    generic_x86:/data/data $ cd com.exmple.databasetest
    /system/bin/sh: cd: /data/data/com.exmple.databasetest: No such file or directory
    2|generic_x86:/data/data $ cd com.example.databasetest
    generic_x86:/data/data/com.example.databasetest $ ls
    cache code_cache databases
    generic_x86:/data/data/com.example.databasetest $ cd databases
    generic_x86:/data/data/com.example.databasetest/databases $ ls
    BookStore0.db BookStore0.db-journal BookStore2.db BookStore2.db-journal
    generic_x86:/data/data/com.example.databasetest/databases $
    数据库 BookStore0.db 
    日志 BookStore0.db-journal

     【模拟器挂了】不知道是不是修改权限闹得。。。

    No USB devices or running emulators detected         Troubleshoot

    把一大堆东西都下载安装上,能用了,原理解释不清楚

    然后出现新问题:

    • 模拟器 waiting for target device to come online
    • /system/bin/sh: su: not found 无法更改权限

    开发环境还是不稳健,把时间都浪费在折腾这些事上,实在是有点遗憾。


    使用可视化工具打开数据库:

     http://www.cnblogs.com/Stay-Hungry-Stay-Foolish/p/6940219.html

    虽然能够成功打开/data/data/<相应包名>,但是我们又发现不能将里面的文件导出到本地,同时还提示我们权限拒绝。

     
  • 相关阅读:
    php单例模式
    php编码规范
    mysql_affected_rows的注意点
    ThinkPHP的sql_mode的默认设置,导致无效信息被插入
    InnoDB事务和锁
    php中const和static的区别和联系
    php 位运算符的实际应用(权限判断)
    使用LBS(地理位置)
    OkHttpClient简单封装
    Gson解析json
  • 原文地址:https://www.cnblogs.com/hbuwyg/p/7043827.html
Copyright © 2020-2023  润新知