- 文档
- 教程
- 知识库
【免费下载链接】tldr
Collaborative cheatsheets for console commands 📚.
am(Activity Manager)是 Android 系统中用于与活动管理服务交互的命令行工具,通常经由adb shell在设备或模拟器上执行。本篇文章以 tldr 开源仓库中的保加利亚语速查页 pages.bg/android/am.md 为核心骨架,结合英文原页 pages.en/android/am.md 与仓库的规范文档、测试脚本,逐条拆解am命令最常用的启动与意图转换场景,并解析 tldr 页面在占位符语法、选项助记符、翻译本地化与自动化校验方面的工程实践。读完本文,你既能直接上手 Android Activity 的启动与 Intent 操作,也能理解 tldr 项目"一命令一页、最多八例"的文档写作与维护机制。
一、页面定位:am 速查页在仓库中的位置
tldr 仓库按平台与语言双重维度组织文档:pages/与pages.en/存放英文页面,pages.bg/存放保加利亚语(български)翻译,平台目录下再按android、common、linux、osx、windows等细分。am是 Android 专属命令,因此存放在android/目录下,完整路径为 pages.bg/android/am.md(保加利亚语)与 pages.en/android/am.md(英文)。
根据仓库的风格指南,tldr 页面遵循统一模板:标题为命令名本身、以>开头的命令描述、官方文档链接,以及"描述 + 命令"交替排列的示例列表,整页最多 8 个命令示例。am页面正是这一模板的典型体现:保加利亚语版包含 4 个示例,英文原页则多出第 5 个(am start -W)。同时,页面文件名必须全小写且与命令名严格一致(am.md),标题无需小写但必须与命令名匹配——style-guide.md 明确要求页面文件名与标题必须等于命令名。
在 tldr 客户端中,当用户查询am时,客户端会根据运行平台自动选择最合适的页面版本(Android 设备匹配android/目录),这正是风格指南中"平台差异"一节所描述的机制。
二、页面结构:标题、描述与信息链接
am.md开头三行构成页面的"元信息"区:
# am > Мениджър на дейности на Android. > Повече информация: <https://developer.android.com/tools/adb#am>.- 标题
# am:与命令名一致; - 描述行
Мениджър на дейности на Android.:保加利亚语,意为 "Android activity manager"(Android 活动管理器)。按照风格指南要求,描述不应重复页面标题,而是简洁地说明功能,并避免出现 "command-line" 之类的冗余修饰; - 信息链接行:指向 Android 官方开发者文档中
adb#am锚点。风格指南要求More information链接用尖括号包裹、优先链接作者官方文档,且建议翻译页与英文页统一使用英文内容的链接(本页保加利亚语版即保留了英文官方文档链接),因为翻译常与英文页不同步,链接若变更难以维护。
同目录下的 pages.bg/android/bugreport.md 还明确提示"该命令只能通过adb shell使用",可以佐证am类系统工具的通用执行环境:先adb shell进入设备 shell,再执行am ...命令与系统 Activity Manager 服务交互。
三、四个核心示例逐条拆解
保加利亚语版 am.md 的四个示例完整覆盖了am的两大常用子命令:start(启动 Activity)与to-uri(将 Intent 转为 URI)。
3.1 按组件名与包名启动 Activity
Стартиране на дейността с конкретен компонент и име на пакет [n]ame: (启动具有指定组件与包[n]名的活动)
am start -n {{com.android.settings/.Settings}}-n是[n]ame的助记符(mnemonic),用于指定目标组件。参数格式为包名/类名:com.android.settings是包名,/后的.Settings表示包内相对类名,等价于com.android.settings.Settings。该命令可直接启动系统设置页面,是自动化测试与日常调试中最常用的启动方式之一。
3.2 通过 Action 与 Data 启动意图
Стартиране на действие [a]ction и предаване на [d]ata към него: (启动一个动[a]作,并向其传递数[d]据)
am start -a {{android.intent.action.VIEW}} -d {{tel:123}}-a指定 Intent 的[a]ction,-d指定[d]ataURI。android.intent.action.VIEW是查看类动作,配合tel:123数据,会唤起拨号界面并预填号码 123。这条命令演示了"隐式 Intent"的构造方式:不指定具体组件,而由系统根据 Action + Data 匹配合适的应用。
3.3 按 Action 与 Category 启动 Activity
Стартиране на дейност, съответстваща на конкретно [a]ction и [c]ategory: (启动与特定动[a]作和类[c]别相匹配的活动)
am start -a {{android.intent.action.MAIN}} -c {{android.intent.category.HOME}}-c指定 Intent 的[c]ategory。android.intent.action.MAIN+android.intent.category.HOME组合是 Android 主屏 Activity 的入口条件,因此这条命令会启动设备的主界面。该组合也常用于验证设备是否处于可正常回桌面的状态。
3.4 将 Intent 转换为 URI
Конвертиране на намерение в URI: (将 Intent 转换为 URI)
am to-uri -a {{android.intent.action.VIEW}} -d {{tel:123}}am to-uri子命令不会真正启动任何 Activity,而是把命令行构造出的 Intent 序列化为intent:协议的 URI 并打印到标准输出。该结果可被用于adb shell日志回放、跨进程传递或写入快捷方式等场景。示例与 3.2 保持同一组 Action/Data(VIEW+tel:123),便于对照理解"同一 Intent 的启动版与序列化版"。
四、补充示例:英文原页的等待启动
英文原页 pages.en/android/am.md(与 pages/android/am.md 内容一致)在保加利亚语版的基础上多出第 5 个示例:
Start the home activity on an emulator or device: (在模拟器或设备上启动主界面 Activity)
am start -W -c android.intent.category.HOME -a android.intent.action.MAIN该命令同样使用MAIN+HOME组合启动主屏,但额外加入了-W选项:-W表示等待(wait)启动流程完成后才返回,适合在脚本中需要确认 Activity 已成功启动再继续后续步骤的场景。此例也演示了同一功能在 tldr 中"平台页优先、翻译页按需同步"的演进关系——翻译页允许暂时落后于英文页,由母语维护者后续同步(见风格指南中的翻译同步说明)。
五、tldr 语法规范在 am 页面中的体现
5.1 占位符{{ }}
页面中所有用户可替换的值都用{{...}}包裹,如{{com.android.settings/.Settings}}、{{tel:123}}。这是 tldr 的核心约定:客户端可以识别并对占位符做高亮、复制替换等增强处理。风格指南的 Placeholder Syntax 一节规定,占位符用于标注"用户的选择",而描述中已明确写死的值(例如-W -c android.intent.category.HOME)则不加占位符——am start -W示例中 action 与 category 均为固定值,因此直接裸写,这正是该规范的忠实执行。
5.2 短选项助记符(mnemonics)
页面描述里出现的[n]、[a]、[d]、[c]属于 tldr 独有的"短选项助记符":用方括号标出短选项所代表的英文单词首字母,帮助用户记住-n、-a、-d、-c的含义(分别为 name、action、data、category)。风格指南对助记符有严格要求:
- 必须与官方文档中的含义一致(本例即对应
am各选项的官方语义); - 区分大小写,如
-v(版本)与-V(冗长模式)不可混淆; - 连续多个助记字符应放在同一组方括号内,如
e[xp]i[r]ation而非e[x][p]i[r]ation。
5.3 描述使用祈使语气
风格指南规定所有示例描述必须使用祈使语气(imperative mood),am页面各条描述均以动词原形开头("Стартиране…"、"Конвертиране…"),符合"描述命令做什么"而非"正在做什么"的写作规范。
六、翻译本地化:保加利亚语页面的处理方式
保加利亚语版 am.md 展示了 tldr 翻译页的典型处理策略:
- 命令与选项不翻译:
am start -n、android.intent.action.VIEW等命令字面量保持英文原样,只有描述文本被翻译为保加利亚语; - 助记符保留英文原词:描述中同时保留
[n]ame、[a]ction、[d]ata、[c]ategory的英文单词。这与风格指南 Short option mnemonics 一节给出的翻译建议一致——当被高亮字符在译文中不存在时,可将英文原词放在括号内并列,例如 "ekstrak (E[x]tract)" 的印尼语模式,本页即采用在保加利亚语描述中嵌入英文助记词的等价做法; - 专有名词不翻译:如
Android、URI等作为固定技术词汇保留。
此外,翻译页默认沿用英文页的祈使语气与占位符规范,除非各语言专区另有规定(风格指南中仅对中文、印尼语、法语、葡萄牙语、西班牙语等设有专区规则,保加利亚语目前遵循通用规则)。
七、质量保障:lint 与测试机制
tldr 仓库为每个页面配备了两层自动化校验,保证am.md这类页面长期符合格式规范:
- tldr-lint:专门校验 tldr 页面格式(页面布局、占位符语法、助记符、命令示例数量等)。仓库的 scripts/test-tldr-lint.sh 展示了实际的 lint 配置:默认忽略
TLDR104检查项,阿拉伯语、孟加拉语、波斯语、印地语、日语、韩语、老挝语、马拉雅拉姆语、尼泊尔语、泰语、泰米尔语、土耳其语等语言额外检查TLDR003/TLDR004/TLDR015,中文额外检查TLDR005,而英文(pages.en符号链接指向pages)则不做任何忽略;保加利亚语pages.bg不在特例列表中,故仅忽略TLDR104。本地复现校验可运行npx tldr-lint pages.bg/android/am.md; - markdownlint:仓库 package.json 中定义了
lint-markdown(markdownlint pages*/**/*.md)、lint-tldr-pages(tldr-lint ./pages)与test(bash scripts/test.sh)等 npm scripts,提交前可通过这些命令批量验证全仓库页面。
风格指南还提示,若想本地预览页面渲染效果,可使用tldr --render path/to/tldr_page.md,配合编辑器即可在提交前检查am.md这类页面的最终呈现。
八、关联 Android 命令页与扩展阅读
am只是 Android 设备调试命令族的一员,pages.bg/android/目录还收录了同属adb shell环境的相关命令,可对照阅读:
- pages.bg/android/bugreport.md:生成设备完整错误报告,页面明确标注"仅能通过
adb shell使用"; - pages.bg/android/cmd.md:Android 服务管理器(
cmd -l列出所有运行中的服务); - pages.bg/android/dalvikvm.md:启动 Dalvik/ART Java 虚拟机的类路径入口。
若希望深入了解 tldr 页面格式的完整约定(页面模板、占位符命名、路径写法、助记符规则、翻译规范等),可精读 contributing-guides/style-guide.md;CLIENT-SPECIFICATION.md 则面向 tldr 客户端实现者,说明了客户端如何解析页面并决定按平台展示android/目录下的对应页面。掌握am页面的同时,也就掌握了 tldr 社区"简洁、规范、可校验"的速查文档方法论。
- 文档
- 教程
- 知识库
【免费下载链接】tldr
Collaborative cheatsheets for console commands 📚.
相关推荐
tldr 项目实战解读:Android `am`(Activity Manager)命令速查手册
tldr 项目实战解读:Android am (Activity Manager)命令速查手册 am 是 Android 系统自带的 活动管理器(Activit
文档教程知识库tldr 中的 `cp` 命令:阿拉伯语速查页面的八个实战示例与多语言规范解析
tldr 中的 cp 命令:阿拉伯语速查页面的八个实战示例与多语言规范解析 导读 cp (copy)是 GNU coreutils 中最常用的文件复制命令,几乎
文档教程知识库scp 命令速查指南:tldr 仓库中基于 SSH 的安全文件复制实战与页面规范解析
scp 命令速查指南:tldr 仓库中基于 SSH 的安全文件复制实战与页面规范解析 scp (Secure Copy Protocol)是在 SSH 之上完成
文档教程知识库
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考