在日常测试中,我们会用到各种各样的Android平台,用于测试存储设备的性能。其中,我们依赖到Android平台自身的工具,通过编写shell脚本来实现测试存储设备的性能。
  而awk工具(shell命令)在shell脚本中会经常用到,一般用于做数据筛选,有时候会碰到一些Android平台缺少awk工具。

获取awk的几种方式

  1. busybox生成awk工具(可从官网获取);
  2. toybox中链接出awk;
  3. 从其他相同API Level的Android平台中移植awk工具;

在这里,第二、三种方法不太可靠,因为来自不同类型的Android平台,实现方式会存在一些差异性,导致移植的awk工具不一定能够使用。

一、编译生成awk工具

从官网下载工具busybox,下载地址:busybox工具

android VasSonic的使用 android awork_android

1. 选择对应的设备结构,查看设备架构信息

adb shell
cat /proc/cpuinfo

android VasSonic的使用 android awork_android VasSonic的使用_02


或者使用命令:getprop ro.product.cpu.abi

来判断系统是64位还是32位

arm64-v8a --> 64bit
armeabi-v7a -->32bit

AArch64是ARMv8 架构的一种执行状态,所以选择 busybox-armv8l 进行安装,点击打开busybox-armv8l,然后Ctrl+S 保存文件到桌面,更改名称为busybox-armv8l,传入Android设备中,命令如下:

1)传入文件到/system/xbin目录下

adb remount
adb push Desktop\busybox-armv8l /system/xbin

注意: 因为 /system/xbin目录是只有r-x权限,所以无法直接将文件push进去;因此,需要事先执行adb remount命令

2)进入system/xbin目录,更改busybox文件权限,进行安装

adb shell
cd /system/xbin
chmod 755 busybox
busybox --install -s /system/xbin

运行awk命令正常,表示安装成功

二、从toybox中链接出awk

在Android平台上,shell经常使用到的命令,如:grep、df、ls、echo、ln等,都是从toybox工具中链接出来的

如图所示:

android VasSonic的使用 android awork_android_03


若Android平台缺少awk,可以尝试从toybox中链接出awk(有些平台的toybox工具不支持awk功能)

具体操作如下:

cd /system/bin
ln -s toybox awk

三、从其他相同API Level的Android平台中移植awk工具

  1. 首先,在相同版本的Android系统平台上获取awk工具,通过adb pull的方式:
adb pull /system/bin Desktop
  1. 获取awk工具后,然后再将awk工具adb push到缺少awk工具的平台上,使用命令如下:
adb remount
adb push Desktop\awk /system/bin