日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

adb常用命令的使用

發(fā)布時(shí)間:2024/1/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 adb常用命令的使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

與設(shè)備相關(guān)的命令

獲取所有連接上的設(shè)備:

adb devices

指定唯一USB連接設(shè)備:

adb –d <serialNumber> <command>

指定唯一emulator:

adb –e <serialNumber> <command>

當(dāng)有多個(gè)手機(jī)和emulator時(shí):

adb –s <serialNumber> <command>

adb服務(wù)相關(guān)

關(guān)閉adb server

adb kill-server

啟動(dòng)adb server

adb start-server?

獲取/system的讀寫(xiě)權(quán)限:adb remount

與Data操作相關(guān)的命令:

安裝apk

adb install –r <path_to_apk>

reinstall the app,keep its data

abd install –s <path_to_apk>

? ? ?install on SD card

adb install <path_to_apk>

?eg. adb install c:\Launcher2.apk

卸載apk

adb uninstall –k <packagename>

? ? ?keep the data and cache directories

如果要卸載android系統(tǒng)自帶的app,請(qǐng)先獲取root權(quán)限,然后將apk刪掉,再卸載package如右邊所示卸載默認(rèn)Launcher2的命令:

adb uninstall <packagename>

eg. adb uninstall com.android.launcher2

eg.

adb remount

adb shell rm system/app/Launcher2.apk

adb uninstall com.android.launcher

從device/emulator拷貝文件出來(lái)到本地

adb pull <remote> <local>

eg. adb pull mnt/sdcard/mtklog/ d:\log\

將本地文件拷貝到device/emulator

adb push <local> <remote>

eg. adb push d:\Test.apk system/app

adb shell 相關(guān)命令

命令格式:adb [-d|-e|-s {serialNumber}] shell <shellCommand>

退出shell:Ctrl + C / exit

消除緩存命令:

adb shell rm –R /data/dalvik-cache

傳送keyevent:

當(dāng)客戶手機(jī)有硬體鍵盤(pán),而內(nèi)部手機(jī)沒(méi)有相應(yīng)按鍵時(shí),可以用命令發(fā)送key來(lái)模塊按鍵

adb shell input keyevent keycode

各個(gè)key的keycode 可在KeyEvent.java這個(gè)類中查到,常用keycode如下:

HOME:3 ?BACK:4 ?POWER:26 ?MENU:82

傳送text文本:

adb shell input text “xxx”

獲取系統(tǒng)所有屬性

或某一個(gè)屬性:

adb shell getprop

adb shell getprop propertyName

設(shè)置系統(tǒng)某個(gè)屬性:

adb shell setprop propertyName value

eg. adb shell setprop launcher2.allappsgrid 2d

還有兩個(gè)比較好的命令是adb shell am和adb shell pm,這兩個(gè)命令在frameworks/base/cmds下面;

am命令主要用于管理Activity,例如啟動(dòng),停止Activity(eclipse在運(yùn)行Activity就使用了這個(gè)命令),發(fā)送intent;

格式為:

adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴(kuò)展數(shù)據(jù),等)。

實(shí)例1:adb shell am start -n com.android.camera/.Camera

實(shí)例2:adb shell am start -n com.android.contacts/.activities.PeopleActivity content://contacts/people

pm命令則主要用于管理應(yīng)用package的管理,有點(diǎn)像控制面板的添加和刪除程序。

adb shell pm list packages 獲得當(dāng)前系統(tǒng)安裝了哪些包?

frameworks/base/cmds下面還有一個(gè)別的命令,如下:

dumpstate?

dumpsys?

ime?

input?

installd?

service?

servicemanager?

surfaceflinger?

system_server

dumpsys命令

這個(gè)查看系統(tǒng)信息,用的還是比較多的.

dumpsys [options]

? ? ? ? ? ? ? ?meminfo 顯示內(nèi)存信息

? ? ? ? ? ? ? ?cpuinfo 顯示CPU信息

? ? ? ? ? ? ? ?account 顯示accounts信息

? ? ? ? ? ? ? ?activity 顯示所有的activities的信息

? ? ? ? ? ? ? ?window 顯示鍵盤(pán),窗口和它們的關(guān)系

? ? ? ? ? ? ? ?wifi 顯示wifi信息

其他命令我這邊就不一一展開(kāi)說(shuō)明了

Debug 相關(guān)

adb logcat 命令格式:adb logcat [–b <buffer>] [–v <format>] > log_file.txt

buffer:radio/events/main ?default is main

format: time- Display the date, invocation time, priority/tag, and PID of the originating process.

brief-Display priority/tag and PID of originating process (the default format).

? ? ? ? ? ? ?process - Display PID only.

? ? ? tag- Display the priority/tag only. ?

usb連接device抓取main log

