监控Android设备上程序的运行,需要ADB的配合,具体ADB工具的介绍以及命令选项可见博客: http://blog.csdn.net/mliubing2532/article/details/7579146,关于SDK可以google~
有了ADB其实还不够,我们知道
Android系统中自带的命令很少,其实不够用,连find,grep,less都没有(我的Android手机里面就没有)。可以为其安装busybox,来为其添加更多可用的command tools.
如果需要从busybox源码开始的话,需要设置交叉编译链接器(Cross Compiler),然后从源码得到ARM下的ELF文件,具体参考博文:
http://blog.csdn.net/liaoshengjiong/article/details/3957725
不过既然busybox官网上已经有ARM下的二进制文件了,那就直接copy啦。
进入
http://www.busybox.net/downloads/binaries/,可以看到好几个版本,这里我下载了一个不旧不新的版本(1.20.0/b
usybox-armv6l)
这里需要使用Android SDK提供的adb(Android Debug Bridge)将文件发送到Android设备上.
首先进入到Android Shell中,在/data文件夹下创建busybox文件夹
1. cmd>
adb shell
2.
shell@android: /$
mkdir busybox (如果不行就先su root,再创建)
在cmd下运行以下命令(我的busybox-armv6l在F盘下)
3.cmd>
adb push f:/busybox-armv6l /data/busybox
为busybox-armv6l改名为busybox(只是看着顺眼),并且添加可执行权限
4.shell@android:/data/busybox$
mv busybox-armv6l busybox
5.
shell@android:/data/busybox$
chmod 766 busybox
你可以把busybox添加到PATH路径中,这里直接在busybox目录下测试了
现在我们就可以通过ADB SHELL来实时监测Android设备上程序的运行情况了,CPU使用率,内存占用情况等
比如我要监测我手机上QQ的运行情况,这里我的QQ应用程序对应的是app_75,
使用如下命令来实时监测:
shell@android:/data/busybox$
top | ./busybox grep app_75
输出的结果如下图所示,最后我退出了QQ,可以看到最后的内存占用情况都变成0了~~
还有:
用NDK打包Android工程终于搞定了,`日`