准备工作
安装node
在nodejs官网直接下载安装,会自动嫁娶环境变量。http://nodejs.cn/download/
安装node-cmd
> npm install --save npm-cmd
或者全局安装
> npm install --save npm-cmd
(如果安装比较慢可以替换淘宝的npm源:> npm config set registry https://registry.npm.taobao.org)
安装adb并设置环境变量
// 导入node-cmd
var cmd = require("node-cmd");
// 到处文件到1.txt
cmd.get("adb devices > 1.txt",function(err,data){
console.log(data);
});
// 读取文件
var fs=require('fs');
fs.readFile('1.txt','utf-8',function(err,data){
if(err){
console.error(err);
}
// 截取id
var id = data;
console.log(id);
// 开始分开每个devicesId(测试2个)
for(var i=1;i<=2;i++){
var start=26+((i-1)*27);
var end=44+((i-1)*27);
var devicesId=[];
devicesId[i]=id.slice(start,end);
console.log(devicesId[i]);
// 获取命令(利用adb -s 实现分别操作手机)
var pushRom = "adb -s "+devicesId[i]+" push env.apk /sdcard/";
var installRom = "adb -s "+devicesId[i]+" install -r env.apk";
console.log(pushRom);
console.log(installRom);
// 执行命令
cmd.get(pushRom,function(err,data){
console.log("正在推送,请稍候。。。");
console.log(data);
});
cmd.get(installRom,function(err,data){
console.log("正在安装,请稍候。。。");
console.log(data);
});
}
});
目前实现用adb同时控制两个安卓手机。之后会加入同时控制多个手机,并自动识别。
改进
优化截取的流程,从以前的整个文档寻找,变成先截取成一行,然后截取每行前18位。
// 导入node-cmd
var cmd = require("node-cmd");
//把devicesid保存到1.txt
cmd.get("adb devices > 1.txt", function (err, data) {
console.log(data);
});
//读取1.txt
var fs = require('fs');
fs.readFile('1.txt', 'utf-8', function (err, data) {
if (err) {
console.error(err);
}
// 截取devicesId
var id = data;
console.log(id);
var t = id.split("\n");
for (let i = 1; i < t.length - 2; i++) {
var devicesId = t[i].slice(0, 18);
console.log(devicesId);
var pushRom = "adb -s " + devicesId + " push Hive_ok_samsung_mokee_d.zip /sdcard/";
console.log(pushRom);
cmd.run(pushRom);
console.log("正在推送。。。。");
}
});