adb shell调试contentprovider相关命令-千里马android framework
Posted Android高级知识分享官
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了adb shell调试contentprovider相关命令-千里马android framework相关的知识,希望对你有一定的参考价值。
hi,经常在做android系统应用开发,或者framework时候其实都少不了和contentprovider打交道,这里contentprovider其实也算android四大组件中非常重要的一个组件。经常如果涉及到数据库操作和跨进程一些通信,如果我们需要测试contentprovider写的是否正确,可以 被客户端调用正常主要有2种方法 :
1、自己写一个demo来 专门访问contentprovider方式,这种方式当然是ok的,但是每次需要访问contentprovider接口等 都需要对代码进行修改,编译运行,其实效率 相对比较低
2、使用adb shell相关的命令进行contentprovider的操作访问,这种方式 其实是最为方便的,不需要写任何代码,只需要adb shell几个命令既可以搞定,但是 奈何很多同学又不知道相关命令,所以 这里对相关命令进行 一个详细记录,也方便日后自己查询使用,
这里其实我们完全使用:adb shell content -h就可以看到所有操作细节及案例,非常详细:
usage: adb shell content [subcommand] [options]
usage: adb shell content insert --uri <URI> [--user <USER_ID>] --bind <BINDING> [--bind <BINDING>...]
<URI> a content provider URI.
<BINDING> binds a typed value to a column and is formatted:
<COLUMN_NAME>:<TYPE>:<COLUMN_VALUE> where:
<TYPE> specifies data type such as:
b - boolean, s - string, i - integer, l - long, f - float, d - double
Note: Omit the value for passing an empty string, e.g column:s:
Example:
# Add "new_setting" secure setting with value "new_value".
adb shell content insert --uri content://settings/secure --bind name:s:new_setting --bind value:s:new_value
usage: adb shell content update --uri <URI> [--user <USER_ID>] [--where <WHERE>]
<WHERE> is a SQL style where clause in quotes (You have to escape single quotes - see example below).
Example:
# Change "new_setting" secure setting to "newer_value".
adb shell content update --uri content://settings/secure --bind value:s:newer_value --where "name='new_setting'"
usage: adb shell content delete --uri <URI> [--user <USER_ID>] --bind <BINDING> [--bind <BINDING>...] [--where <WHERE>]
Example:
# Remove "new_setting" secure setting.
adb shell content delete --uri content://settings/secure --where "name='new_setting'"
usage: adb shell content query --uri <URI> [--user <USER_ID>] [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]
<PROJECTION> is a list of colon separated column names and is formatted:
<COLUMN_NAME>[:<COLUMN_NAME>...]
<SORT_ORDER> is the order in which rows in the result should be sorted.
Example:
# Select "name" and "value" columns from secure settings where "name" is equal to "new_setting" and sort the result by name in ascending order.
adb shell content query --uri content://settings/secure --projection name:value --where "name='new_setting'" --sort "name ASC"
usage: adb shell content call --uri <URI> --method <METHOD> [--arg <ARG>]
[--extra <BINDING> ...]
<METHOD> is the name of a provider-defined method
<ARG> is an optional string argument
<BINDING> is like --bind above, typed data of the form <KEY>:b,s,i,l,f,d:<VAL>
usage: adb shell content read --uri <URI> [--user <USER_ID>]
Example:
# cat default ringtone to a file, then pull to host
adb shell 'content read --uri content://settings/system/ringtone > /mnt/sdcard/tmp.ogg' && adb pull /mnt/sdcard/tmp.ogg
usage: adb shell content gettype --uri <URI> [--user <USER_ID>]
Example:
# Show the mime-type of the URI
adb shell content gettype --uri content://media/internal/audio/media/
csdn在线学习课程,课程咨询答疑和新课信息:QQ交流群:422901085进行课程讨论
(一定记得加群:422901085 获取优惠)
以上是关于adb shell调试contentprovider相关命令-千里马android framework的主要内容,如果未能解决你的问题,请参考以下文章
查看Activity 堆栈情况的命令:adb shell dumpsys activity
使用Adb shell dumpsys检测Android的Activity任务栈