android-common
android-common copied to clipboard
执行commands有问题
for (String command : commands) { if (command == null) { continue; }
// donnot use os.writeBytes(commmand), avoid chinese charset error
os.write(command.getBytes());
os.writeBytes(COMMAND_LINE_END);
os.flush();
}
当传入的commands数组过大,os write将近64M的字节时会出现错误
64K的数据
是指 command.getBytes() 很大? 具体什么错误?OOM?
os.write的数据不能超过64K,也就是如果commands数组过大就会出现错误
没拿这么大的数据测试过,什么场景要这么多命令,分开执行不行吗
可以也可以,只是这个存在这个问题
ok,没时间细看这个问题,你有时间的话,也可以提交 PR 修复这个问题
主要是process.getOutputStream()这个流有限制大小,改不了吧
发现常常死等在waitfor
我看别人都是写成线程的异步
new Thread() {
public void run() {
BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));
try {
String line2 = null ;
while ((line2 = br2.readLine()) != null ) {
if (line2 != null){}
}
} catch (IOException e) {
e.printStackTrace();
}
finally{
try {
is2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}.start();
是不是那样处理就会更好点?