Bazı Android cihazlarda, ADB kabuğunda, yalnızca echo
, cd
, ls
'u çalıştırabilirim. Ben çalıştırdığınızda:Bir Android cihazında Linux komutlarını nasıl çalıştırabilirim?
tar -cvf //mnt/sdcard/BackUp1669/apk/test.tar /mnt/sdcard/test.apk
Veya komut cp
, bu döndürür:
sh: tar: not found
Neden bu komutları çalıştıramıyorum? Bazı cihazlar bu komutları destekler. Son hedefim bir dosyayı /data/data klasöründen SD karta kopyalamaktır. Ben suvar ve aşağıdaki kodu var: is.ready()
yılında
int timeout = 1000;
String command = "tar -cvf /" + Environment.getExternalStorageDirectory() + "/cp/"
+ packageName + ".tar" + " " + path;
DataOutputStream os = new DataOutputStream(process.getOutputStream());
BufferedReader is = new BufferedReader(new InputStreamReader(new DataInputStream(
process.getInputStream())), 64);
String inLine;
try {
StringBuilder sbCommand = new StringBuilder();
sbCommand.append(command).append(" ");
sbCommand.append("\n");
os.writeBytes(command.toString());
if (is != null) {
for (int i = 0; i < timeout; i++) {
if (is.ready())
break;
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (is.ready()) {
inLine = is.readLine();
} else {
}
}
} catch (IOException e) {
e.printStackTrace();
}
Her zaman durur ve ben process.waitfor()
olarak değiştirdim zaman o da durdu. Niye ya?
Android kabuklarının standart Linux işletim sisteminden çok daha kısıtlı olduğunu anlıyor musunuz? – JoxTraex