#獲取系統(tǒng)默認(rèn)輸入法
10年積累的網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有惠民免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
#默認(rèn)搜狗輸入法
settings get secure default_input_method
com.sohu.inputmethod.sogouoem/.SogouIME
#默認(rèn)為Appium使用中文輸入時(shí)安裝的輸入法
settings get secure default_input_method
io.appium.android.ime/.UnicodeIME
#put命令更改默認(rèn)輸入法(將io.appium.android.ime/.UnicodeIME改為com.sohu.inputmethod.sogouoem/.SogouIME)
settings put secure default_input_method com.sohu.inputmethod.sogouoem/.SogouIME
#獲取日期時(shí)間選項(xiàng)中通過(guò)網(wǎng)絡(luò)獲取時(shí)間和時(shí)區(qū)的狀態(tài),1為允許(enable)、0為不允許(Disable)
settings get global auto_time
settings get global auto_time_zone
1
#更改該狀態(tài),從1改為0
settings put global auto_time 0
settings put global auto_time_zone 0
#獲取亮度是否為自動(dòng)獲取
settings get system screen_brightness_mode
1
#獲取當(dāng)前亮度值
settings get system screen_brightness
120
#更改亮度值(亮度值在0—255之間)
settings put system screen_brightness 30
#獲取屏幕休眠時(shí)間
settings get system screen_off_timeout
30000
#更改休眠時(shí)間,5分鐘
settings put system screen_off_timeout 300000
很早就想整理一下自己平時(shí)常用的一些adb命令,不僅為了便于以后查找,而且整理的過(guò)程自己又重新復(fù)習(xí)了一遍,但是當(dāng)我開(kāi)始在度娘一搜的時(shí)候,發(fā)現(xiàn)很多人已經(jīng)寫(xiě)的非常詳細(xì)了,尤其是當(dāng)我發(fā)現(xiàn)了這篇adb概括
心中一句NND,怎么可以寫(xiě)的這么詳細(xì),瞬間沒(méi)了想寫(xiě)這篇文章的欲望,如果你點(diǎn)了鏈接發(fā)現(xiàn)確實(shí)很全,那么恭喜你可以關(guān)掉這篇了,哈哈哈。
我就不這么想的,雖然很全,但不是我常用的,因人而異,所以我就權(quán)當(dāng)記筆記+替這哥們宣傳了。
– adb devices , 獲取設(shè)備列表及設(shè)備狀態(tài)
設(shè)備的狀態(tài)有 3 種
device , 設(shè)備連接正常
offline , 設(shè)備離線,連接出現(xiàn)異常
unauthorized 設(shè)備為進(jìn)行授權(quán),需要在設(shè)備上是否允許調(diào)試對(duì)話框進(jìn)行授權(quán)
offline情況解決辦法,先執(zhí)行adb kill-server 命令,再執(zhí)行adb start-server 命令,再嘗試adb devices 查看列表,如果還是offline,來(lái)來(lái)來(lái),使用必殺技,重啟大法。
當(dāng)電腦連接多個(gè)android設(shè)備并可用時(shí),所有的adb命令都需要指定設(shè)備后執(zhí)行(當(dāng)然你也可以移除多余的設(shè)備)
adb -s 設(shè)備名稱 install/uninstall/shell/pull/push等命令
– adb install app在pc硬盤(pán)路徑,選中app直接拖入即可
常見(jiàn)的錯(cuò)誤情況
INSTALL_FAILED_TEST_ONLY, 安裝的app的debug版本的,未簽名,adb install -t 路徑即可安裝
INSTALL_FAILED_DUPLICATE_PACKAGE, 已經(jīng)安裝相同包名的app, 先卸載再安裝
– adb uninstall app的包名,卸載app
adb pull 將 Android 設(shè)備上的文件或者文件夾復(fù)制到本地
adb pull sdcard/Android/111.txt E:\
小技巧,可以將本地路徑指定為桌面,方便查看, 在桌面按住shift鍵,鼠標(biāo)右鍵選擇在此處打開(kāi)命令行窗口,直接輸入adb pull sdcard/Android/111.txt 執(zhí)行,就可將111.txt復(fù)制到桌面。
前提是設(shè)備已經(jīng)獲取root權(quán)限
adb root
adb remount
adb push 將pc上文件復(fù)制到android設(shè)備中,修改room原生應(yīng)用時(shí)比較頻繁使用,如settings.apk, launcher3.apk
– adb shell pm 命令
adb shell pm list package 列出android設(shè)備上的所有app
adb shell pm list package -s 列出android設(shè)備上的系統(tǒng)級(jí)別app
adb shell pm list package -3 列出android設(shè)備上的第三方app(用戶安裝的)
adb shell pm list package -f 列出app包名及對(duì)應(yīng)的apk名及存放位置
adb shell pm list package -i 列出app包名及其安裝來(lái)源(應(yīng)用市場(chǎng)名稱)
adb shell pm dump app包名 列出app的相關(guān)信息,類似獲取Manifest文件內(nèi)容
-查看前臺(tái) Activity
adb shell dumpsys activity activities “| grep mFocusedActivity”
-adb shell am 命令
最常用的就是啟動(dòng)指定的activity和發(fā)送指定的廣播
啟動(dòng)指定的activity
操作指令 adb shell am start -n 包名/類名
注:如果啟動(dòng)activity時(shí),出現(xiàn)如下錯(cuò)誤
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.mediatek.engineermode/.io.Gpio } from null (pid=3083, uid=2000) not exported from uid 1001
解決辦法,1、如果是你自己可控的app,那么找到你要調(diào)用的activity在manifest.xml中,增加
1
配置即可, android:name="" 可以為空字符串。
2、如果是不可控的app,例如我調(diào)用的系統(tǒng)原生app,那么你就洗洗睡吧,別折騰了,除非你修改源碼和上邊一樣操作,重新push替換原來(lái)的app。
啟動(dòng)默認(rèn)瀏覽器打開(kāi)一個(gè)網(wǎng)頁(yè)
adb shell am start -a android.intent.action.VIEW -d? * ********
先停止目標(biāo)應(yīng)用,再啟動(dòng)
adb shell am start -s com.android.camera/.Camera
啟動(dòng)相機(jī)
adb shell am start -n com.android.camera/.Camera
啟動(dòng)設(shè)置
adb shell am start -n com.android.settings/com.android.settings.Settings
啟動(dòng)Wifi設(shè)置
adb shell am start -n com.android.settings/com.android.settings.wifi.WifiSettings
啟動(dòng)藍(lán)牙設(shè)置
adb shell am start -n com.android.settings/com.android.settings.bluetooth.BluetoothSettings
其它的類似只要你能在manifest中找到配置的,都可以通過(guò)這種方法來(lái)調(diào)用
發(fā)送指定的廣播
操作指令 adb shell am broadcast -a 廣播名 --ei/es/ez 參數(shù)名 參數(shù)值 --ei/es/ez 參數(shù)名 參數(shù)值
–ei integer 值
–es String 值
–ez boolean 值
–ef float 值
–el long 值
例如之前寫(xiě)的
Android6.0 源碼修改之Setting列表配置項(xiàng)動(dòng)態(tài)添加和靜態(tài)添加, 當(dāng)中就通過(guò)發(fā)送廣播來(lái)接收增加配置列表項(xiàng)
adb shell am broadcast -a cn.dynamic.add.settingcategoryitem --es location “0-2” --es title “紅” --es intent “com.android.settings.SCHEDULE_POWER_ON_OFF_SETTING”
-adb shell input keycode 指令
HOME 鍵 adb shell input keycode 3
返回鍵 adb shell input keycode 4
打開(kāi)瀏覽器 adb shell input keycode 64
-adb shell wm 指令
屏幕分辨率 adb shell wm size
屏幕密度 adb shell wm density
adb shell wm density 320/480/640 可修改屏幕密度查看效果,對(duì)應(yīng)Launcher圖標(biāo)會(huì)縮放
adb shell ifconfig 命令
IP 地址 adb shell ifconfig “| grep Mask”
WIFI 地址 adb shell ifconfig wlan0
狀態(tài)欄和導(dǎo)航欄的顯示隱藏
命令:
adb shell settings put global policy_control
可由如下幾種鍵及其對(duì)應(yīng)的值組成,格式為 key1=value1:key2=value2。
key? ?? ???含義
immersive.full? ?? ???同時(shí)隱藏
immersive.status? ?? ???隱藏狀態(tài)欄
immersive.navigation? ?? ???隱藏導(dǎo)航欄
immersive.preconfirms? ?? ???同時(shí)顯示
這些鍵對(duì)應(yīng)的值可則如下值用逗號(hào)組合:
value? ?? ???含義
apps? ?? ???所有應(yīng)用
所有界面
packagename? ?? ???指定應(yīng)用
packagename? ?? ???排除指定應(yīng)用
例如:
adb shell settings put global policy_control immersive.full=*
表示設(shè)置在所有界面下都同時(shí)隱藏狀態(tài)欄和導(dǎo)航欄。(重啟也不會(huì)失效,恢復(fù)需調(diào)用下面的命令)
adb shell settings put global policy_control immersive.preconfirms=*
表示恢復(fù)顯示
adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3
表示設(shè)置在包名為 com.package1 和 com.package2 的應(yīng)用里隱藏狀態(tài)欄,在除了包名為 com.package3 的所有應(yīng)用里隱藏導(dǎo)航欄
adb shell am force-stop app??關(guān)閉APP
adb shell pm clear APP??app進(jìn)程被殺死,且會(huì)清楚所有數(shù)據(jù)
1:查找手機(jī)安裝應(yīng)用的包名:adb shell pm list packages -f
2:查看系統(tǒng)盤(pán)符:adb shell df
3:查看Log 1:adb shell 2: logcat | grep "abc"
4:刪除應(yīng)用:1:adbremount??2:adb shell??3:cdsystem/app? ?4:rm *.apk
5:安裝APK: adbinstall -r *.apk??或者 adb push*.apk??/system/app
6:查看APP啟動(dòng)的時(shí)間指令
adb shell am start -W -ncom.android.dialer/.DialtactsActivity??(W是大寫(xiě))執(zhí)行命令后APP會(huì)自 動(dòng)啟動(dòng),其中ThisTime即是本次? ???App啟動(dòng)所花費(fèi)的時(shí)間。
7:查看包名中當(dāng)前所在進(jìn)程信息:adb shell ps | grep +包名
8:查看Activity運(yùn)行的任務(wù)棧:adb shell dumpsys activity
9:查看鍵值:adb logcat | grep intercep??-i
10:查看模塊所占有的CPU資源:adb shell top -d 2 -m 10
11:查看可用系統(tǒng)的權(quán)
?? ???$ adb shell
?? ???# pm list permissions
12:模擬按鍵的輸入:adb shell input keyevent + 鍵值
?eg:??adb shell input keyevent??82? ?表示menu
?? ?? ? adb shell input keyevent??3? ???表示home
?? ?? ?adb shell input keyevent??19? ?表示up
?? ?? ? adb shell input keyevent??20? ?表示down
?? ?? ?adb shell input keyevent??21? ?表示left
?? ?? ? adb shell input keyevent??22? ?表示right
?? ?? ?adb shell input keyevent??66? ?表示enter
?? ?? ? adb shell input keyevent??4? ???表示back
13:模擬滑動(dòng)輸入:adb shell input touchscreen x1 y1 x2 y2
???eg: adb shell input touchscreen swipe 18 665 18 350
14:啟動(dòng)一個(gè)Activity : adb shell am start -n 包名+類名
15:錄制屏幕:adb shell screenrecord /sdcard/demo.mp4
16:重新啟動(dòng):adb reboot? ?
17:Monkey的基本用法下面是一個(gè)更為典型的命令行示例,它啟動(dòng)指定的應(yīng)用程序,并向其發(fā)送500個(gè)偽隨機(jī)事件:
?? ? $ adb shell monkey -p your.package.name -v 500
???如果跑桌面或者systemUi的monkey的話:
?? ?adb shell monkey -v -v -p 桌面包名 --pct-touch 50 --pct-motion 30 --pct-syskeys 20 --throttle 300 -s 200 200000
18:查找第三方應(yīng)用的詳細(xì)信息:
???adb shell dumpsys package +第三方包名(com.txznet.webchat)
1、使用詳細(xì)記錄查詢命令,可以打開(kāi)自己手機(jī)的撥號(hào)程序。
2、接著使用虛擬鍵盤(pán)輸入“*#*#4636#*#*”,完成輸入以后手機(jī)會(huì)自動(dòng)執(zhí)行且跳轉(zhuǎn)相應(yīng)界面。
3、然后點(diǎn)擊界面上的“使用情況統(tǒng)計(jì)數(shù)據(jù)”選項(xiàng)。
4、接著可以看到,在當(dāng)前界面手機(jī)用戶可以查看所有手機(jī)應(yīng)用的安裝時(shí)間和使用情況。
5、還可以查看自己手機(jī)的電池使用情況。手機(jī)用戶返回選項(xiàng)界面。然后點(diǎn)擊選項(xiàng)中的“電池信息”選項(xiàng)。
6、進(jìn)入“電池信息”選項(xiàng)界面以后。手機(jī)用戶就可以查看手機(jī)電池的相關(guān)信息。
android源碼目錄下的build/envsetup.sh文件,描述編譯的命令
- m:?????? Makes from the top of the tree.
- mm:????? Builds all of the modules in the current directory.
- mmm:???? Builds all of the modules in the supplied directories.
要想使用這些命令,首先需要設(shè)置android腳本編譯環(huán)境,在源碼根目錄執(zhí)行 source build/envsetup.sh
m:編譯所有的模塊
mm:編譯當(dāng)前目錄下的模塊,當(dāng)前目錄下要有Android.mk文件
mmm:編譯指定路徑下的模塊,指定路徑下要有Android.mk文件
下面舉個(gè)例子說(shuō)明,假設(shè)我要編譯android下的\framework\av\cmds\screenrecord模塊,
當(dāng)前目錄為源碼根目錄,方法如下:
1、source build/envsetup.sh
2、mmm framework/av/cmds/screenrecord
或者 :
1、source build/envsetup.sh
2、cd framework/av/cmds/screenrecord
3、mm
在Mac 下配置Android SDK的adb命令添加到環(huán)境變量:
1. 檢查 .bash_profile
使用 vim .bash_profile 打開(kāi)該文件,如果該文件存在則直接進(jìn)入如下第二個(gè)步驟,如果該文件不存在,可通過(guò)下面命令創(chuàng)建.bash_profile:
touch .bash_profile
2. 編輯 .bash_profile
打開(kāi).bash_profile文件,進(jìn)行編輯,命令如下:
vim .bash_profile
添加如下內(nèi)容, 以下是我的sdk的路徑,具體路徑根據(jù)自己sdk路徑稍作改動(dòng)即可;
3. 保存 .bash_profile
按 esc 鍵后退,然后輸入 :wq 后保存退出;
4. 更新配置
source .bash_profile
(1) 查看當(dāng)前顯示的activity的名字**
(2) 查看前臺(tái)Activity
(3). 查看前臺(tái)Activity的棧信息
結(jié)果如下:
在沒(méi)有root的手機(jī)里想adb pull出里面的東西可以先用這個(gè)命令搜出位置,然后在pull出來(lái)
將apk后綴改成zip, 然后解壓,
Ctrl + C 停止錄屏
配置fastboot命令環(huán)境變量
fastboot刷機(jī)步驟:
持續(xù)更新...
常用adb 命令
配置mat 環(huán)境,因?yàn)閺?android profile直接獲取到的hprof文件格式與mat的格式不兼容,所以需要使用工具轉(zhuǎn)換一下
第 1 行:進(jìn)程信息
總共(total):754個(gè)
運(yùn)行中(running)狀態(tài):1個(gè)
休眠(sleeping)狀態(tài):753個(gè)
停止(stopped)狀態(tài):0個(gè)
僵尸(zombie)狀態(tài):0個(gè)
第 2 行:內(nèi)存信息
5.5G total:物理內(nèi)存總量
5.4G used:使用中的內(nèi)存量
165M free:空閑內(nèi)存量
76M buffers: 緩存的內(nèi)存量
第 3 行:Swap分區(qū)信息
2.5G total:交換區(qū)總量
789M used:使用的交換區(qū)大小
1.7G free:空閑交換區(qū)大小
2.4G cached:緩沖的交換區(qū)大小
內(nèi)存監(jiān)控時(shí),可以監(jiān)控swap交換分區(qū)的used,如果這個(gè)數(shù)值在不斷的變化,說(shuō)明內(nèi)核在不斷進(jìn)行內(nèi)存和swap的數(shù)據(jù)交換,這是內(nèi)存不夠用了。
第 4 行:CPU信息
800%cpu:8核cpu
100%user:用戶進(jìn)程使用CPU占比
3%nice:優(yōu)先值為負(fù)的進(jìn)程占比
54%sys:內(nèi)核進(jìn)程使用CPU占比
641%idle:除IO等待時(shí)間以外的其它等待時(shí)間占比
0%iow:IO等待時(shí)間占比
3%irq:硬中斷時(shí)間占比
0%sirq:軟中斷時(shí)間占比
第 5 行及以下:各進(jìn)程的狀態(tài)監(jiān)控
PID:進(jìn)程id
USER:進(jìn)程所屬用戶
PR:進(jìn)程優(yōu)先級(jí)
NI:nice值,負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí)
VIRT:進(jìn)程使用的虛擬內(nèi)存總量,VIRT=SWAP+RES
RES:進(jìn)程使用的、未被換出的物理內(nèi)存大小,RES=CODE+DATA
SHR:共享內(nèi)存大小
S:進(jìn)程狀態(tài)
%CPU:上次更新到現(xiàn)在的CPU占用時(shí)間比
%MEM:使用物理內(nèi)存占比
TIME+:進(jìn)程時(shí)間的CPU時(shí)間總計(jì),單位1/100秒
ARGS:進(jìn)程名