[CM311-1A]-全网最全 Android 软件管理
##################################################
目錄
如何使用命令安裝卸載應(yīng)用
示例安裝一個(gè)小破站 TV 版
將安裝包上傳到系統(tǒng) /tmp 目錄
安裝 bilibiliTV 版
查看安裝后的軟件信息
卸載剛剛安裝的 tv
真的推薦安裝一個(gè)安卓終端模擬器
jackpal.androidterm 包
查看某個(gè)應(yīng)用的詳細(xì)信息
如何使用命令啟動(dòng)應(yīng)用程序
在前臺(tái)運(yùn)行 app
獲取包名和 activity 路徑
使用 am 的 start 命令啟動(dòng) APP
示例使用命令啟動(dòng)嗶哩嗶哩 TV 版
使用 pm 應(yīng)用管理工具
pm 簡(jiǎn)介
應(yīng)用安裝與數(shù)據(jù)文件的位置不同
查看包的系統(tǒng)狀態(tài)信息
查看系統(tǒng)功能與支持庫信息
測(cè)試包與 APK 路徑查詢
查詢
常用查詢語法及常用參數(shù)
列出所有包
-i 查看包的安裝者
-u 列出包和未安裝包信息
-e 列出啟用包
-d 列出禁用包
-s 列出系統(tǒng)包
-3 列出所有第三方包
-f 查看包的安裝位置
搜索包
卸載
根據(jù) UID 卸載指定賬戶應(yīng)用
安裝
將 APP 安裝到指定 UID 用戶下
控制
清除應(yīng)用數(shù)據(jù)
停用/禁用/啟用
隱藏與恢復(fù)應(yīng)用
默認(rèn)安裝位置
##################################################
如何使用命令安裝卸載應(yīng)用
——————————
示例安裝一個(gè)小破站 TV 版
%%%%%
將安裝包上傳到系統(tǒng) /tmp 目錄
? ? ? ? 如下 看注釋:
cmcc_jiangsu:/ # cd /tmp /* 進(jìn)入 tmp */ cmcc_jiangsu:/tmp # ls /* 此時(shí)可以看到?jīng)]有安裝包 */ capture cmcc_jiangsu:/tmp # exit /* 退出 shell */C:\Users\byme>adb connect 192.168.0.101 /* 確定連接 */ already connected to 192.168.0.101:5555C:\Users\byme>adb push D:\download\bilibiliTV\bilibiliTV_1.5.1_dangbei.apk /tmp /* 將 apk 上傳到 tmp 目錄 */ D:\download\bilibiliTV\bilibiliTV_1.5....d. 3.1 MB/s (20727626 bytes in 6.398s)C:\Users\byme>adb shell /* 進(jìn)入系統(tǒng)終端 */ cmcc_jiangsu:/ # cd /tmp /* 進(jìn)入 tmp */ cmcc_jiangsu:/tmp # ls /* 發(fā)現(xiàn) apk */ capture cmcc_jiangsu:/tmp # ls bilibiliTV_1.5.1_dangbei.apk capture cmcc_jiangsu:/tmp # ls -alh total 10M drwxrwxrwt 3 root root 80 2022-07-23 17:21 . drwxr-xr-x 23 root root 0 2015-01-01 08:00 .. -rw-r--r-- 1 root root 20M 2022-07-22 23:43 bilibiliTV_1.5.1_dangbei.apk drwxrwxrwt 2 root root 40 2015-01-01 08:00 capture cmcc_jiangsu:/tmp #%%%%%
安裝 bilibiliTV 版
cmcc_jiangsu:/tmp # ls /* 看一眼 apk 名字 */ bilibiliTV_1.5.1_dangbei.apk capture cmcc_jiangsu:/tmp # pm install bilibiliTV_1.5.1_dangbei.apk /* 安裝 apk 輸入前幾個(gè)字母就可以按下 TAB 自動(dòng)補(bǔ)全 */ avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:object_r:su _tmpfs:s0 tclass=file permissive=1 Success cmcc_jiangsu:/tmp # screencap -p /sdcard/sc/1.png /* 截取屏幕 */ screencap 3 screencap start. screen_type: 1 file path: /sdcard/sc/1.png new ScreenCatch ok got video+osd data: 1280 x 720 SkEncodeImage success screencap end cmcc_jiangsu:/tmp # ls /sdcard/sc -alh /* 確定截取成功 */ total 282K drwxrwx--x 2 root sdcard_rw 4.0K 2022-07-20 18:58 . drwxrwx--x 22 root sdcard_rw 4.0K 2022-07-20 18:56 .. -rw-rw---- 1 root sdcard_rw 554K 2022-07-23 17:52 1.png cmcc_jiangsu:/tmp # exitC:\Users\byme>adb pull /sdcard/sc/1.png D:1.png /* 將截屏下載到 D 盤根目錄 */ /sdcard/sc/1.png: 1 file pulled, 0 skipped. 0.3 MB/s (567707 bytes in 1.863s)C:\Users\byme> start 1.png /* 使用默認(rèn)圖像查看器打開截屏文件 */? ? ? ? 看 出現(xiàn)一個(gè)云視聽小電視:
? ? ? ? 安裝成功:
? ? ? ? 添加到桌面:
? ? ? ? 啟動(dòng)成功:
? ? ? ? 好家伙我竟然在盒子上逛 B 站:
%%%%%
查看安裝后的軟件信息
? ? ? ? 我們很輕易的就能獲取這個(gè)應(yīng)用的包名叫
com.xiaodianshi.tv.yst? ? ? ? 云視聽小電視
cmcc_jiangsu:/ # pm list packages -3 /* 查看安裝的所有第三方軟甲 */ package:com.xiaodianshi.tv.yst /* 這個(gè)就是我們剛剛安裝的 b 站 */ package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:com.dangbeimarket cmcc_jiangsu:/ # pm list packages -i "tv" /* 查看 tv 相關(guān)軟件的安裝信息 */ package:com.xiaodianshi.tv.yst installer=null package:com.dangbei.tvlauncher installer=null package:me.thomastv.rebootupdate installer=null cmcc_jiangsu:/ # pm list packages -f "tv" /* 查看 tv 相關(guān)聯(lián)應(yīng)用的文件 */ package:/data/app/com.xiaodianshi.tv.yst-7s2x33sktQES0TVqJsQhbA==/base.apk=com.x iaodianshi.tv.yst package:/system/app/Dangbei2.apk=com.dangbei.tvlauncher package:/data/app/me.thomastv.rebootupdate-4SVHakbq9YXs3X7ozxyY0w==/base.apk=me. thomastv.rebootupdate cmcc_jiangsu:/ # ls /data/app/com.xiaodianshi.tv.yst-7s2x33sktQES0TVqJsQhbA\=\= base.apk lib oat cmcc_jiangsu:/ # ls -alh /data/app/com.xiaodianshi.tv.yst-7s2x33sktQES0TVqJsQhbA\=\= total 10M drwxr-xr-x 4 system system 4.0K 2022-07-23 17:44 . drwxrwxr-x 8 system system 4.0K 2022-07-23 17:44 .. -rw-r--r-- 1 system system 20M 2022-07-23 17:44 base.apk drwxr-xr-x 3 system system 4.0K 2022-07-23 17:44 lib drwxrwx--x 3 system install 4.0K 2022-07-23 17:44 oat cmcc_jiangsu:/ #%%%%%
卸載剛剛安裝的 tv
?
cmcc_jiangsu:/ # pm list packages -3 /* 卸載之前的第三方軟件 */
package:com.xiaodianshi.tv.yst
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:com.dangbeimarket
cmcc_jiangsu:/ # pm uninstall com.xiaodianshi.tv.yst /* 卸載小破站 */
Success
cmcc_jiangsu:/ # pm list packages -3 /* 卸載之后再次查看第三方軟件 */
package:com.mylejia.store
package:com.fengyun.live
package:me.thomastv.rebootupdate
package:com.dangbeimarket
cmcc_jiangsu:/ #
——————————
真的推薦安裝一個(gè)安卓終端模擬器
? ? ? ? 安卓終端模擬器就相當(dāng)于 Windows 的 cmd/Xshell 或者 Linux 的 console/terminal
? ? ? ? 開源地址:
Terminal Emulator for Android Downloadshttps://jackpal.github.io/Android-Terminal-Emulator/
? ? ? ? 如果訪問不了也可以下載我提供的資源 跟上面是一樣的:
pan.baidu.com/s/1yw8pzpMviDLjRJRf1IVZ4w 1297 ranchui%%%%%
jackpal.androidterm 包
????????我這個(gè)包名是?jackpal.androidterm
cmcc_jiangsu:/ # pm list packages -3 /* 安裝之前的第三方軟件 */ package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:com.dangbeimarket cmcc_jiangsu:/ # ls /tmp/Term.apk -alh /* 確定 APK 位置 */ -rw-r--r-- 1 root root 551K 2022-05-28 23:35 /tmp/Term.apk cmcc_jiangsu:/ # pm install /tmp/Term.apk /* 安裝 APK */ avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:object_r:su _tmpfs:s0 tclass=file permissive=1 Success cmcc_jiangsu:/ # pm list packages -3 /* 安裝之后再看 */ package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png /* 截個(gè)屏 */ screencap 3 screencap start. screen_type: 1 file path: /sdcard/sc/1.png new ScreenCatch ok got video+osd data: 1280 x 720 SkEncodeImage success screencap end cmcc_jiangsu:/ # exit /* 退出終端 */C:\Users\byme>adb pull /sdcard/sc/1.png d:1.png /* 獲取截屏 */ /sdcard/sc/1.png: 1 file pulled, 0 ski...ed. 2.9 MB/s (1237270 bytes in 0.402s)C:\Users\byme>start d:1.png /* 打開截屏圖像 */? ? ? ? 截屏如下:
? ? ? ? 安卓終端模擬器 可以運(yùn)行命令:
——————————
查看某個(gè)應(yīng)用的詳細(xì)信息
? ? ? ? 使用?dumpsys 的 package 子命令可以查看指定包的詳細(xì)信息
? ? ? ? 這邊我是在一個(gè)小手機(jī)上查看安裝的舊版本的終端模擬器:
shell@GIONEE_G1605A:/mnt/sdcard $ pm list packages -3 | grep term /* 在第三方應(yīng)用中搜索包含 term 字樣的包 */ package:jackpal.androidterm shell@GIONEE_G1605A:/mnt/sdcard $ dumpsys package jackpal.androidterm /* 查看終端模擬器應(yīng)用的詳細(xì)信息 */ Activity Resolver Table:Full MIME Types:*/*:3d65be5 jackpal.androidterm/.TermHerea6316ba jackpal.androidterm/.shortcuts.FSNavigatorWild MIME Types:*:3d65be5 jackpal.androidterm/.TermHerea6316ba jackpal.androidterm/.shortcuts.FSNavigatorNon-Data Actions:jackpal.androidterm.RUN_SHORTCUT:af9896b jackpal.androidterm/.RunShortcutjackpal.androidterm.private.SWITCH_WINDOW:7e04cc8 jackpal.androidterm/.TermInternaljackpal.androidterm.OPEN_NEW_WINDOW:c95d161 jackpal.androidterm/.RemoteInterfaceandroid.intent.action.MAIN:39be486 jackpal.androidterm/.Termea55147 jackpal.androidterm/.shortcuts.AddShortcutandroid.intent.action.PICK:a6316ba jackpal.androidterm/.shortcuts.FSNavigatorjackpal.androidterm.RUN_SCRIPT:f116d74 jackpal.androidterm/.RunScriptjackpal.androidterm.private.OPEN_NEW_WINDOW:7e04cc8 jackpal.androidterm/.TermInternalandroid.intent.action.CREATE_SHORTCUT:ea55147 jackpal.androidterm/.shortcuts.AddShortcutMIME Typed Actions:android.intent.action.SEND:3d65be5 jackpal.androidterm/.TermHereandroid.intent.action.GET_CONTENT:a6316ba jackpal.androidterm/.shortcuts.FSNavigatorPermissions:Permission [jackpal.androidterm.permission.PREPEND_TO_PATH] (57d229d):sourcePackage=jackpal.androidtermuid=10128 gids=null type=0 prot=dangerousperm=Permission{941c312 jackpal.androidterm.permission.PREPEND_TO_PATH}packageSetting=PackageSetting{c5bbae3 jackpal.androidterm/10128}Permission [jackpal.androidterm.permission.RUN_SCRIPT] (491ece0):sourcePackage=jackpal.androidtermuid=10128 gids=null type=0 prot=dangerousperm=Permission{d8e4b99 jackpal.androidterm.permission.RUN_SCRIPT}packageSetting=PackageSetting{c5bbae3 jackpal.androidterm/10128}Permission [jackpal.androidterm.permission.APPEND_TO_PATH] (1f4fe5e):sourcePackage=jackpal.androidtermuid=10128 gids=null type=0 prot=dangerousperm=Permission{585223f jackpal.androidterm.permission.APPEND_TO_PATH}packageSetting=PackageSetting{c5bbae3 jackpal.androidterm/10128}Key Set Manager:[jackpal.androidterm]Signing KeySets: 27Packages:Package [jackpal.androidterm] (c5bbae3):userId=10128pkg=Package{e5a569a jackpal.androidterm}codePath=/data/app/jackpal.androidterm-1resourcePath=/data/app/jackpal.androidterm-1legacyNativeLibraryDir=/data/app/jackpal.androidterm-1/libprimaryCpuAbi=arm64-v8asecondaryCpuAbi=nullversionCode=66 targetSdk=11versionName=1.0.65splits=[base]applicationInfo=ApplicationInfo{5d8f70c jackpal.androidterm clone=0}flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]pkgFlagsEx=[ ]dataDir=/data/user/0/jackpal.androidtermsupportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]timeStamp=2022-07-24 20:02:40firstInstallTime=2022-07-24 20:02:40lastUpdateTime=2022-07-24 20:02:40signatures=PackageSignatures{7ef0855 [c0ea26a]}installPermissionsFixed=true installStatus=1pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]declared permissions:jackpal.androidterm.permission.RUN_SCRIPT: prot=dangerous, INSTALLEDjackpal.androidterm.permission.APPEND_TO_PATH: prot=dangerous, INSTALLEDjackpal.androidterm.permission.PREPEND_TO_PATH: prot=dangerous, INSTALLEDrequested permissions:android.permission.INTERNETandroid.permission.READ_EXTERNAL_STORAGEandroid.permission.WRITE_EXTERNAL_STORAGEandroid.permission.ACCESS_SUPERUSERandroid.permission.WAKE_LOCKinstall permissions:android.permission.INTERNET: granted=trueandroid.permission.READ_EXTERNAL_STORAGE: granted=trueandroid.permission.WRITE_EXTERNAL_STORAGE: granted=trueandroid.permission.WAKE_LOCK: granted=trueUser 0: installed=true hidden=false stopped=false notLaunched=false enabled =0gids=[3003]runtime permissions: shell@GIONEE_G1605A:/mnt/sdcard $——————————
如何使用命令啟動(dòng)應(yīng)用程序
%%%%%
在前臺(tái)運(yùn)行 app
? ? ? ? 先讓程序在前臺(tái)顯示 不要黑屏不要切換到后臺(tái):
%%%%%
獲取包名和 activity 路徑
? ? ? ? 此時(shí)可以使用命令獲取信息了
? ? ? ? 如果你在 cmd :
adb shell dumpsys window windows | findstr “Current”? ? ? ? 如果你在終端中:
shell@GIONEE_G1605A:/ $ dumpsys window windows | grep CurrentmCurrentFocus=Window{144ca1f u0 jackpal.androidterm/jackpal.androidterm.Term} shell@GIONEE_G1605A:/ $? ? ? ? 可以從
jackpal.androidterm/jackpal.androidterm.Term
????????看到包名和啟動(dòng)名:
包名 jackpal.androidterm
啟動(dòng)名 jackpal.androidterm.Term
%%%%%
使用 am 的 start 命令啟動(dòng) APP
? ? ? ? 語法格式:
am start package/applicationId.launchActivity????????package 是 app 的包名 一般是跟?applicationId 是相同的值
????????launch activity 是啟動(dòng) activity 的完整路徑
? ? ? ? 示例 jackpal.androidterm/jackpal.androidterm.Term 中
jackpal.androidterm 是?package
jackpal.androidterm 是?applicationId
Term 是?activity
jackpal.androidterm.Term 是?launch activity
? ? ? ? 啟動(dòng)?jackpal.androidterm 示例:
shell@GIONEE_G1605A:/ $ am start jackpal.androidterm/jackpal.androidterm.Term Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L AUNCHER] cmp=jackpal.androidterm/.Term } shell@GIONEE_G1605A:/ $? ? ? ? 或者
shell@GIONEE_G1605A:/ $ am start -n jackpal.androidterm/jackpal.androidterm.Term Starting: Intent { cmp=jackpal.androidterm/.Term } Warning: Activity not started, its current task has been brought to the front shell@GIONEE_G1605A:/ $? ? ? ? 事實(shí)也確實(shí)成功了:
——————————
示例使用命令啟動(dòng)嗶哩嗶哩 TV 版
?? ? ? ? 啟動(dòng)小破站后截一下屏
cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png /* 截個(gè)屏 */ screencap 3 screencap start. screen_type: 1 file path: /sdcard/sc/1.png new ScreenCatch ok got video+osd data: 1280 x 720 SkEncodeImage success screencap end cmcc_jiangsu:/ #? ? ? ? 查看當(dāng)前窗口的?activity 信息:
cmcc_jiangsu:/ # dumpsys window windows | grep CurrentmCurrentFocus=Window{d898b33 u0 com.xiaodianshi.tv.yst/com.xiaodianshi.tv.yst. ui.introduction.IntroductionActivity} cmcc_jiangsu:/ #? ? ? ? 好家伙是真的長:
com.xiaodianshi.tv.yst.ui.introduction.IntroductionActivity? ? ? ? 通過命令啟動(dòng) bilibili tv 版:
cmcc_jiangsu:/ # am start com.xiaodianshi.tv.yst/com.xiaodianshi.tv.yst.ui.introduction.IntroductionActivity Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L AUNCHER] cmp=com.xiaodianshi.tv.yst/.ui.introduction.IntroductionActivity } cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png screencap 3 screencap start. screen_type: 1 file path: /sdcard/sc/1.png new ScreenCatch ok got video+osd data: 1280 x 720 SkEncodeImage success screencap end cmcc_jiangsu:/ #? ? ? ? 結(jié)果笑死人 啟動(dòng)的只是那個(gè)協(xié)議對(duì)話框:
? ? ? ? 無奈只好從應(yīng)用詳細(xì)信息中篩選:
cmcc_jiangsu:/ # dumpsys package com.xiaodianshi.tv.yst | grep com.xiaodianshi.tv.yst86a175e com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity filter d6fb37dAction: "com.xiaodianshi.tv.yst.uri"Authority: "com.xiaodianshi.tv.yst": -186a175e com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity filter edb272Authority: "com.xiaodianshi.tv.yst": -18fec73f com.xiaodianshi.tv.yst/com.yst.projection.ProjectionPlayerActivi tyV2 filter fc90a798fec73f com.xiaodianshi.tv.yst/com.yst.projection.ProjectionPlayerActivi tyV2 filter c6083beAction: "com.xiaodianshi.tv.yst.uri"com.xiaodianshi.tv.yst:eea380c com.xiaodianshi.tv.yst/.ui.main.MainActivity filter 7bfe6c3Action: "com.xiaodianshi.tv.yst"com.xiaodianshi.tv.yst.external:86a175e com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity filter ea235d4Action: "com.xiaodianshi.tv.yst.external"com.xiaodianshi.tv.yst.projection.entry:c15b555 com.xiaodianshi.tv.yst/com.yst.projection.entry.ProjectionEntryA ctivity filter 302c1fAction: "com.xiaodianshi.tv.yst.projection.entry"eea380c com.xiaodianshi.tv.yst/.ui.main.MainActivity filter 7bfe6c3Action: "com.xiaodianshi.tv.yst"eea380c com.xiaodianshi.tv.yst/.ui.main.MainActivity filter 2d6db4073c4b6a com.xiaodianshi.tv.yst/com.bilibili.opd.app.bizcommon.sentinel.s ession.ChildProcessSessionBroadcastReceiver filter 8147f271a2985b com.xiaodianshi.tv.yst/.ui.transition.PreassembleBroadcastReceiv er filter c071441e08c8f8 com.xiaodianshi.tv.yst/.video.service.YstMediaButtonReceiver fil ter 2759de61a2985b com.xiaodianshi.tv.yst/.ui.transition.PreassembleBroadcastReceiv er filter c071441ec951d1 com.xiaodianshi.tv.yst/.video.service.YstMediaService filter bd3 4f28Permission [com.xiaodianshi.tv.yst.permission.BLKV] (8352e34):sourcePackage=com.xiaodianshi.tv.ystperm=Permission{b4bb436 com.xiaodianshi.tv.yst.permission.BLKV}packageSetting=PackageSetting{7e85f37 com.xiaodianshi.tv.yst/10030}com.xiaodianshi.tv.yst/.provider.TvSearchSuggestionProvider:Provider{67d7ca4 com.xiaodianshi.tv.yst/.provider.TvSearchSuggestionProvider }com.xiaodianshi.tv.yst/com.bilibili.lib.media.resolver.resolve.MediaResolvePro vider:Provider{a403a0d com.xiaodianshi.tv.yst/com.bilibili.lib.media.resolver.reso lve.MediaResolveProvider}com.xiaodianshi.tv.yst/androidx.lifecycle.ProcessLifecycleOwnerInitializer:Provider{216ddc2 com.xiaodianshi.tv.yst/androidx.lifecycle.ProcessLifecycleO wnerInitializer}com.xiaodianshi.tv.yst/androidx.core.content.FileProvider:Provider{159b7d3 com.xiaodianshi.tv.yst/androidx.core.content.FileProvider}com.xiaodianshi.tv.yst/com.bilibili.lib.okdownloader.internal.db.DownloadDatab aseProvider:Provider{967bf10 com.xiaodianshi.tv.yst/com.bilibili.lib.okdownloader.intern al.db.DownloadDatabaseProvider}com.xiaodianshi.tv.yst/com.bilibili.lib.mod.ModResourceProvider:Provider{3c36a09 com.xiaodianshi.tv.yst/com.bilibili.lib.mod.ModResourceProv ider}com.xiaodianshi.tv.yst/com.bilibili.xpref.XprefProvider:Provider{79140e com.xiaodianshi.tv.yst/com.bilibili.xpref.XprefProvider}com.xiaodianshi.tv.yst/com.bilibili.base.ipc.IPCActivityStateProvider:Provider{87dfe2f com.xiaodianshi.tv.yst/com.bilibili.base.ipc.IPCActivitySta teProvider}com.xiaodianshi.tv.yst/com.bilibili.lib.account.AuthProvider:Provider{871bc3c com.xiaodianshi.tv.yst/com.bilibili.lib.account.AuthProvide r}com.xiaodianshi.tv.yst/com.bilibili.app.lib.modx.ModImageContentProvider:Provider{22f9dc5 com.xiaodianshi.tv.yst/com.bilibili.app.lib.modx.ModImageCo ntentProvider}com.xiaodianshi.tv.yst/com.coocaa.historylib.HistoryContentProvider:Provider{bb6631a com.xiaodianshi.tv.yst/com.coocaa.historylib.HistoryContent Provider}com.xiaodianshi.tv.yst/com.coocaa.historylib.CollectContentProvider:Provider{ef64e4b com.xiaodianshi.tv.yst/com.coocaa.historylib.CollectContent Provider}com.xiaodianshi.tv.yst/com.bilibili.infra.base.provider.InfraInitProvider:Provider{3bc6028 com.xiaodianshi.tv.yst/com.bilibili.infra.base.provider.Inf raInitProvider}[com.xiaodianshi.tv.yst.provider.xpref]:Provider{79140e com.xiaodianshi.tv.yst/com.bilibili.xpref.XprefProvider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.fileprovider]:Provider{159b7d3 com.xiaodianshi.tv.yst/androidx.core.content.FileProvider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.lifecycle-process]:Provider{216ddc2 com.xiaodianshi.tv.yst/androidx.lifecycle.ProcessLifecycleO wnerInitializer}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.provider.modimage]:Provider{22f9dc5 com.xiaodianshi.tv.yst/com.bilibili.app.lib.modx.ModImageCo ntentProvider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.provider.modresource]:Provider{3c36a09 com.xiaodianshi.tv.yst/com.bilibili.lib.mod.ModResourceProv ider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.provider.resolver]:Provider{a403a0d com.xiaodianshi.tv.yst/com.bilibili.lib.media.resolver.reso lve.MediaResolveProvider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.okdownloader.provider]:Provider{967bf10 com.xiaodianshi.tv.yst/com.bilibili.lib.okdownloader.intern al.db.DownloadDatabaseProvider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.coocaa.history]:Provider{bb6631a com.xiaodianshi.tv.yst/com.coocaa.historylib.HistoryContent Provider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.coocaa.collect]:Provider{ef64e4b com.xiaodianshi.tv.yst/com.coocaa.historylib.CollectContent Provider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.provider.TvSearchSuggestionProvider]:Provider{67d7ca4 com.xiaodianshi.tv.yst/.provider.TvSearchSuggestionProvider }applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.provider.InfraInitProvider]:Provider{3bc6028 com.xiaodianshi.tv.yst/com.bilibili.infra.base.provider.Inf raInitProvider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.provider.IPCActivityStateProvider]:Provider{87dfe2f com.xiaodianshi.tv.yst/com.bilibili.base.ipc.IPCActivitySta teProvider}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst.provider.auth]:Provider{871bc3c com.xiaodianshi.tv.yst/com.bilibili.lib.account.AuthProvide r}applicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}[com.xiaodianshi.tv.yst]Package [com.xiaodianshi.tv.yst] (7e85f37):pkg=Package{74796e6 com.xiaodianshi.tv.yst}codePath=/data/app/com.xiaodianshi.tv.yst-Gq1cdiX3Aho20N4EPrC5gw==resourcePath=/data/app/com.xiaodianshi.tv.yst-Gq1cdiX3Aho20N4EPrC5gw==legacyNativeLibraryDir=/data/app/com.xiaodianshi.tv.yst-Gq1cdiX3Aho20N4EPrC5 gw==/libapplicationInfo=ApplicationInfo{3715141 com.xiaodianshi.tv.yst}dataDir=/data/user_de/0/com.xiaodianshi.tv.ystcom.xiaodianshi.tv.yst.permission.BLKV: prot=signature, INSTALLEDcom.xiaodianshi.tv.yst.permission.BLKVcom.xiaodianshi.tv.yst.permission.BLKV: granted=true[com.xiaodianshi.tv.yst]path: /data/app/com.xiaodianshi.tv.yst-Gq1cdiX3Aho20N4EPrC5gw==/base.apk[com.xiaodianshi.tv.yst] cmcc_jiangsu:/ #? ? ? ? 沒想到運(yùn)氣這么好 才試了第一個(gè)就成功了:
cmcc_jiangsu:/ # am start com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L AUNCHER] cmp=com.xiaodianshi.tv.yst/.ui.transition.TransitionActivity } cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png screencap 3 screencap start. screen_type: 1 file path: /sdcard/sc/1.png new ScreenCatch ok got video+osd data: 1280 x 720 SkEncodeImage success screencap end cmcc_jiangsu:/ ###################################################
使用 pm 應(yīng)用管理工具
——————————
pm 簡(jiǎn)介
????????pm 是 包管理/package manager 簡(jiǎn)拼
????????可以使用 pm 工具來執(zhí)行應(yīng)用的安裝 或查詢應(yīng)用的信息、系統(tǒng)權(quán)限、控制應(yīng)用
????????pm 工具是 Android 開發(fā)與測(cè)試過程中必不可少的工具
%%%%%
應(yīng)用安裝與數(shù)據(jù)文件的位置不同
????????App 的文件存儲(chǔ)和數(shù)據(jù)目錄在不同用戶下都是獨(dú)立的:
/data/user/0? ? ? ? root 用戶內(nèi)部存儲(chǔ)位置
/storage/emulated/0/? ? ? ? root 用戶外部存儲(chǔ)位置
? ? ? ? 但是同一個(gè) APP 在多用戶下卻只有一個(gè)安裝目錄:
/data/app? ? ? ? 第三方軟件安裝位置 這是普通用戶安裝的軟件
/system/app? ? ? ? 系統(tǒng)預(yù)裝軟件位置 這是系統(tǒng)自帶的 app
/system/priv-app? ? ? ? 特權(quán) app 位置 這是系統(tǒng)級(jí)別的應(yīng)用
? ? ? ? 示例請(qǐng)看注釋:
cmcc_jiangsu:/ # ls /data/user/0/ /* root 用戶的應(yīng)用數(shù)據(jù)存儲(chǔ)位置 */ android com.android.sharedstoragebackup android.ext.services com.android.shell android.ext.shared com.android.statementservice com.android.backupconfirm com.android.superuser com.android.bluetooth com.android.systemui com.android.certinstaller com.android.vpndialogs com.android.companiondevicemanager com.android.webview com.android.defcontainer com.cmcc.mid.softdetector com.android.externalstorage com.dangbei.tvlauncher com.android.inputdevices com.dangbeimarket com.android.inputmethod.latin com.droidlogic com.android.keychain com.droidlogic.BluetoothRemote com.android.location.fused com.droidlogic.inputmethod.remote com.android.managedprovisioning com.fengyun.live com.android.packageinstaller com.iflytek.bt.auto com.android.pacprocessor com.iflytek.xiri com.android.providers.downloads com.iflytek.xiri2.system com.android.providers.media com.mylejia.store com.android.providers.settings com.tv.kuaisou com.android.proxyhandler com.xiaodianshi.tv.yst com.android.se jackpal.androidterm com.android.settings me.thomastv.rebootupdate cmcc_jiangsu:/ # ls /data/user/0/com.android.settings/ -alh /* com.android.settings 的數(shù)據(jù)目錄 */ total 14K drwx------ 6 system system 4.0K 2015-01-01 08:00 . drwxrwx--x 46 system system 4.0K 2022-07-25 11:24 .. drwxrws--x 2 system system 4.0K 2015-01-01 08:00 cache drwxrws--x 2 system system 4.0K 2015-01-01 08:00 code_cache drwxrwx--x 2 system system 4.0K 2015-01-01 08:00 files lrwxrwxrwx 1 root root 52 2015-01-01 08:00 lib -> /system/app/SkySettingA 9_jiangsuCMCC_release/lib/arm drwxrwx--x 2 system system 4.0K 2022-07-25 11:29 shared_prefs cmcc_jiangsu:/ # ls /data/app /* 用戶安裝的第三方應(yīng)用 */ com.dangbeimarket-GvchZCDlwKegHBtoXBQhwg== com.fengyun.live-829NViyOdL42DNDyYJhxWw== com.iflytek.xiri-WgYGkZvi6pwHhlca9dWSJw== com.mylejia.store--X53YUFZXKN1XMhyN9prZw== com.tv.kuaisou-fI0vFrNXcO_5RNCnl5c-7A== com.xiaodianshi.tv.yst-KrOFFpsDIBXvgmut74jw_Q== jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ== me.thomastv.rebootupdate-4SVHakbq9YXs3X7ozxyY0w== cmcc_jiangsu:/ # ls /system/app /* 系統(tǒng)預(yù)裝應(yīng)用 */ Bluetooth BtAutoConn_release_9.0_V1.0_19_20210827_chinamobile CertInstaller CompanionDeviceManager Dangbei2.apk ExtShared GDYD-IPTVSettings-AN9-ALL-DEBUG-1.0.0-20210805-1058.apk KeyChain LatinIME PacProcessor SecureElement SkySettingA9_jiangsuCMCC_release SoftDetector_V5.1.0_20210721_35101_x025_encrypt Superuser SystemXiri_release-2.0.4-unsigned_signed_Aligned Tr069_Service.apk TvSettings xiri cmcc_jiangsu:/ # ls /system/priv-app /* 系統(tǒng)特權(quán)應(yīng)用 */ BackupRestoreConfirmation ManagedProvisioning Shell DefaultContainerService MediaProvider SkySettings DownloadProvider PackageInstaller StatementService ExtServices ProxyHandler SystemUI ExternalStorageProvider Settings VpnDialogs FusedLocation SettingsProvider InputDevices SharedStorageBackup cmcc_jiangsu:/ #%%%%%
查看包的系統(tǒng)狀態(tài)信息
? ? ? ? 語法:
pm dump 子命令 包名? ? ? ? 子命令:
pm dump package [包名] /* 打印服務(wù)信息 */ pm dump activity [包名] /* 打印 Activity 信息 */ pm dump meminfo [包名] /* 打印當(dāng)前內(nèi)存使用信息 */ pm dump procstats [包名] /* 打印系統(tǒng)內(nèi)存使用與一段時(shí)間內(nèi)存匯總 */ pm dump usagestats [包名] /* 打印服務(wù)器使用狀態(tài)信息 */ pm dump batterystats [包名] /* 打印電池狀態(tài)信息 */? ? ? ? 不過我的盒子總報(bào)錯(cuò) 只好使用 dumpsys 命令:
dumpsys package [包名] /* 打印服務(wù)信息 */ dumpsys activity [包名] /* 打印 Activity 信息 */ dumpsys meminfo [包名] /* 打印當(dāng)前內(nèi)存使用信息 */ dumpsys procstats [包名] /* 打印系統(tǒng)內(nèi)存使用與一段時(shí)間內(nèi)存匯總 */ dumpsys usagestats [包名] /* 打印服務(wù)器使用狀態(tài)信息 */ dumpsys batterystats [包名] /* 打印電池狀態(tài)信息 */? ? ? ? 示例查看 終端模擬器 的包信息:
cmcc_jiangsu:/ # dumpsys package jackpal.androidterm Activity Resolver Table:Full MIME Types:*/*:2c3ec43 jackpal.androidterm/.TermHere filter 4201189Action: "android.intent.action.SEND"Category: "android.intent.category.DEFAULT"Type: "*"mPriority=0, mOrder=0, mHasPartialTypes=truee3a32c0 jackpal.androidterm/.shortcuts.FSNavigator filter 801b9cbAction: "android.intent.action.GET_CONTENT"Category: "android.intent.category.DEFAULT"Category: "android.intent.category.OPENABLE"Type: "*"mPriority=0, mOrder=0, mHasPartialTypes=trueWild MIME Types:*:2c3ec43 jackpal.androidterm/.TermHere filter 4201189Action: "android.intent.action.SEND"Category: "android.intent.category.DEFAULT"Type: "*"mPriority=0, mOrder=0, mHasPartialTypes=truee3a32c0 jackpal.androidterm/.shortcuts.FSNavigator filter 801b9cbAction: "android.intent.action.GET_CONTENT"Category: "android.intent.category.DEFAULT"Category: "android.intent.category.OPENABLE"Type: "*"mPriority=0, mOrder=0, mHasPartialTypes=trueNon-Data Actions:jackpal.androidterm.RUN_SHORTCUT:abe4bf9 jackpal.androidterm/.RunShortcut filter a41b1afAction: "jackpal.androidterm.RUN_SHORTCUT"Category: "android.intent.category.DEFAULT"jackpal.androidterm.private.SWITCH_WINDOW:9c2673e jackpal.androidterm/.TermInternal filter 7613353Action: "jackpal.androidterm.private.SWITCH_WINDOW"Category: "android.intent.category.DEFAULT"jackpal.androidterm.OPEN_NEW_WINDOW:b2f099f jackpal.androidterm/.RemoteInterface filter 7385490Action: "jackpal.androidterm.OPEN_NEW_WINDOW"Category: "android.intent.category.DEFAULT"android.intent.action.MAIN:7efbaec jackpal.androidterm/.Term filter b79698dAction: "android.intent.action.MAIN"Category: "android.intent.category.LAUNCHER"Category: "android.intent.category.MULTIWINDOW_LAUNCHER"a8eaeb5 jackpal.androidterm/.shortcuts.AddShortcut filter e7629bcAction: "android.intent.action.MAIN"android.intent.action.PICK:e3a32c0 jackpal.androidterm/.shortcuts.FSNavigator filter 8664c9aAction: "android.intent.action.PICK"Category: "android.intent.category.DEFAULT"jackpal.androidterm.RUN_SCRIPT:cf9b94a jackpal.androidterm/.RunScript filter ff5658eAction: "jackpal.androidterm.RUN_SCRIPT"Category: "android.intent.category.DEFAULT"jackpal.androidterm.private.OPEN_NEW_WINDOW:9c2673e jackpal.androidterm/.TermInternal filter e91742Action: "jackpal.androidterm.private.OPEN_NEW_WINDOW"Category: "android.intent.category.DEFAULT"android.intent.action.CREATE_SHORTCUT:a8eaeb5 jackpal.androidterm/.shortcuts.AddShortcut filter c6f3d45Action: "android.intent.action.CREATE_SHORTCUT"MIME Typed Actions:android.intent.action.SEND:2c3ec43 jackpal.androidterm/.TermHere filter 4201189Action: "android.intent.action.SEND"Category: "android.intent.category.DEFAULT"Type: "*"mPriority=0, mOrder=0, mHasPartialTypes=trueandroid.intent.action.GET_CONTENT:e3a32c0 jackpal.androidterm/.shortcuts.FSNavigator filter 801b9cbAction: "android.intent.action.GET_CONTENT"Category: "android.intent.category.DEFAULT"Category: "android.intent.category.OPENABLE"Type: "*"mPriority=0, mOrder=0, mHasPartialTypes=trueService Resolver Table:Non-Data Actions:jackpal.androidterm.action.START_TERM.v1:604a0bb jackpal.androidterm/.TermService filter 427ba24Action: "jackpal.androidterm.action.START_TERM.v1"Category: "android.intent.category.DEFAULT"Permissions:Permission [jackpal.androidterm.permission.PREPEND_TO_PATH] (49399d8):sourcePackage=jackpal.androidtermuid=10031 gids=null type=0 prot=dangerousperm=Permission{c88131 jackpal.androidterm.permission.PREPEND_TO_PATH}packageSetting=PackageSetting{9a22016 jackpal.androidterm/10031}Permissions:Permission [jackpal.androidterm.permission.RUN_SCRIPT] (6d28d97):sourcePackage=jackpal.androidtermuid=10031 gids=null type=0 prot=dangerousperm=Permission{8947b84 jackpal.androidterm.permission.RUN_SCRIPT}packageSetting=PackageSetting{9a22016 jackpal.androidterm/10031}Permissions:Permission [jackpal.androidterm.permission.APPEND_TO_PATH] (f2ff6d):sourcePackage=jackpal.androidtermuid=10031 gids=null type=0 prot=dangerousperm=Permission{c9827a2 jackpal.androidterm.permission.APPEND_TO_PATH}packageSetting=PackageSetting{9a22016 jackpal.androidterm/10031}Key Set Manager:[jackpal.androidterm]Signing KeySets: 17Packages:Package [jackpal.androidterm] (9a22016):userId=10031pkg=Package{2286c33 jackpal.androidterm}codePath=/data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==resourcePath=/data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==legacyNativeLibraryDir=/data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ= =/libprimaryCpuAbi=armeabisecondaryCpuAbi=nullversionCode=71 minSdk=4 targetSdk=22versionName=1.0.70splits=[base]apkSigningVersion=1applicationInfo=ApplicationInfo{e9fcbf0 jackpal.androidterm}flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]privateFlags=[ DEFAULT_TO_DEVICE_PROTECTED_STORAGE DIRECT_BOOT_AWARE ]dataDir=/data/user_de/0/jackpal.androidtermsupportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]usesLibraries:org.apache.http.legacyusesLibraryFiles:/system/framework/org.apache.http.legacy.boot.jartimeStamp=2022-07-23 23:53:02firstInstallTime=2022-07-23 23:53:02lastUpdateTime=2022-07-23 23:53:02signatures=PackageSignatures{5cd2569 version:1, signatures:[e7b54ff0], past signatures:[]}installPermissionsFixed=truepkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]declared permissions:jackpal.androidterm.permission.RUN_SCRIPT: prot=dangerous, INSTALLEDjackpal.androidterm.permission.APPEND_TO_PATH: prot=dangerous, INSTALLEDjackpal.androidterm.permission.PREPEND_TO_PATH: prot=dangerous, INSTALLEDrequested permissions:android.permission.INTERNETandroid.permission.READ_EXTERNAL_STORAGEandroid.permission.WRITE_EXTERNAL_STORAGEandroid.permission.ACCESS_SUPERUSERandroid.permission.WAKE_LOCKinstall permissions:android.permission.INTERNET: granted=trueandroid.permission.READ_EXTERNAL_STORAGE: granted=trueandroid.permission.WRITE_EXTERNAL_STORAGE: granted=trueandroid.permission.WAKE_LOCK: granted=trueUser 0: ceDataInode=-4294966708 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false virtual=falsegids=[3003]runtime permissions:Package Changes:Sequence number=0Dexopt state:[jackpal.androidterm]path: /data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==/base.apkarm: [status=speed-profile] [reason=install]Compiler stats:[jackpal.androidterm](No recorded stats) cmcc_jiangsu:/ #????????示例查看進(jìn)程中的 sh 信息:
cmcc_jiangsu:/ # dumpsys procstats sh CURRENT STATS: System memory usage:SOn /Norm: 1 samples:Cached: 176MB min, 176MB avg, 176MB maxFree: 705MB min, 705MB avg, 705MB maxZRam: 12KB min, 12KB avg, 12KB maxKernel: 145MB min, 145MB avg, 145MB maxNative: 388MB min, 388MB avg, 388MB maxLow : 1 samples:Cached: 136MB min, 136MB avg, 136MB maxFree: 860MB min, 860MB avg, 860MB maxZRam: 0.00 min, 0.00 avg, 0.00 maxKernel: 129MB min, 129MB avg, 129MB maxNative: 311MB min, 311MB avg, 311MB maxSummary:Run time Stats:SOn /Norm: +36m9s929ms (running)Mod : +24s266msLow : +5s211msCrit: +4s583msTOTAL: +36m43s989msMemory usage:Kernel : 137MB (16 samples)Native : 350MB (16 samples)Persist: 154MB (110 samples)Top: 121MB (35 samples)ImpFg: 134MB (193 samples)ImpBg: 7.1MB (15 samples)Service: 62MB (168 samples)Receivr: 22KB (63 samples)LastAct: 466KB (25 samples)CchEmty: 117MB (151 samples)Cached : 156MB (16 samples)Free : 783MB (16 samples)Z-Ram : 6.0KB (16 samples)TOTAL : 2.0GBServRst: 556KB (28 samples)PSS collection stats:Internal Single: 113x over +6s76msInternal All Procs (Memory Change): 0x over 0Internal All Procs (Polling): 2x over +147msExternal: 0x over 0External Slow: 63x over +6s830msStart time: 2015-01-01 08:00:10Total uptime: +36m44s154msTotal elapsed time: +36m44s154ms (partial) (swapped-out-pss) libart.soAvailable pages by page size: Zone 0 Unmovable 1 0 13 10 17 14 14 9 32 0 Zone 0 Movable 0 1 1 1 4 10 3 0 24 159 Zone 0 Reclaimable 1 1 0 1 0 1 0 0 11 0 Zone 0 HighAtomic 0 0 0 0 0 0 0 0 00 0 Zone 0 CMA 0 0 0 0 0 0 0 0 10 0 Zone 0 Isolate 0 0 0 0 0 0 0 0 00 0 Zone 0 Unmovable 0 1 0 0 1 1 0 0 01 0 Zone 0 Movable 1 0 0 1 1 1 1 1 10 66 Zone 0 Reclaimable 0 0 0 0 0 0 0 0 00 0 Zone 0 HighAtomic 0 0 0 0 0 0 0 0 00 0 Zone 0 CMA 3 3 3 1 4 0 1 0 11 148 Zone 0 Isolate 0 0 0 0 0 0 0 0 00 0AGGREGATED OVER LAST 24 HOURS: System memory usage:SOn /Norm: 8 samples:Cached: 168MB min, 275MB avg, 340MB maxFree: 463MB min, 639MB avg, 893MB maxZRam: 0.00 min, 9.0KB avg, 12KB maxKernel: 125MB min, 140MB avg, 149MB maxNative: 338MB min, 380MB avg, 407MB maxLow : 2 samples:Cached: 136MB min, 233MB avg, 330MB maxFree: 568MB min, 714MB avg, 860MB maxZRam: 0.00 min, 6.0KB avg, 12KB maxKernel: 129MB min, 135MB avg, 142MB maxNative: 311MB min, 358MB avg, 405MB maxSummary:Run time Stats:SOn /Norm: +5h52m19s853msMod : +22m13s287msLow : +2h0m22s180msCrit: +4s583msTOTAL: +8h14m59s903msMemory usage:Kernel : 140MB (78 samples)Native : 379MB (78 samples)Persist: 157MB (241 samples)Top: 128MB (88 samples)ImpFg: 123MB (1195 samples)ImpBg: 13MB (40 samples)Service: 49MB (947 samples)Receivr: 4.0KB (422 samples)LastAct: 373KB (72 samples)CchAct: 14MB (17 samples)CchEmty: 79MB (391 samples)Cached : 272MB (78 samples)Free : 643MB (78 samples)Z-Ram : 8.7KB (78 samples)TOTAL : 1.9GBServRst: 48KB (89 samples)PSS collection stats:Internal Single: 315x over +17s246msInternal All Procs (Memory Change): 81x over +3s988msInternal All Procs (Polling): 63x over +3s189msExternal: 0x over 0External Slow: 519x over +1m2s809msStart time: 2015-01-01 08:00:10Total uptime: +8h15m0s252msTotal elapsed time: +8h15m0s253ms (partial) (swapped-out-pss) libart.soAvailable pages by page size: Zone 0 Unmovable 1 0 13 10 17 14 14 9 32 0 Zone 0 Movable 0 1 1 1 4 10 3 0 24 159 Zone 0 Reclaimable 1 1 0 1 0 1 0 0 11 0 Zone 0 HighAtomic 0 0 0 0 0 0 0 0 00 0 Zone 0 CMA 0 0 0 0 0 0 0 0 10 0 Zone 0 Isolate 0 0 0 0 0 0 0 0 00 0 Zone 0 Unmovable 0 1 0 0 1 1 0 0 01 0 Zone 0 Movable 1 0 0 1 1 1 1 1 10 66 Zone 0 Reclaimable 0 0 0 0 0 0 0 0 00 0 Zone 0 HighAtomic 0 0 0 0 0 0 0 0 00 0 Zone 0 CMA 3 3 3 1 4 0 1 0 11 148 Zone 0 Isolate 0 0 0 0 0 0 0 0 00 0AGGREGATED OVER LAST 3 HOURS: System memory usage:SOn /Norm: 1 samples:Cached: 176MB min, 176MB avg, 176MB maxFree: 705MB min, 705MB avg, 705MB maxZRam: 12KB min, 12KB avg, 12KB maxKernel: 145MB min, 145MB avg, 145MB maxNative: 388MB min, 388MB avg, 388MB maxLow : 2 samples:Cached: 136MB min, 233MB avg, 330MB maxFree: 568MB min, 714MB avg, 860MB maxZRam: 0.00 min, 6.0KB avg, 12KB maxKernel: 129MB min, 135MB avg, 142MB maxNative: 311MB min, 358MB avg, 405MB maxSummary:Run time Stats:SOn /Norm: +36m9s997msMod : +24s266msLow : +2h0m21s599msCrit: +4s583msTOTAL: +2h37m0s445msMemory usage:Kernel : 139MB (24 samples)Native : 368MB (24 samples)Persist: 155MB (129 samples)Top: 143MB (29 samples)ImpFg: 154MB (414 samples)ImpBg: 17MB (14 samples)Service: 73MB (314 samples)Receivr: 5.1KB (81 samples)LastAct: 109KB (29 samples)CchEmty: 65MB (151 samples)Cached : 214MB (24 samples)Free : 711MB (24 samples)Z-Ram : 8.0KB (24 samples)TOTAL : 2.0GBServRst: 139KB (37 samples)PSS collection stats:Internal Single: 136x over +7s324msInternal All Procs (Memory Change): 0x over 0Internal All Procs (Polling): 23x over +1s208msExternal: 0x over 0External Slow: 183x over +21s381msStart time: 2015-01-01 08:00:10Total uptime: +2h37m0s615msTotal elapsed time: +2h37m0s615ms (partial) (swapped-out-pss) libart.soAvailable pages by page size: Zone 0 Unmovable 1 0 13 10 17 14 14 9 32 0 Zone 0 Movable 0 1 1 1 4 10 3 0 24 159 Zone 0 Reclaimable 1 1 0 1 0 1 0 0 11 0 Zone 0 HighAtomic 0 0 0 0 0 0 0 0 00 0 Zone 0 CMA 0 0 0 0 0 0 0 0 10 0 Zone 0 Isolate 0 0 0 0 0 0 0 0 00 0 Zone 0 Unmovable 0 1 0 0 1 1 0 0 01 0 Zone 0 Movable 1 0 0 1 1 1 1 1 10 66 Zone 0 Reclaimable 0 0 0 0 0 0 0 0 00 0 Zone 0 HighAtomic 0 0 0 0 0 0 0 0 00 0 Zone 0 CMA 3 3 3 1 4 0 1 0 11 148 Zone 0 Isolate 0 0 0 0 0 0 0 0 00 0 cmcc_jiangsu:/ #%%%%%
查看系統(tǒng)功能與支持庫信息
? ? ? ? 查看系統(tǒng)功能:
pm list feature /* 打印系統(tǒng)的所有功能/列出所有硬件相關(guān)信息 */? ? ? ? 查看支持庫信息:
pm list libraries /* 打印當(dāng)前設(shè)備所支持的所有庫 */? ? ? ? 示例查看支持庫:
cmcc_jiangsu:/ # pm list libraries library:android.ext.services library:android.ext.shared library:android.test.base library:android.test.mock library:android.test.runner library:com.android.future.usb.accessory library:com.android.location.provider library:com.android.media.remotedisplay library:com.android.mediadrm.signer library:droidlogic.software.core library:droidlogic.tv.software.core library:javax.obex library:org.apache.http.legacy cmcc_jiangsu:/ #%%%%%
測(cè)試包與 APK 路徑查詢
? ? ? ? 測(cè)試包:
pm list instrymentation /* 列出所有的 instrumentation 測(cè)試包 */ pm list instrymentation 包名 /* 指定某個(gè) app 的測(cè)試包 */ pm list instrymentation -f /* 列出 apk 文件位置 */? ? ? ? APK 路徑查詢:
pm path 包名 /* 列出指定包的 APK 路徑 */? ? ? ? 示例:
cmcc_jiangsu:/ # pm path jackpal.androidterm package:/data/app/jackpal.androidterm-sAgHElvcbHuZtUuQdCSIdQ==/base.apk cmcc_jiangsu:/ #——————————
查詢
%%%%%
常用查詢語法及常用參數(shù)
????????pm 查詢語法:
pm list packages 參數(shù) 包名????????pm 查詢常用參數(shù):
-i 查看應(yīng)用的安裝者-f 顯示每個(gè)包的文件位置-d 搭配過濾器 只顯示禁用的應(yīng)用的包名 -e 搭配過濾器 只顯示可用的應(yīng)用的包名 -s 搭配過濾器 只顯示系統(tǒng)應(yīng)用的包名 -3 搭配過濾器 只顯示第三方應(yīng)用的包名%%%%%
列出所有包
cmcc_jiangsu:/tmp # pm list packages package:com.iflytek.xiri package:com.droidlogic.inputmethod.remote package:com.android.providers.media package:com.mylejia.store package:com.android.externalstorage package:com.android.companiondevicemanager package:com.android.providers.downloads package:com.fengyun.live package:com.droidlogic package:com.dangbei.tvlauncher package:com.android.defcontainer package:com.android.pacprocessor package:com.android.certinstaller package:me.thomastv.rebootupdate package:android package:com.android.backupconfirm package:com.android.statementservice package:com.android.superuser package:com.android.providers.settings package:com.android.sharedstoragebackup package:com.iflytek.xiri2.system package:com.android.webview package:com.android.se package:com.android.inputdevices package:com.droidlogic.BluetoothRemote package:android.ext.shared package:com.android.keychain package:android.ext.services package:com.android.packageinstaller package:com.android.proxyhandler package:com.android.inputmethod.latin package:com.android.managedprovisioning package:com.iflytek.bt.auto package:com.android.settings package:com.android.vpndialogs package:com.android.shell package:com.dangbeimarket package:com.android.location.fused package:com.android.systemui package:com.android.bluetooth package:com.cmcc.mid.softdetector cmcc_jiangsu:/tmp #%%%%%
-i 查看包的安裝者
cmcc_jiangsu:/tmp # pm list packages -i package:com.iflytek.xiri installer=null package:com.droidlogic.inputmethod.remote installer=null package:com.android.providers.media installer=null package:com.mylejia.store installer=null package:com.android.externalstorage installer=null package:com.android.companiondevicemanager installer=null package:com.android.providers.downloads installer=null package:com.fengyun.live installer=null package:com.droidlogic installer=null package:com.dangbei.tvlauncher installer=null package:com.android.defcontainer installer=null package:com.android.pacprocessor installer=null package:com.android.certinstaller installer=null package:me.thomastv.rebootupdate installer=null package:android installer=null package:com.android.backupconfirm installer=null package:com.android.statementservice installer=null package:com.android.superuser installer=null package:com.android.providers.settings installer=null package:com.android.sharedstoragebackup installer=null package:com.iflytek.xiri2.system installer=null package:com.android.webview installer=null package:com.android.se installer=null package:com.android.inputdevices installer=null package:com.droidlogic.BluetoothRemote installer=null package:android.ext.shared installer=null package:com.android.keychain installer=null package:android.ext.services installer=null package:com.android.packageinstaller installer=null package:com.android.proxyhandler installer=null package:com.android.inputmethod.latin installer=null package:com.android.managedprovisioning installer=null package:com.iflytek.bt.auto installer=null package:com.android.settings installer=null package:com.android.vpndialogs installer=null package:com.android.shell installer=null package:com.dangbeimarket installer=null package:com.android.location.fused installer=null package:com.android.systemui installer=null package:com.android.bluetooth installer=null package:com.cmcc.mid.softdetector installer=null cmcc_jiangsu:/tmp #%%%%%
-u 列出包和未安裝包信息
cmcc_jiangsu:/tmp # pm list packages -u package:com.iflytek.xiri package:com.droidlogic.inputmethod.remote package:com.android.providers.media package:com.mylejia.store package:com.android.externalstorage package:com.android.companiondevicemanager package:com.android.providers.downloads package:com.fengyun.live package:com.droidlogic package:com.dangbei.tvlauncher package:com.android.defcontainer package:com.android.pacprocessor package:com.android.certinstaller package:me.thomastv.rebootupdate package:android package:com.android.backupconfirm package:com.android.statementservice package:com.android.superuser package:com.android.providers.settings package:com.android.sharedstoragebackup package:com.iflytek.xiri2.system package:com.android.webview package:com.android.se package:com.android.inputdevices package:com.droidlogic.BluetoothRemote package:android.ext.shared package:com.android.keychain package:android.ext.services package:com.android.packageinstaller package:com.android.proxyhandler package:com.android.inputmethod.latin package:com.android.managedprovisioning package:com.iflytek.bt.auto package:com.android.settings package:com.android.vpndialogs package:com.android.shell package:com.dangbeimarket package:com.android.location.fused package:com.android.systemui package:com.android.bluetooth package:com.cmcc.mid.softdetector cmcc_jiangsu:/tmp #%%%%%
-e 列出啟用包
cmcc_jiangsu:/tmp # pm list packages -e package:com.iflytek.xiri package:com.droidlogic.inputmethod.remote package:com.android.providers.media package:com.mylejia.store package:com.android.externalstorage package:com.android.companiondevicemanager package:com.android.providers.downloads package:com.fengyun.live package:com.droidlogic package:com.dangbei.tvlauncher package:com.android.defcontainer package:com.android.pacprocessor package:com.android.certinstaller package:me.thomastv.rebootupdate package:android package:com.android.backupconfirm package:com.android.statementservice package:com.android.superuser package:com.android.providers.settings package:com.android.sharedstoragebackup package:com.iflytek.xiri2.system package:com.android.webview package:com.android.se package:com.android.inputdevices package:com.droidlogic.BluetoothRemote package:android.ext.shared package:com.android.keychain package:android.ext.services package:com.android.packageinstaller package:com.android.proxyhandler package:com.android.inputmethod.latin package:com.android.managedprovisioning package:com.iflytek.bt.auto package:com.android.settings package:com.android.vpndialogs package:com.android.shell package:com.dangbeimarket package:com.android.location.fused package:com.android.systemui package:com.android.bluetooth package:com.cmcc.mid.softdetector cmcc_jiangsu:/tmp #%%%%%
-d 列出禁用包
cmcc_jiangsu:/tmp # pm list packages -d cmcc_jiangsu:/tmp #%%%%%
-s 列出系統(tǒng)包
cmcc_jiangsu:/tmp # pm list packages -s package:com.iflytek.xiri package:com.droidlogic.inputmethod.remote package:com.android.providers.media package:com.android.externalstorage package:com.android.companiondevicemanager package:com.android.providers.downloads package:com.droidlogic package:com.dangbei.tvlauncher package:com.android.defcontainer package:com.android.pacprocessor package:com.android.certinstaller package:android package:com.android.backupconfirm package:com.android.statementservice package:com.android.superuser package:com.android.providers.settings package:com.android.sharedstoragebackup package:com.iflytek.xiri2.system package:com.android.webview package:com.android.se package:com.android.inputdevices package:com.droidlogic.BluetoothRemote package:android.ext.shared package:com.android.keychain package:android.ext.services package:com.android.packageinstaller package:com.android.proxyhandler package:com.android.inputmethod.latin package:com.android.managedprovisioning package:com.iflytek.bt.auto package:com.android.settings package:com.android.vpndialogs package:com.android.shell package:com.android.location.fused package:com.android.systemui package:com.android.bluetooth package:com.cmcc.mid.softdetector cmcc_jiangsu:/tmp #%%%%%
-3 列出所有第三方包
cmcc_jiangsu:/tmp # pm list packages -3 package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:com.dangbeimarket cmcc_jiangsu:/tmp #%%%%%
-f 查看包的安裝位置
????????列出包和包相關(guān)聯(lián)的文件:
cmcc_jiangsu:/tmp # pm list packages -f package:/data/app/com.iflytek.xiri-WgYGkZvi6pwHhlca9dWSJw==/base.apk=com.iflytek.xiri package:/vendor/app/RemoteIME/RemoteIME.apk=com.droidlogic.inputmethod.remote package:/system/priv-app/MediaProvider/MediaProvider.apk=com.android.providers.media package:/data/app/com.mylejia.store--X53YUFZXKN1XMhyN9prZw==/base.apk=com.mylejia.store package:/system/priv-app/ExternalStorageProvider/ExternalStorageProvider.apk=com.android.externalstorage package:/system/app/CompanionDeviceManager/CompanionDeviceManager.apk=com.android.companiondevicemanager package:/system/priv-app/DownloadProvider/DownloadProvider.apk=com.android.providers.downloads package:/data/app/com.fengyun.live-829NViyOdL42DNDyYJhxWw==/base.apk=com.fengyun.live package:/product/priv-app/droidlogic-res/droidlogic-res.apk=com.droidlogic package:/system/app/Dangbei2.apk=com.dangbei.tvlauncher package:/system/priv-app/DefaultContainerService/DefaultContainerService.apk=com.android.defcontainer package:/system/app/PacProcessor/PacProcessor.apk=com.android.pacprocessor package:/system/app/CertInstaller/CertInstaller.apk=com.android.certinstaller package:/data/app/me.thomastv.rebootupdate-4SVHakbq9YXs3X7ozxyY0w==/base.apk=me.thomastv.rebootupdate package:/system/framework/framework-res.apk=android package:/system/priv-app/BackupRestoreConfirmation/BackupRestoreConfirmation.apk=com.android.backupconfirm package:/system/priv-app/StatementService/StatementService.apk=com.android.statementservice package:/system/app/Superuser/Superuser.apk=com.android.superuser package:/system/priv-app/SettingsProvider/SettingsProvider.apk=com.android.providers.settings package:/system/priv-app/SharedStorageBackup/SharedStorageBackup.apk=com.android.sharedstoragebackup package:/system/app/SystemXiri_release-2.0.4-unsigned_signed_Aligned/SystemXiri_release-2.0.4-unsigned_signed_Aligned.apk=com.iflytek.xiri2.system package:/product/app/webview/webview.apk=com.android.webview package:/system/app/SecureElement/SecureElement.apk=com.android.se package:/system/priv-app/InputDevices/InputDevices.apk=com.android.inputdevices package:/vendor/app/BluetoothRemote/BluetoothRemote.apk=com.droidlogic.BluetoothRemote package:/system/app/ExtShared/ExtShared.apk=android.ext.shared package:/system/app/KeyChain/KeyChain.apk=com.android.keychain package:/system/priv-app/ExtServices/ExtServices.apk=android.ext.services package:/system/priv-app/PackageInstaller/PackageInstaller.apk=com.android.packageinstaller package:/system/priv-app/ProxyHandler/ProxyHandler.apk=com.android.proxyhandler package:/system/app/LatinIME/LatinIME.apk=com.android.inputmethod.latin package:/system/priv-app/ManagedProvisioning/ManagedProvisioning.apk=com.android.managedprovisioning package:/system/app/BtAutoConn_release_9.0_V1.0_19_20210827_chinamobile/BtAutoConn_release_9.0_V1.0_19_20210827_chinamobile.apk=com.iflytek.bt.auto package:/system/app/SkySettingA9_jiangsuCMCC_release/SkySettingA9_jiangsuCMCC_release.apk=com.android.settings package:/system/priv-app/VpnDialogs/VpnDialogs.apk=com.android.vpndialogs package:/system/priv-app/Shell/Shell.apk=com.android.shell package:/data/app/com.dangbeimarket-GvchZCDlwKegHBtoXBQhwg==/base.apk=com.dangbeimarket package:/system/priv-app/FusedLocation/FusedLocation.apk=com.android.location.fused package:/system/priv-app/SystemUI/SystemUI.apk=com.android.systemui package:/system/app/Bluetooth/Bluetooth.apk=com.android.bluetooth package:/system/app/SoftDetector_V5.1.0_20210721_35101_x025_encrypt/SoftDetector_V5.1.0_20210721_35101_x025_encrypt.apk=com.cmcc.mid.softdetector cmcc_jiangsu:/tmp #%%%%%
搜索包
? ? ? ? 搜索包很簡(jiǎn)單 在引號(hào)中輸入包包含的字符 所有匹配的信息都列出來:
shell@GIONEE_G1605A:/ $ pm list packages "androidterm" /* 尋找包含 androidterm 的包 */ package:jackpal.androidterm shell@GIONEE_G1605A:/ $? ? ? ? 也可以根據(jù)多個(gè)參數(shù)配合查找:
cmcc_jiangsu:/tmp # pm list packages -3 "live" /* 在第三方軟件中搜索包含 live 字樣的包 */ package:com.fengyun.live cmcc_jiangsu:/tmp #——————————
卸載
? ? ? ? 卸載時(shí)如果加上 -k 參數(shù)表示保留配置和緩存文件:
pm uninstall -k 應(yīng)用名 /* 卸載應(yīng)用且保留數(shù)據(jù)與緩存 */ pm uninstall 應(yīng)用名 /* 如果不加 -k 參數(shù)則全部刪除 */? ? ? ? 卸載安卓預(yù)裝軟件的話我們經(jīng)常使用該命令:
pm uninstall -k –user 包名? ? ? ? 示例卸載終端模擬器:
shell@GIONEE_G1605A:/ $ pm list packages -3 package:com.uei.quicksetsdk.mtkirmgr package:jackpal.androidterm package:com.iflytek.translate shell@GIONEE_G1605A:/ $ pm uninstall jackpal.androidterm Success shell@GIONEE_G1605A:/ $ pm list packages -3 package:com.uei.quicksetsdk.mtkirmgr package:com.iflytek.translate shell@GIONEE_G1605A:/ $%%%%%
根據(jù) UID 卸載指定賬戶應(yīng)用
????????還可以卸載指定用戶的軟件
pm uninstall --user 0 應(yīng)用 /* 卸載默認(rèn)用戶的 應(yīng)用 */? ? ? ? 示例搭配用戶 UID 卸載指定軟件:
cmcc_jiangsu:/ # pm list packages -3 /* 查看第三方應(yīng)用 */ package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket cmcc_jiangsu:/ # pm uninstall --user 0 com.xiaodianshi.tv.yst /* 卸載機(jī)主的小破站 */ Success cmcc_jiangsu:/ # pm list packages -3 /* 查看第三方應(yīng)用 卸載成功 */ package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket cmcc_jiangsu:/ #——————————
安裝
? ? ? ? 需要注意的是?pm install 與 adb install 不同
????????adb install 安裝的 .apk 是在你的電腦上!
????????而 pm install 安裝的 .apk 是存儲(chǔ)在你的手機(jī)中!
? ? ? ? 所以手下你需要將 .apk 文件上傳到手機(jī)目錄中 常用的目錄如:
/data/local/tmp
? ? ? ? 安裝 apk 最常用的兩種方式:
pm install apk /* 安裝指定 apk */ pm install -r APK /* -r 參數(shù)表示重新安裝指定 apk 會(huì)保留應(yīng)用數(shù)據(jù) */? ? ? ? 其她參數(shù) 可能以后會(huì)用到:
-l 鎖定應(yīng)用程序 -t 允許測(cè)試 apk 被安裝 -i 指定安裝包的包名!!! -s 安裝到 sd 卡 -f 默認(rèn)安裝到系統(tǒng)內(nèi)置存儲(chǔ)中 -d 允許降級(jí)安裝 同一應(yīng)用低級(jí)換高級(jí)? ? ? ? 示例安裝終端模擬器:
cmcc_jiangsu:/ # pm list packages -3 package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:com.dangbeimarket cmcc_jiangsu:/ # ls /tmp/Term.apk -alh -rw-r--r-- 1 root root 551K 2022-05-28 23:35 /tmp/Term.apk cmcc_jiangsu:/ # pm install /tmp/Term.apk avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:object_r:su _tmpfs:s0 tclass=file permissive=1 Success cmcc_jiangsu:/ # pm list packages -3 package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket cmcc_jiangsu:/ #%%%%%
將 APP 安裝到指定 UID 用戶下
? ? ? ? 語法格式:
pm install –user USER_ID name.apk? ? ? ? 示例將當(dāng)貝市場(chǎng)安裝到機(jī)主用戶下:
cmcc_jiangsu:/ # pm list users /* 列出用戶信息 */ Users:UserInfo{0:機(jī)主:13} running cmcc_jiangsu:/ # ls /sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload /* 查看安裝包在哪里 */ Term-1.0.65.apk bilibiliTV_1.5.1_dangbei.apk Term.apk dangbeishichang1_3.11.9.2_dangbei.apk cmcc_jiangsu:/ # pm list packages -3 /* 查看第三方應(yīng)用列表 */ package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket cmcc_jiangsu:/ # cd /sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload /* 進(jìn)入安裝包目錄 */ cmcc_jiangsu:/sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload # pwd /* 查看當(dāng)前位置 */ /sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload cmcc_jiangsu:/sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload # pm install --user 0 dangbeishichang1_3.11.9.2_dangbei.apk /* 將指定 apk 安裝到 UID 為 0 的用戶上 */ avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:object_r:sd cardfs:s0 tclass=file permissive=1 Success cmcc_jiangsu:/sdcard/Android/data/com.dangbei.tvlauncher/files/Download/zm_fileupload # cd / /* 回到根目錄 */ cmcc_jiangsu:/ # pm list packages -3 /* 查看第三方應(yīng)用列表 發(fā)現(xiàn)多出來 com.dangbeimarket */ package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket package:com.tv.kuaisou cmcc_jiangsu:/ #? ? ? ? 安裝成功:
——————————
控制
%%%%%
清除應(yīng)用數(shù)據(jù)
? ? ? ? 語法如下:
pm clear 包名? ? ? ? 示例 清除終端模擬器的數(shù)據(jù):
shell@GIONEE_G1605A:/mnt/sdcard $ pm clear jackpal.androidterm Success shell@GIONEE_G1605A:/mnt/sdcard $%%%%%
停用/禁用/啟用
? ? ? ? 需要注意的是只有系統(tǒng)應(yīng)用才可以禁用 第三方應(yīng)用不可以哦
? ? ? ??主要是對(duì) package/包?或 component/組件 進(jìn)行操作:
pm enable 包名/組件名 /* 使 package 或 component 可用 */ pm disenable 包名/組件名 /* 使 package 或 component 不可用 直接就找不到應(yīng)用了 */ pm disenable-user 包名/組件名 /* 使 package 或 component 不可用 會(huì)顯示已停用 */? ? ? ? 示例禁用?com.android.webview 包 介紹一個(gè)這個(gè)包:
????????WebView 是 Android 系統(tǒng)提供的一個(gè)能顯示網(wǎng)頁的系統(tǒng)控件
????????是一個(gè)特殊的 View 同時(shí)也是一個(gè) ViewGroup 可以有很多其她子 View
? ? ? ? 該控件的作用是用來展示一個(gè) web 頁面
????????她使用的內(nèi)核是 webkit 引擎
????????在低版本和高版本采用了不同的 webkit 版本內(nèi)核
????????在版本更新到 4.4 后直接使用了 Chrome 作為內(nèi)置網(wǎng)頁瀏覽器
cmcc_jiangsu:/ # pm list packages -d /* 沒有禁用包 */ cmcc_jiangsu:/ # pm list packages -s /* 查看系統(tǒng)包 */ package:com.iflytek.xiri package:com.droidlogic.inputmethod.remote package:com.android.providers.media package:com.android.externalstorage package:com.android.companiondevicemanager package:com.android.providers.downloads package:com.droidlogic package:com.dangbei.tvlauncher package:com.android.defcontainer package:com.android.pacprocessor package:com.android.certinstaller package:android package:com.android.backupconfirm package:com.android.statementservice package:com.android.superuser package:com.android.providers.settings package:com.android.sharedstoragebackup package:com.iflytek.xiri2.system package:com.android.webview package:com.android.se package:com.android.inputdevices package:com.droidlogic.BluetoothRemote package:android.ext.shared package:com.android.keychain package:android.ext.services package:com.android.packageinstaller package:com.android.proxyhandler package:com.android.inputmethod.latin package:com.android.managedprovisioning package:com.iflytek.bt.auto package:com.android.settings package:com.android.vpndialogs package:com.android.shell package:com.android.location.fused package:com.android.systemui package:com.android.bluetooth package:com.cmcc.mid.softdetector cmcc_jiangsu:/ # pm disable-user com.android.webview /* 停用該包 這是一個(gè)瀏覽器控件 */ Package com.android.webview new state: disabled-user cmcc_jiangsu:/ # pm list packages -d /* 查看禁用包 成功禁用 */ package:com.android.webview cmcc_jiangsu:/ # pm disable com.android.bluetooth /* 禁用該包 這是藍(lán)牙 */ Package com.android.bluetooth new state: disabled cmcc_jiangsu:/ # pm list packages -d /* 查看禁用包 藍(lán)牙也被禁了 */ package:com.android.webview package:com.android.bluetooth cmcc_jiangsu:/ #????????WebView 組件是安卓系統(tǒng)中內(nèi)置的一款基于 webkit 引擎、展現(xiàn) web 頁面的控件
????????WebView 能夠?qū)?Web 頁面進(jìn)行顯示和渲染
????????網(wǎng)絡(luò)上或本地可以直接使用 html 文件作布局 更可以和 JavaScript 交互調(diào)用
????????WebView 控件功能強(qiáng)大
????????除了具有一般 View 的屬性和設(shè)置外 還可以對(duì) url 請(qǐng)求、頁面加載、渲染、頁面交互進(jìn)行強(qiáng)大的處理
總的來說 WebView 是用于展示網(wǎng)絡(luò)請(qǐng)求后的結(jié)果比如開發(fā)者開發(fā)一款 APP 如果想要用她訪問網(wǎng)絡(luò) 但是不想使用手機(jī)安裝的瀏覽器而是想在自己 APP 內(nèi)部打開展示網(wǎng)頁 此時(shí)就可以使用 WebView 這個(gè)組件來展示網(wǎng)頁? ? ? ? 藍(lán)牙就不需要介紹了吧 懂的都懂
? ? ? ? 下面示例一下怎么啟用應(yīng)用:
cmcc_jiangsu:/ # pm enable com.android.webview /* 恢復(fù) WebView 控件 */ Package com.android.webview new state: enabled cmcc_jiangsu:/ # pm list packages -d /* 查看禁用包列表 WebView 已經(jīng)恢復(fù) */ package:com.android.bluetooth cmcc_jiangsu:/ # pm enable com.android.bluetooth /* 恢復(fù)藍(lán)牙 */ Package com.android.bluetooth new state: enabled cmcc_jiangsu:/ # pm list packages -d /* 已經(jīng)沒有禁用包了 */ cmcc_jiangsu:/ # pm list packages -s package:com.iflytek.xiri package:com.droidlogic.inputmethod.remote package:com.android.providers.media package:com.android.externalstorage package:com.android.companiondevicemanager package:com.android.providers.downloads package:com.droidlogic package:com.dangbei.tvlauncher package:com.android.defcontainer package:com.android.pacprocessor package:com.android.certinstaller package:android package:com.android.backupconfirm package:com.android.statementservice package:com.android.superuser package:com.android.providers.settings package:com.android.sharedstoragebackup package:com.iflytek.xiri2.system package:com.android.webview package:com.android.se package:com.android.inputdevices package:com.droidlogic.BluetoothRemote package:android.ext.shared package:com.android.keychain package:android.ext.services package:com.android.packageinstaller package:com.android.proxyhandler package:com.android.inputmethod.latin package:com.android.managedprovisioning package:com.iflytek.bt.auto package:com.android.settings package:com.android.vpndialogs package:com.android.shell package:com.android.location.fused package:com.android.systemui package:com.android.bluetooth package:com.cmcc.mid.softdetector cmcc_jiangsu:/ #%%%%%
隱藏與恢復(fù)應(yīng)用
????????被隱藏應(yīng)用在應(yīng)用管理中變得不可見 桌面圖標(biāo)也會(huì)消失:
pm hide 應(yīng)用 /* 隱藏 package 或 component */ pm unhide 應(yīng)用 /* 將 package 或 component 恢復(fù)可見 */? ? ? ? 示例隱藏小破站:
cmcc_jiangsu:/ # pm list packages -3 /* 查看第三方應(yīng)用 */ package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket cmcc_jiangsu:/ # pm hide com.xiaodianshi.tv.yst /* 隱藏 B 站 TV 版 */ Package com.xiaodianshi.tv.yst new hidden state: true cmcc_jiangsu:/ # pm list packages -3 /* 再次查看第三方應(yīng)用 發(fā)現(xiàn)消失了 */ package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket cmcc_jiangsu:/ # pm list packages -d /* 并沒有禁用 */ cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png /* 截個(gè)屏 */ screencap 3 screencap start. screen_type: 1 file path: /sdcard/sc/1.png new ScreenCatch ok got video+osd data: 1280 x 720 SkEncodeImage success screencap end cmcc_jiangsu:/ #? ? ? ? 發(fā)現(xiàn)桌面圖標(biāo)消失掉了:
? ? ? ? 示例恢復(fù)小破站:
cmcc_jiangsu:/ # pm unhide com.xiaodianshi.tv.yst /* 恢復(fù)小破站 */ Package com.xiaodianshi.tv.yst new hidden state: false cmcc_jiangsu:/ # pm list packages -3 /* 查看第三方應(yīng)用 bilibili tv 回來了 */ package:com.xiaodianshi.tv.yst package:com.mylejia.store package:com.fengyun.live package:me.thomastv.rebootupdate package:jackpal.androidterm package:com.dangbeimarket cmcc_jiangsu:/ # screencap -p /sdcard/sc/1.png /* 截個(gè)屏 */ screencap 3 screencap start. screen_type: 1 file path: /sdcard/sc/1.png new ScreenCatch ok got video+osd data: 1280 x 720 SkEncodeImage success screencap end cmcc_jiangsu:/ #%%%%%
默認(rèn)安裝位置
? ? ? ? 返回當(dāng)前應(yīng)用的安裝位置:
pm get-install-localtion? ? ? ? 會(huì)返回 0/1/2 三種值 分別表示 自動(dòng)/內(nèi)部/外部
? ? ? ? 示例:
cmcc_jiangsu:/ # pm get-install-location 0[auto] cmcc_jiangsu:/ #? ? ? ? 我這邊是讓系統(tǒng)自動(dòng)安裝
????????控制應(yīng)用的默認(rèn)安裝位置
pm set-install-location 位置 /* 更改默認(rèn)的安裝位置 */? ? ? ? 參數(shù)如下:
0 自動(dòng) 讓系統(tǒng)決定最好的位置 1 內(nèi)部存儲(chǔ) 安裝在內(nèi)部設(shè)備上的存儲(chǔ) 2 外部存儲(chǔ) 安裝在外部媒體? ? ? ? 示例更改安裝位置 注意:
只適用于調(diào)試 不要瞎搞!
cmcc_jiangsu:/ # pm set-install-location 2 cmcc_jiangsu:/ # pm get-install-location 2[external] cmcc_jiangsu:/ # pm set-install-location 1 cmcc_jiangsu:/ # pm get-install-location 1[internal] cmcc_jiangsu:/ # pm set-install-location 0 cmcc_jiangsu:/ # pm get-install-location 0[auto] cmcc_jiangsu:/ #總結(jié)
以上是生活随笔為你收集整理的[CM311-1A]-全网最全 Android 软件管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跳级全奖进哈佛,连马云都忌惮三分,赚18
- 下一篇: oracle的env函数用法,env命令