Android常用adb命令

本文详细介绍了adb命令集,包括包名查找、应用强制关闭、启动Activity/Service、发送广播、安装/卸载应用,以及一系列实用技巧如启动默认浏览器、模拟环境等,是Android开发者必备工具箱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.列举出所有包含[intent]的包名

adb shell pm list packages [option] [intent]
例如:列举包名含有com.android的package
adb shell pm list packages com.android

2.强制关闭一个应用程序

adb shell am force-stop [PACKAGE]
例如:通过指定包名强制关闭设置
adb shell am force-stop com.android.settings

3.命令行下启动应用程序

adb shell am start -n {包(package)名}/{包名}.{活动(activity)名称}

例如 命令行里启动默认浏览器:
 adb shell  am start -n com.android.browser/com.android.browser.BrowserActivity 

4.启动一个activity

adb shell am start [option] [intent]
例如:
adb shell am start -a android.settings.ACTION_NAME
adb shell am start -n com.android.settings/.Activity_class_name
参数含义: -a, Action ; -n, Component
例如:打开系统设置
adb shell am start -n com.android.settings/.Activity_class_name
例如:打开系统设置-输入法设置
adb shell am start -a android.settings.INPUT_METHOD_SETTINGS
例如:通过包名+类名开启系统照相机
adb shell am start -n com.android.camera/.Camera
例如:打开拨号界面,直接拨打10086
adb shell am start -a android.intent.action.CALL -d tel:10086
参数含义: -d, DATA_URI

5.启动一个Service

adb shell am startservice [option] [intent]
例如:
adb shell am startservice -a android.settings.ACTION_NAME
adb shell am startservice -n com.android.settings/.Service_class_name
反之,停止service就是把参数换成stopservice

6.发送广播

adb shell am broadcast [option] [intent]
例如:发送一个恢复出厂设置的广播
adb shell am broadcast -a android.intent.action.MASTER_CLEAR
例如:模拟手机低电环境
adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei "level" 3 --ei "scale" 100
参数含义: --ei, [EXTRA_KEY, EXTRA_INT_VALUE] int类型键值对
例1:

adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true

说明:--es 表示使用字符串类型参数  --ei 表示int类型参数  --ez 表示boolean类型参数  蓝色为key,红色为alue


例2:分别为String类型,int类型,boolean类型

adb shell am broadcast -a android.intent.action.gz.setpoweronoff --eia timeon 2019,7,8,17,55 --eia timeoff 2019,7,8,17,46 --ez enable true 

说明:--eia 表示使用int[]参数  

adb shell am broadcast 后面的参数有:

<INTENT> specifications include these flags and arguments:
[-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...]]
(mutiple extras passed as Integer[])
[--eial <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
(mutiple extras passed as List<Integer>)
[--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
(mutiple extras passed as Long[])
[--elal <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
(mutiple extras passed as List<Long>)
[--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
(mutiple extras passed as Float[])
[--efal <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
(mutiple extras passed as List<Float>)
[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(mutiple extras passed as String[]; to embed a comma into a string,
escape it using "\,")
[--esal <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(mutiple extras passed as List<String>; to embed a comma into a string,
escape it using "\,")
[--f <FLAG>]
[--grant-read-uri-permission] [--grant-write-uri-permission]
[--grant-persistable-uri-permission] [--grant-prefix-uri-permission]
[--debug-log-resolution] [--exclude-stopped-packages]
[--include-stopped-packages]
[--activity-brought-to-front] [--activity-clear-top]
[--activity-clear-when-task-reset] [--activity-exclude-from-recents]
[--activity-launched-from-history] [--activity-multiple-task]
[--activity-no-animation] [--activity-no-history]
[--activity-no-user-action] [--activity-previous-is-top]
[--activity-reorder-to-front] [--activity-reset-task-if-needed]
[--activity-single-top] [--activity-clear-task]
[--activity-task-on-home]
[--receiver-registered-only] [--receiver-replace-pending]
[--receiver-foreground]
[--selector]
[<URI> | <PACKAGE> | <COMPONENT>]

7.安装应用

adb install        xxxx.apk        

8.卸载应用

adb uninstall   包名      package是ANDROID应用程序的唯一标识,系统带的应用不可卸载。

9.其他命令

【adb help】获取帮助

【adb get-serialno】获取设备串号

【adb root】获取root权限,对部分手机有用,大部分上市手机已经把这个功能给关闭了。获取root权限还可以通过豌豆夹等第三方工具。

【adb kill-server】杀死adb的server进程。

【adb start-server】启动adb的server进程。

【adb devices】查看建立连接的android终端。

【android list】显示所有android终端

【ddms】启动ddms

【adb remount】重新加载硬盘。

【adb reboot】重新启动终端。

【adb push /sourcepath/filename /destinationpath/filename】从pc端拷贝一个文件到终端

【adb pull /sourcepath/filename /destinationpath/filename】从终端拷贝一个文件到pc端

【adb logcat -v time -s TAGNAME】显示自定义的TAGNAME并显示时间

【adb ppp】通过usb启动ppp

【adb monkey -p /path/appname -v 100】对程序进行强制测试100次

【adb shell】在pc端启动shell命令终端。
### 关于ArcGIS License Server无法启动的解决方案 当遇到ArcGIS License Server无法启动的情况,可以从以下几个方面排查并解决问题: #### 1. **检查网络配置** 确保License Server所在的计算机能够被其他客户端正常访问。如果是在局域网环境中部署了ArcGIS Server Local,则需要确认该环境下的网络设置是否允许远程连接AO组件[^1]。 #### 2. **验证服务状态** 检查ArcGIS Server Object Manager (SOM) 的运行情况。通常情况下,在Host SOM机器上需将此服务更改为由本地系统账户登录,并重启相关服务来恢复其正常工作流程[^2]。 #### 3. **审查日志文件** 查看ArcGIS License Manager的日志记录,寻找任何可能指示错误原因的信息。这些日志可以帮助识别具体是什么阻止了许可服务器的成功初始化。 #### 4. **权限问题** 确认用于启动ArcGIS License Server的服务账号具有足够的权限执行所需操作。这包括但不限于读取/写入特定目录的权利以及与其他必要进程通信的能力。 #### 5. **软件版本兼容性** 保证所使用的ArcGIS产品及其依赖项之间存在良好的版本匹配度。不一致可能会导致意外行为完全失败激活license server的功能。 #### 示例代码片段:修改服务登录身份 以下是更改Windows服务登录凭据的一个简单PowerShell脚本例子: ```powershell $serviceName = "ArcGISServerObjectManager" $newUsername = ".\LocalSystemUser" # 替换为实际用户名 $newPassword = ConvertTo-SecureString "" -AsPlainText -Force Set-Service -Name $serviceName -StartupType Automatic New-ServiceCredential -ServiceName $serviceName -Account $newUsername -Password $newPassword Restart-Service -Name $serviceName ``` 上述脚本仅作为示范用途,请依据实际情况调整参数值后再实施。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值