agent退出打印系统日志
parent
2633f64fa9
commit
9d528d2229
|
@ -27,11 +27,11 @@ import java.util.*;
|
|||
*/
|
||||
public class AndroidDeviceInitThread extends Thread {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(AndroidDeviceInitThread.class);
|
||||
private final Logger logger = LoggerFactory.getLogger(AndroidDeviceInitThread.class);
|
||||
|
||||
private AdbDevice adbDevice;
|
||||
private final AdbDevice adbDevice;
|
||||
|
||||
private Adb adb;
|
||||
private final Adb adb;
|
||||
|
||||
private AdbTransport transport;
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class AndroidDeviceInitThread extends Thread {
|
|||
|
||||
private boolean agentStatus = false;
|
||||
|
||||
private Object lock = new Object();
|
||||
private final Object lock = new Object();
|
||||
|
||||
private final String AGENT_START_SHELL = "export CLASSPATH=/data/local/tmp/agent.apk;app_process /system/bin net.northking.product.cctpplus.Agent";
|
||||
|
||||
|
@ -81,7 +81,6 @@ public class AndroidDeviceInitThread extends Thread {
|
|||
if (agentStatus) {
|
||||
try {
|
||||
deviceInfo = getDeviceInfo();
|
||||
if (null != deviceInfo) {
|
||||
logger.info("设备【{}】agent启动成功,注册设备到服务端,并开始监听设备的屏幕和wifi。。。。。。。。。。。。", adbDevice.getSerial());
|
||||
//注册设备
|
||||
AndroidDeviceManager.getInstance().registerDeviceToDeviceManager(deviceInfo);
|
||||
|
@ -91,7 +90,6 @@ public class AndroidDeviceInitThread extends Thread {
|
|||
AndroidDeviceManager.getInstance().publishDeviceAgentAlready(adbDevice.getSerial());
|
||||
//开启监听设备的变化
|
||||
startWatchDeviceChange();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
logger.warn("读取手机信息失败,请观察手机是否接上上位机", e);
|
||||
}
|
||||
|
@ -514,9 +512,11 @@ public class AndroidDeviceInitThread extends Thread {
|
|||
String line;
|
||||
int n = 0;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
writer.write(line);
|
||||
writer.newLine();
|
||||
writer.flush();
|
||||
if (writer != null) {
|
||||
writer.write(line);
|
||||
writer.newLine();
|
||||
writer.flush();
|
||||
}
|
||||
if ("SERVICE_APK_INSTALLED".equals(line)) {
|
||||
logger.info("设备【{}】cctp程序安装成功。。。。。。", adbDevice.getSerial());
|
||||
n++;
|
||||
|
@ -576,6 +576,26 @@ public class AndroidDeviceInitThread extends Thread {
|
|||
logger.warn("设备【{}】的agent被G掉了。。。。。。。。", adbDevice.getSerial(), e);
|
||||
agentStatus = false;
|
||||
} finally {
|
||||
//通常Agent退出都为意外情况
|
||||
if (writer!=null){
|
||||
adb.refreshState(adbDevice);
|
||||
try (AdbTransport logcatTransport = adb.shell(adbDevice, "logcat -d")) {
|
||||
if (logcatTransport!=null){
|
||||
writer.write("\nAgent退出,以下为转储logcat日志\n");
|
||||
BufferedReader logcatReader = new BufferedReader(new InputStreamReader(logcatTransport.getInputStream()));
|
||||
String logcatLine;
|
||||
while ((logcatLine = logcatReader.readLine()) != null) {
|
||||
writer.write(logcatLine);
|
||||
writer.newLine();
|
||||
}
|
||||
writer.write("以上为转储logcat日志\n");
|
||||
writer.flush();
|
||||
}
|
||||
|
||||
} catch (Exception ignored) {
|
||||
|
||||
}
|
||||
}
|
||||
if (null != reader) {
|
||||
try {
|
||||
reader.close();
|
||||
|
|
|
@ -142,6 +142,30 @@ public class Adb {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新设备状态<br>
|
||||
* 设备可能会处于枚举状态外完全不可用的状态,根据方法返回值判断
|
||||
*
|
||||
* @param adbDevice 需要刷新的设备
|
||||
* @return 此设备是否还可用
|
||||
*/
|
||||
public boolean refreshState(AdbDevice adbDevice) {
|
||||
try (AdbTransport transport = createTransport()){
|
||||
transport.send("host-serial:" + adbDevice.getSerial() + ":get-state");
|
||||
transport.verifyResponse();
|
||||
String state = transport.readString();
|
||||
adbDevice.updateStateByText(state);
|
||||
return true;
|
||||
} catch (IOException ioException) {
|
||||
log.error("尝试刷新[" + adbDevice.getProduct() + "(" + adbDevice.getSerial() + ")]时发生传输接口错误", ioException);
|
||||
return false;
|
||||
} catch (TransportException transportException) {
|
||||
log.error("尝试刷新[" + adbDevice.getProduct() + "(" + adbDevice.getSerial() + ")]时发生传输协议错误", transportException);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 在设备上运行shell或开启shell会话<br>
|
||||
|
|
Loading…
Reference in New Issue