studio programacion móviles k10 desarrollo curso aplicaciones android

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".