真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linuxpm命令 linux系統(tǒng)pam

Android中AM、PM、dumpsys命令使用總結

am指令是 activity manager的縮寫,可以啟動Service、Broadcast,殺進程,監(jiān)控等功能,這些功能都非常便捷調(diào)試程序。

創(chuàng)新互聯(lián)主營咸豐網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都App制作,咸豐h5重慶小程序開發(fā)搭建,咸豐網(wǎng)站營銷推廣歡迎咸豐等地區(qū)企業(yè)咨詢

可以通過adb shell 進入Android 的Linux命令界面,輸入am -help查看詳細命令,先介紹幾個簡單用法,

命令格式如下

命令列表:

原理分析:am命令實的實現(xiàn)方式在Am.java,最終幾乎都是調(diào)用ActivityManagerService相應的方法來完成的,am monitor除外。比如前面概述中介紹的命令am start -a android.intent.action.VIEW -d , 啟動Acitivty最終調(diào)用的是ActivityManagerService類的startActivityAsUser()方法來完成的。再比如am kill-all命令,最終的實現(xiàn)工作是由ActivityManagerService的killBackgroundProcesses()方法完成的。

下面說一下[options]和 INTENT參數(shù)的意義以及如何正確取值。

主要是啟動Activity命令am start [options] INTENT使用options參數(shù),接下來列舉Activity命令的[options]參數(shù):

啟動Activity的實現(xiàn)原理: 存在-W參數(shù)則調(diào)用startActivityAndWait()方法來運行,否則startActivityAsUser()。

命令

例如: 向pid=12345的進程,發(fā)出level=RUNNING_LOW的收緊內(nèi)存命令

level取值范圍為: HIDDEN、RUNNING_MODERATE、BACKGROUND、RUNNING_LOW、MODERATE、RUNNING_CRITICAL、COMPLETE

am的子命令,startservice, stopservice, broadcast, kill, profile start, profile stop, dumpheap的可選參數(shù)都允許設置--user USER_ID。目前市面上的絕大多數(shù)手機還是單用戶模式,因此可以忽略該參數(shù),默認為當前用戶。

例如:啟動id=10001的用戶的指定service。

Intent的參數(shù)和flags較多,為了方便,這里分為3種類型參數(shù),常用參數(shù),Extra參數(shù),F(xiàn)lags參數(shù)

實例

(1). 基本類型

參數(shù)es是Extra String首字母簡稱,實例:

(2). 數(shù)組類型

參數(shù)eia,是Extra int array首字母簡稱,多個value值之間以逗號隔開,實例:

(3). ArrayList類型

參數(shù)efal,是Extra float Array List首字母簡稱,多個value值之間以逗號隔開,實例:

pm工具為包管理(package manager)的簡稱,可以使用pm工具來執(zhí)行應用的安裝和查詢應用寶的信息、系統(tǒng)權限、控制應用,pm工具是Android開發(fā)與測試過程中必不可少的工具,shell命令格式如下:

原理分析:pm命令實的實現(xiàn)方式在Pm.java,最后大多數(shù)都是調(diào)用PackageManagerService相應的方法來完成的。disbale之后,在桌面和應用程序列表里邊都看到不該app。

查看所有的package,

[options]參數(shù):

disabled + enabled = 總應用個數(shù); 系統(tǒng) + 第三方 = 總應用個數(shù)。

查看第3方應用:

查看已經(jīng)被禁用的包名

FILTER參數(shù)

當FILTER為不為空時,則只會輸出包名帶有FILTER字段的應用;當FILTER為空時,則默認顯示所有滿足條件的應用。

例如,查看包名帶有weather字段的包名

[options]參數(shù):

PATH參數(shù): 指的是需要安裝的apk所在的路徑

dumpsys是Android自帶的強大debug工具,從名字就可以看出,主要是用于dump 當前android system的一些信息,是一項分析手機問題,運行狀態(tài),使用情況等十分有效的手段。

實現(xiàn)原理

