móviles - manual de programacion android pdf
Códigos de error de ADB (2)
Esta es una solución para obtener el código de salida: adb shell ''{su comando aquí}> / dev / null 2> & 1; echo $? ''
Esta es una envoltura alrededor de adb en Ruby:
def adb(opt)
input = "#{adb_command} #{opt[:command]} #{opt[:params]}"
puts "Executing #{input}.../n"
output = nil
exit_code = 0
def wait_for(secs)
if secs
begin
Timeout::timeout(secs) { yield }
rescue
print ''execution expired''
end
else
yield
end
end
wait_for(opt[:timeout]) do
case opt[:command]
when :install, :push, :uninstall
output, exit_code = `#{input}`, $?.to_i
when :shell
input = "#{adb_command} shell /"#{opt[:params]}; echo //$?/""
output = `#{input}`.split("/n")
exit_code = output.pop.to_i
output = output.join("/n")
else
raise ''Error: param command to adb not defined!''
end
end
return if opt[:ignore_fail] and output =~ /#{opt[:ignore_fail]}/
raise output unless exit_code == 0
end
Tenemos un dispositivo Android y, como parte de las pruebas, debo ejecutar una aplicación de prueba de consola en el dispositivo de destino. Si la aplicación de prueba detecta un error, devuelve -1.
Puedo usar adb shell para ejecutar las aplicaciones de prueba de forma remota en el destino, pero no puedo encontrar una manera de recuperar el código de retorno. Necesito esto para poder construirlo en un conjunto de pruebas automatizado.
Podría intentar grep la salida de la consola para un texto de error, pero eso es un poco sucio. ¿Alguien sabe de una solución más elegante?
Podría usar fb-adb Facebook, un "Un shell mejor para dispositivos Android" que "propaga el estado de salida del programa en lugar de salir siempre con el estado 0".