Android 框架实现分析 - 工具 - Native工具

        frameworks/native/cmds下的工具都是用C/C++开发,基于native接口。有atrace、bugreport、dumpstate、dumpsys、rawbu、screenshot、service。

atrace

bugreport

        Bugreport启动dumpstate,与其建立UNIX套接字连接,将套接字的数据输出到stdout。

        Dumpstate需要系统root用户权限,普通用户不能直接启动,bugreport是通过init进程间接启动dumpstate。在init.rc里面定义了dumpstate服务,bugreport通过ctl.start属性启动dumpstate服务。

dumpstate

        Dumpstate用来输出系统运行状态,包括系统构建配置,进程、线程信息,虚拟机的trace文件等等。

dumpsys

        Dumpsys用来输出ServiceManager管理的服务的状态。通过ServiceManager找到指定名字的服务,调用其dump接口。服务可以对dump接口参数化。

rawbu

        Rawbu使用纯二进制方式备份、恢复/data目录下文件,包括stat结构。rawbu需要使用root用户身份执行,在备份、恢复前停止runtime、zygote服务(init.rc服务),完成后在启动这两个服务。

screenshot

        Screenshot用来保持屏幕快照。实现方式为:打开framebuffer,读入pixel数据,通过libpng转换为png格式,并写入目标文件。screenshot需要使用root用户身份执行,在打开framebuffer后,切换到AID_SHELL用户。

service

        Service可以列出ServiceManager管理的服务,检查某个服务是否存在,甚至可以调用服务上的方法。

        调用方法时需要指定方法对应的code(整数),调用参数通过类型值的方式描述。类型有:

类型名

说明

i32

32位整数

s16

字符串

null

空句柄

intent

值的形式为:key=value列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting Horse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值