adb logcat –b main –v time > main.txt

adb logcat –v time >main.txt -b default is main

usb連接device抓取events log

adb logcat –b events –v time > events.txt

usb連接device抓取radio log

adb logcat –b radio –v time > radio.txt

usb連接device抓取kernel log

adb shell cat /proc/kmsg > kernel.log

設(shè)置log輸出的filter

每一個(gè)Android log都有一個(gè)tag和一個(gè)優(yōu)先級(jí)與之關(guān)聯(lián)

tag: public static final String TAG=”xxx”;

priority:V(Verbose-lowest),D(Debug),I(Info),W(Warning),E(Error),F(Fatal),

S(Silent-highest,nothing is ever printed)

設(shè)置log filter的命令格式:adb logcat tag:priority ...

打出所有W和W priority以上的log

adb logcat *: W

只打出tag為ActivityManager的Info及以上log信息

只打出tag為ActivityManager的log

adb logcat ActivityManager:I *:S

adb logcat ActivityManager:* *:S

打出ActivityManager的Info及以上log信息和MyApp的Debug及以上log信息

adb logcat ActivityManager:I MyApp:D *:S

bugreport 相關(guān)

bugreport將打印出dumpsys,dumpstate和logcat等信息

adb bugreport <log_file_path> 顯示bug report中所有的信息

adb bugreport > bugreport.txt 將bugreport存儲(chǔ)到txt文件中

Memory相關(guān)

獲取系統(tǒng)所有process使用memory的排行情況

adb shell procrank >procrank.txt

獲取某一個(gè)process的memory使用情況

通過(guò)adb shell ps獲取系統(tǒng)所有process的pid

不帶pid則獲取系統(tǒng)所有process的情況

adb shell dumpsys meminfo pid 或者

adb shell dumpsys meminfo packagename

adb shell dumpsys meminfo >dumpsys_meminfo.txt

獲取系統(tǒng)memory總量和剩余量及其他信息

adb shell cat proc/meminfo >proc_meminfo.txt

獲取某個(gè)process的maps情況

adb shell cat proc/pid/maps >maps.txt

獲取某個(gè)process的smaps情況

adb shell cat proc/pid/smaps >smaps.txt

一些抓取其他模塊的log的常用命令:

adb shell dumpsys window >win.txt 查看當(dāng)前系統(tǒng)有哪些window

adb shell dumpsys activity activities > activity_stack_info.log ?查看當(dāng)前系統(tǒng)activity stack

adb shell dumpsys SurfaceFlinger ?>surfaceflinger.txt

adb shell dumpsys gfxinfo >gfxinfo.txt用這行指令去看所有process使用HWUI的情況

打開(kāi)AMS中broadcast相關(guān)的log開(kāi)關(guān):adb shell dumsys activity log br on

請(qǐng)用如下命令確認(rèn)GPU driver的版本:

adb shell cat /proc/pvr/version >gpu_version.txt

下面內(nèi)容在內(nèi)部快速抓取log驗(yàn)證時(shí)覺(jué)得比較有用,抓取想要的log比較方便。

要抓log時(shí),使用adb logcat –v time tag1:優(yōu)先級(jí)別 ?tag2:優(yōu)先級(jí)別 … > log.txt就可以了。

使用 logcat 命令

? ? ? ? 查看和跟蹤系統(tǒng)日志緩沖區(qū)的命令logcat的一般用法是:

[adb] logcat [<option>] ... [<filter-spec>] ...

   下文介紹過(guò)濾器和命令選項(xiàng),詳細(xì)內(nèi)容可參見(jiàn)Listing of logcat Command Options。

   ?可以在開(kāi)發(fā)機(jī)中通過(guò)遠(yuǎn)程shell的方式使用logcat命令查看日志輸出:

$ adb logcat

   ?如果是在遠(yuǎn)程shell中可直接使用命令:

# logcat

  過(guò)濾日志輸出

? ? ? ? 每一條日志消息都有一個(gè)標(biāo)記和優(yōu)先級(jí)與其關(guān)聯(lián)。

標(biāo)記是一個(gè)簡(jiǎn)短的字符串,用于標(biāo)識(shí)原始消息的來(lái)源 (例如"View" 來(lái)源于顯示系統(tǒng))。

優(yōu)先級(jí)是下面的字符,順序是從低到高:

V — 明細(xì) (最低優(yōu)先級(jí))

D — 調(diào)試

I — 信息

W — 警告

E — 錯(cuò)誤

F — 嚴(yán)重錯(cuò)誤

S — 無(wú)記載 (最高優(yōu)先級(jí),沒(méi)有什么會(huì)被記載)

   ?通過(guò)運(yùn)行l(wèi)ogcat ,可以獲得一個(gè)系統(tǒng)中使用的標(biāo)記和優(yōu)先級(jí)的列表,觀察列表的前兩列,給出的格式是<priority>/<tag>。

  這里是一個(gè)日志輸出的消息,優(yōu)先級(jí)是“I”,標(biāo)記是“ActivityManager”:

I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}

  如果想要減少輸出的內(nèi)容,可以加上過(guò)濾器表達(dá)式進(jìn)行限制,過(guò)濾器可以限制系統(tǒng)只輸出感興趣的標(biāo)記-優(yōu)先級(jí)組合。

  過(guò)濾器表達(dá)式的格式是tag:priority ... ,其中tag是標(biāo)記, priority是最小的優(yōu)先級(jí), 該標(biāo)記標(biāo)識(shí)的所有大于等于指定優(yōu)先級(jí)的消息被寫(xiě)入日志。也可以在一個(gè)過(guò)濾器表達(dá)式中提供多個(gè)這樣的過(guò)濾,它們之間用空格隔開(kāi)。

  下面給出的例子是僅輸出標(biāo)記為“ActivityManager”并且優(yōu)先級(jí)大于等于“Info”和標(biāo)記為“MyApp”并且優(yōu)先級(jí)大于等于“Debug”的日志:

adb logcat ActivityManager:I MyApp:D *:S

  上述表達(dá)式最后的 *:S 用于設(shè)置所有標(biāo)記的日志優(yōu)先級(jí)為S,這樣可以確保僅有標(biāo)記為“ActivityManager”和“MyApp”的日志被輸出,使用 *:S 是可以確保輸出符合指定的過(guò)濾器設(shè)置的一種推薦的方式,這樣過(guò)濾器就成為了日志輸出的“白名單”。

  下面的表達(dá)是顯示所有優(yōu)先級(jí)大于等于“warning”的日志:

adb logcat *:W

  如果在開(kāi)發(fā)用電腦上運(yùn)行 logcat (相對(duì)于運(yùn)行運(yùn)程shell而言),也可以通過(guò)ANDROID_LOG_TAGS環(huán)境變量設(shè)置默認(rèn)的過(guò)濾器表達(dá)式:

export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"

  需要注意的是,如果是在遠(yuǎn)程shell或是使用adb shell logcat 命令運(yùn)行l(wèi)ogcat , ANDROID_LOG_TAGS 不會(huì)導(dǎo)出到模擬器或手機(jī)設(shè)備上。

  控制日志格式

? ? ? ? 日志消息在標(biāo)記和優(yōu)先級(jí)之外還有很多元數(shù)據(jù)字段,這些字段可以通過(guò)修改輸出格式來(lái)控制輸出結(jié)果, -v 選項(xiàng)加上下面列出的內(nèi)容可以控制輸出字段:

brief — 顯示優(yōu)先級(jí)/標(biāo)記和原始進(jìn)程的PID (默認(rèn)格式)

process — 僅顯示進(jìn)程PID

tag — 僅顯示優(yōu)先級(jí)/標(biāo)記

thread — 僅顯示進(jìn)程:線程和優(yōu)先級(jí)/標(biāo)記

raw — 顯示原始的日志信息,沒(méi)有其他的元數(shù)據(jù)字段

time — 顯示日期,調(diào)用時(shí)間,優(yōu)先級(jí)/標(biāo)記,PID

long —顯示所有的元數(shù)據(jù)字段并且用空行分隔消息內(nèi)容

? 可以使用 -v啟動(dòng) logcat來(lái)控制日志格式:

[adb] logcat [-v <format>]

? 例如使用 thread 輸出格式:

adb logcat -v thread

? 注意只能在 -v 選項(xiàng)中指定一種格式。

  Viewing Alternative Log Buffers

? ? ? ? Android日志系統(tǒng)為日志消息保持了多個(gè)循環(huán)緩沖區(qū),而且不是所有的消息都被發(fā)送到默認(rèn)緩沖區(qū),要想查看這些附加的緩沖區(qū),可以使用-b 選項(xiàng),以下是可以指定的緩沖區(qū):

radio — 查看包含在無(wú)線/電話相關(guān)的緩沖區(qū)消息

events — 查看事件相關(guān)的消息

main — 查看主緩沖區(qū) (默認(rèn)緩沖區(qū))

-b 選項(xiàng)的用法:

[adb] logcat [-b <buffer>]

? 例如查看radio緩沖區(qū):

adb logcat -b radio

1、導(dǎo)出日志到sd卡

?adb logcat -d -f /sdcard/log.txt

2、導(dǎo)出日志到本地PC

?adb logcat -v time ActivityManager:I MyApp:V -v > log.txt

轉(zhuǎn)載于:https://www.cnblogs.com/PeakerChen/p/5023541.html

總結(jié)

以上是生活随笔為你收集整理的adb常用命令的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。