前几天看见有同学发帖,ADB install 显示进度条,感觉挺有意思,顺便贴一个 Node.js
的实现。
macaca-adb 是 Macaca 测试工具中 Android 驱动部分的核心模块。当然,一个 Node.js 模块不仅可以当做依赖模块,稍加配置就可以当做独立的工具使用,也就是说你可以单独使用 macaca-adb
。
# install
$ cnpm i macaca-adb -g
# print help
$ macaca-adb -h
# install test
$ macaca-adb install path/to/your/apk
const apkPath = path.resolve(args[1]);
const baseName = path.basename(apkPath);
const fullSize = fs.statSync(apkPath).size;
ADB.getDevices()
.then(devices => {
return devices[0];
})
.then(device => {
adb.setDeviceId(device.udid);
const timer = setInterval(() => {
adb
.shell(`ls -l /data/local/tmp/${baseName}`)
.then(d => {
d = d.match(/\s+\d+\s+/)[0].trim();
const rate = parseInt((parseInt(d, 10) / fullSize) * 100, 10);
print(`file trans process: ${rate}%`);
if (rate === 100) {
clearInterval(timer);
print('file installing...');
}
});
}, 100);
return adb.install(apkPath);
})
.then(out => {
print(`${out}${EOL}`);
});
这里简单写个 sample 说明 Node.js 开发体验上便捷,感谢 TesterHome 提供思路,欢迎使用 macaca-adb
模块或者其他 Macaca 的模块做二次开发,会有很多有意思并且提效的火花。
欢迎讨论,互相学习。
微博: http://weibo.com/xudafeng
Github: https://github.com/xudafeng