dumpsys的源碼結構其實很簡單,只有一個dumpsys.cpp

/frameworks/native/cmds/dumpsys/dumpsys.cpp

先通過defaultServiceManager()函數(shù)獲得ServiceManager對象,然后根據(jù)dumpsys傳進來的參數(shù)通過函數(shù)checkService來找到具體的service, 并執(zhí)行該service的dump方法,達到dump service的目的。

不同的Android系統(tǒng)版本支持的命令有所不同,可通過下面命令查看當前手機所支持的dump服務,先進入adb shell,再執(zhí)行如下命令:dumpsys -l。 這些服務名可能并看不出其調(diào)用的哪個服務,可以通過下面指令:service list。

服務列表有很多,這里簡單介紹幾種

通過下面命令可打印具體某一項服務:dumpsys service,其中service便是前面表格中的服務名

接下來主要說下dumpsys activity 用法

命令

options可選值

dumpsys activity等價于依次輸出下面7條指令:

cmd可選值

命令

返回結果

上面的輸出結果可以分為以下四個部分

也可以只輸出某個pid或package的進程信息:

下面以AmberLocker作為實例進行分析

場景1:查詢某個App所有的Service狀態(tài)

解讀:Service類名為com.amber.lockscreen.LockerHeartService,包名為mobi.infolife.ezweather.locker.locker_2,baseDir(apk路徑)為/data/app/mobi.infolife.ezweather.locker.locker_2-2/base.apk,dataDir((apk數(shù)據(jù)路徑)

運行在進程pid=1115,進程名為進程名為mobi.infolife.ezweather.locker.locker_2,,uid=10060,還有創(chuàng)建時間等信息

場景2:查詢某個App所有的廣播狀態(tài)

場景3:查詢某個App所有的Activity狀態(tài)

場景4:查詢某個App的進程狀態(tài)

格式:ProcessRecord{Hashcode pid:進程名/uid},進程pid=941,進程名為mobi.infolife.ezweather.locker.locker_2:live,uid=10060.

該進程中還有Services,Connections, Providers, Receivers,

場景5:查詢棧頂Activity

dumpsys 的命令還有很多,這里就不一一列舉了。

adb命令和linux命令

adb root 獲取 root 權限。

adb sideload

adb shell ps 打印進程狀態(tài)。

adb shell top 展現(xiàn)上層 CPU 進程信息。

adb shell getprop 獲取 Android 系統(tǒng)服務屬性

adb shell setprop 設置服務屬性。

adb shell dumpsys 獲取系統(tǒng)數(shù)據(jù)。

adb logcat 打印日志文件

adb shell ip 主要用于顯示一些數(shù)據(jù)

adb shell netstat 主要用于網(wǎng)絡統(tǒng)計。

adb shell ping 沒啥好說的,和 PC 的 ping 命令一樣的。

adb shell netcfg 通過配置文件配置和管理網(wǎng)絡連接。

adb shell cp 字面意思,很好理解,復制。

adb shell pwd 定位當前的操作位置

adb shell mv 移動或者更名文件

adb shell mkdir 創(chuàng)建一個文件夾

adb shell rm 刪除文件或者目錄

adb shell ls 列出目錄內(nèi)容。

adb shell pm clear 清除應用緩存。

adb shell pm path 打印 apk 的路徑。

adb usb 設置設備以 USB 形式連接 PC

adb kill-server 終止 adb 進程。

adb forward 端口映射,將 PC 端的某端口數(shù)據(jù)重定向到手機端的一個端口。

adb devices 主要是用于打印當前連接的所有模擬器或者設備。

shutdown -h now 關閉系統(tǒng)

init 0 關閉系統(tǒng)

telinit 0 關閉系統(tǒng)

shutdown -h hours:minutes 按預定時間關閉系統(tǒng)

shutdown -c 取消按預定時間關閉系統(tǒng)

shutdown -r now 重啟

reboot 重啟

logout 注銷

文件和目錄

cd /home 進入 '/ home' 目錄'

cd .. 返回上一級目錄

cd ../.. 返回上兩級目錄

cd 進入個人的主目錄

cd ~user1 進入個人的主目錄

cd - 返回上次所在的目錄

pwd 顯示工作路徑

ls 查看目錄中的文件

ls -F 查看目錄中的文件

ls -l 顯示文件和目錄的詳細資料

ls -a 顯示隱藏文件

ls [0-9] 顯示包含數(shù)字的文件名和目錄名

tree 顯示文件和目錄由根目錄開始的樹形結構

lstree 顯示文件和目錄由根目錄開始的樹形結構

mkdir dir1 創(chuàng)建一個叫做 'dir1' 的目錄'

mkdir dir1 dir2 同時創(chuàng)建兩個目錄

mkdir -p /tmp/dir1/dir2 創(chuàng)建一個目錄樹

rm -f file1 刪除一個叫做 'file1' 的文件'

rmdir dir1 刪除一個叫做 'dir1' 的目錄'

rm -rf dir1 刪除一個叫做 'dir1' 的目錄并同時刪除其內(nèi)容

rm -rf dir1 dir2 同時刪除兩個目錄及它們的內(nèi)容

mv dir1 new_dir 重命名/移動 一個目錄

cp file1 file2 復制一個文件

cp dir/* . 復制一個目錄下的所有文件到當前工作目錄

cp -a /tmp/dir1 . 復制一個目錄到當前工作目錄

cp -a dir1 dir2 復制一個目錄

cp -r dir1 dir2 復制一個目錄及子目錄

ln -s file1 lnk1 創(chuàng)建一個指向文件或目錄的軟鏈接

ln file1 lnk1 創(chuàng)建一個指向文件或目錄的物理鏈接

touch -t 0712250000 file1 修改一個文件或目錄的時間戳 - (YYMMDDhhmm)

file file1 outputs the mime type of the file as text

iconv -l 列出已知的編碼

Linux常用命令

列出當前目錄的文件

常用參數(shù):?

-a: 顯示當前目錄的所有文件,包含隱藏文件;?

-l: 顯示文件詳情;?

-Z: 顯示文件的 SE Linux context。?

示例:ls -laZ [if !vml] [endif] 以 acct 為例: drwxr-xr-x:其中 d 代表該文件為目錄,若為 l 則為軟鏈接,軟連接后又箭頭代表其實際指向的文件,如etc - /system/etc 則訪問 etc 實際等同訪問/system/etc,留空則代表該文件為一個文件;rwxr-xr-x 代表其權限為 755,具體算法為將上述字段每 3 個分為 1 組得 rwx,r-x,r-x,凡是有字母標記的皆計數(shù) 1,反之為 0,得二進制 111,101,101,轉(zhuǎn)為 10 進制數(shù)字即得7, 5,5 ,即為該文件權限; root root :依次代表該文件的所有者(owner)為 root,用戶組(group)為 root,上述屬性可通過 chown 命令修改,日常替換文件需與原文件該屬性維持一致; unlabeled:代表 SE Linux context。

前往指定目錄

更改文件所有者和用戶組? ?示例:chown root:root temfile?將 tmpfile文件 的所有者和用戶組從 meidia:media 更改為 root:root

將文件內(nèi)容顯示出來。

注意不要隨便去 cat 一個很大的文件或與 log 驅(qū)動節(jié)點無關的文件,否則將造成串口輸出亂碼或死機?。。∈纠篶at /proc/kmsg 將打印出所有 kernel log。

用于抓取 android logcat 打印。

常用參數(shù):

-v : 設置打印格式,可用選項為 brief process tag thread raw time threadtime long,我們比較常用 logcat -v time,此時抓的 log 將在每一行開頭添加時間信息;

-s : 設置過濾器,過濾器的選擇取決于軟件中打印 log 時使用的 TAG ,如

ActivityManagerService.java 中的打印使用的 TAG = ActivityManager,則抓相關打印方法為 logcat -s ActivityManager;

-c : 清除 log 緩存,常用于清除之前的打印緩存,如復現(xiàn)某個必現(xiàn)問題,則可先執(zhí)行 logcat -c 再抓 logcat 重現(xiàn)必現(xiàn)手法以排除無關 log 冗余信息影響問題定位; pm

包管理命令,用于管理安卓 app 應用。

常用參數(shù):

-l : 顯示所有安裝包應用,等同于 pm list packages

以 package:/system/priv-app/Launcher2.apk=com.android.launcher 為例:

Apk Launcher2 路徑位于/system/priv-app/Launcher2.apk,其包名為 com.android.launcher

path : 根據(jù)報名返回所在 apk 路徑

install : 安裝 apk

-r :安裝一個已經(jīng)存在的 apk 并保留其數(shù)據(jù);

-d : 允許降級安裝

如:pm install -r xxx.apk

uninstall : 卸載 apk,命令僅支持卸載 data/app,后接包名;

如:pm uninstall com.sys.migusmartlink.ott.tv //卸載包名為 com.sys.migusmartlink.ott.tv 的 apk

隨機測試指令,會自動模擬一些用戶操作對 APP 進行壓力測試。

常用參數(shù):

-p :指定啟動的 APK,我們比較常用的是 monkey -p com.xxx.yyy 1 來啟動一個 apk 的隨機頁面。

用于啟動和管理 activity 和 service

常用參數(shù):

start : 后接 intent 啟動一個頁面;

startservice : 后接 intent 啟動一個 service; stopservice :后接 intent 停止一個 service; broadcast :后接一個 intent 發(fā)送一個廣播; kill :后接一個 app 包名,殺掉該 app 所有進程;在 shell 環(huán)境下用如下參數(shù)表述一個 intent:

[-a ACTION] [-d DATA_URI] [-t MIME_TYPE]

[-c CATEGORY [-c CATEGORY] ...]

[-e|--es EXTRA_KEY EXTRA_STRING_VALUE ...]

[--esn EXTRA_KEY ...]

[--ez EXTRA_KEY EXTRA_BOOLEAN_VALUE ...]

[--ei EXTRA_KEY EXTRA_INT_VALUE ...]

[--el EXTRA_KEY EXTRA_LONG_VALUE ...]

[--ef EXTRA_KEY EXTRA_FLOAT_VALUE ...]

[--eu EXTRA_KEY EXTRA_URI_VALUE ...]

[--ecn EXTRA_KEY EXTRA_COMPONENT_NAME_VALUE]

[--eia EXTRA_KEY EXTRA_INT_VALUE[,EXTRA_INT_VALUE...]]

[--ela EXTRA_KEY EXTRA_LONG_VALUE[,EXTRA_LONG_VALUE...]]

[--efa EXTRA_KEY EXTRA_FLOAT_VALUE[,EXTRA_FLOAT_VALUE...]]

[-n COMPONENT] [-f FLAGS]

示例:

如我們在 logcat 抓到如下打印啟動了播放器:

START u0 {act=android.intent.action.VIEW dat=[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 typ=video/* flg=0x13000000 cmp=com.meson.videoplayer/.VideoPlayer} from pid 15204

則我們可以使用如下 am 指令來啟動它:

am start -a android.intent.action.VIEW -d [4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 -t video/* -f 0x13000000 -n com.meson.videoplayer/.VideoPlayer am start -n com.android.settings/.Settings //啟動原生安卓設置主頁

am broadcast -a com.chinamobile.action.KEY_PRESS_DOWN --ei keyCode 11 am broadcast -a com.chinamobile.action.IR_TEST --es irphycode "0x008EDD22" //發(fā)送廣播

查找命令,查找文件中是否包含指定字符串并輸出該行示例:

grep -rns "repeat" /system/etc/remote1.conf //找出/system/etc/remote1.conf 所有包含 repeat 的行并展示行號

參數(shù)說明:

-a:此選項通常在復制目錄時使用,它保留鏈接、文件屬性,并復制目錄下的所有內(nèi)容。其作用等于dpR參數(shù)組合。

-d:復制時保留鏈接。這里所說的鏈接相當于Windows系統(tǒng)中的快捷方式。

-f:覆蓋已經(jīng)存在的目標文件而不給出提示。

-i:與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。

-p:除復制文件的內(nèi)容外,還把修改時間和訪問權限也復制到新文件中。

-r:若給出的源文件是一個目錄文件,此時將復制該目錄下所有的子目錄和文件。

-l:不復制文件,只是生成鏈接文件。

命令示例:cp -a a? parentPath/sonPath/ a對應當前文件夾下目錄或文件名? 可替換為絕對路徑?

移動指令,等效于 windows 的移動和重命名。

示例:

mv /data/tmp1 /data/local/tmp2 //將 data/tmp1移動到/data/local/ 并重命名為 tmp2

刪除指令,用于刪除文件和文件夾,示例:

rm -rf tmp // 刪除 tmp,建議加上-rf參數(shù),其會刪除 tmp 所有的目錄和文件。

創(chuàng)建目錄。常用參數(shù):

-p :若 mkdir -p 后接路徑包含不存在路徑則一并創(chuàng)建。

同步命令,常用于 cp 替換文件或指令結束后同步狀態(tài),有益無害。

重定向,即將一個命令的輸出指向另外路徑的文件,使用覆蓋模式,即重定向到的文件若存在將覆蓋里面的內(nèi)容。

示例:

logcat /data/xxx.log; //將 logcat輸出到/data/xxx.log;

cat /proc/kmsg /data/kmsg.log; //將 kmsg 打印輸出重定向到/data/kmsg.log

重定向,即將一個命令的輸出指向另外路徑的文件,使用拼接模式,即重定向到的文件若存在則將輸出拼接到原文件的后面。

示例:

logcat /data/xxx.log; //例如我們做 netreboot的時候需要每一次開關機的 log,則會用拼接模式記錄log。

將指令放至后臺靜默執(zhí)行。

依次執(zhí)行指令,若有指令執(zhí)行失敗,則后續(xù)指令不會執(zhí)行。

示例:

logcat -c logcat //先清除 logcat 緩存再抓取 log

超實用的adb與adb shell常用命令匯總

adb(Android Debug Bridge),SDK自帶的工具,可實現(xiàn)橋接功能,實現(xiàn)PC和android設備的交互

adb shell:基于Android linux系統(tǒng)操作,放在安卓設備的system/bin目錄下,手機端的命令

一:adb常用命令

1. PC連接android設備

(PC與android設備連接同一個wifi,或處于同一個局域網(wǎng))

連接:adb connect?ip:5555

斷開連接:adb disconnect?ip

查看連接設備的信息:adb devices

獲取設備的狀態(tài):adb get-state

2. 重啟adb server

打開adb服務:adb start-service

關閉adb服務:adb kill-service

3. 安裝卸載軟件

安裝:adb install apkpath(某個apk)

adb install -r?:強制安裝

卸載:?adb uninstall package(可用adb shell pm list packages查看包名)

4. 打印日志

打印android系統(tǒng)日志:adb logcat

將日志打印并保存指定文件夾:adb logcat? /Users/apple/Desktop/log.txt

終止進程:control+C

打印dumpsys,dumpstate,logcat的輸出,用于分析錯誤:adb bugreport

5. PC與android設備上文件復制

android設備上文件復制到PC上:adb pull

PC上文件推至android設備:adb push?

6.重新掛載system分區(qū)為可寫,需要root權限./system分區(qū)默認掛載為只讀,但有些操作比如給android系統(tǒng)添加命令,刪除自帶應用等需對系統(tǒng)進行寫操作,得重新掛載為可寫

adb shell

su

或:adb root

adb remount 重新掛載文件系統(tǒng),獲得可寫的權限(默認情況是只有可讀權限的),使用adb remount 的前提是要有root權限

7. 刪除系統(tǒng)應用

adb root

adb remount

adb shell

cd system/app

rm *apk

二:adb shell命令

adb shell 進入系統(tǒng)子目錄,exit 退出

1. pm命令

列出系統(tǒng)應用的所有包名:adb shell pm list packages?可用grep來過濾:adb shell pm list packages | grep 關鍵字

清除應用數(shù)據(jù)與緩存:adb shell pm clear packagename

2. am命令

啟動應用:adb shell am start -n com.xxx.xxxxxxx|xxx.Activity(可通過adb shell dumpsys activity activities | grep mFocusedActivity查看

強制停止應用:adb shell am force-stop packagename

3. input命令

模擬點擊事件,點擊坐標點(x,y):adb shell input tap x y

模擬滑動事件,從(x1,y1)到(x2,y2):adb shell input swipe x1 y1 x2 y2

發(fā)送文本內(nèi)容:adb shell input text

模擬按下home:adb shell input keyevent KRYCODE_HOME

4. screencap命令

截屏:adb shell screencap

5. 查看網(wǎng)絡狀態(tài)命令

查看當前網(wǎng)絡狀態(tài):adb shell netstat

通過配置文件配置和管理網(wǎng)絡連接:adb shell netcfg

查看網(wǎng)絡信息:ifconfig

測試網(wǎng)絡聯(lián)網(wǎng)狀態(tài):ping

5.其它相關命令

查看當前終端中進程:adb shell ps

獲取cpu信息:adb shell cat /proc/cpuinfo

查看內(nèi)存信息:adb shell cat /proc/meminfo

查看屏幕分辨率:adb shell wm size

查看設備ip地址:adb shell ifconfig | grep Mask

查看實時資源占用情況:adb shell top

android 中l(wèi)inux 命令pm常見用法(安裝卸載app)

27種用法格式 :

用法說明 :

1、 pm list packages : prints all packages, optionally only those whose package name contains the text in FILTER. Options:

例子:列出系統(tǒng)中所有packages

2、 pm list permission-groups : prints all known permission groups.

例子:

3、 pm list permissions : prints all known permissions, optionally only those in GROUP. Options:

例子:列出系統(tǒng)所有許可

4、 pm list instrumentation : use to list all test packages; optionally supply to list the test packages for a particular application. Options:

-f: list the .apk file for the test package.

5、 pm list features : prints all features of the system.

例子:列出所有手機特性

6、 pm list users : prints all users on the system.

例子:

7、 pm path : print the path to the .apk of the given PACKAGE.

例子:按包名查找apk文件所在路徑

8、 pm dump : print system state associated with the given PACKAGE.

9、 pm install : installs a package to the system. Options:

例子:

10、 pm uninstall : removes a package from the system. Options:

-k: keep the data and cache directories around after package removal. 保留數(shù)據(jù)

例子:

11、 pm clear : deletes all data associated with a package..

例子:只刪除數(shù)據(jù)

12、 pm enable, disable, disable-user, disable-until-used : these commands change the enabled state of a given package or component (written as "package/class").

13、 pm grant, revoke : these commands either grant or revoke permissions to applications. Only optional permissions the application has declared can be granted or revoked.

14、 pm get-install-location : returns the current install location.

15、 pm set-install-location : changes the default install location.

NOTE: this is only intended for debugging; using this can cause applications to break and other undersireable behavior.

16、 pm trim-caches : trim cache files to reach the given free space.

17、 pm create-user : create a new user with the given USER_NAME, printing the new user identifier of the user. 創(chuàng)建新用戶

18、 pm remove-user : remove the user with the given USER_IDENTIFIER, deleting all data associated with that user 。 按用戶ID刪除用戶


本文題目:linuxpm命令 linux系統(tǒng)pam
文章路徑:http://weahome.cn/article/hhsipp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部