class Droid::Monitor::Adb
Attributes
api_level[RW]
device_serial[RW]
package[RW]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/droid/monitor.rb, line 14 def initialize(opts = {}) raise 'opts must be a hash' unless opts.is_a? Hash raise 'Package name is required.' unless opts[:package] @package = opts[:package] @device_serial = opts[:device_serial] || '' @api_level = device_sdk_version @debug = opts[:debug] end
Public Instance Methods
device_sdk_version()
click to toggle source
@return [Integer] message from adb command e.g: 17
# File lib/droid/monitor.rb, line 26 def device_sdk_version run_adb("#{adb_shell} getprop ro.build.version.sdk").to_i end
dump_cpuinfo()
click to toggle source
@return [String] message from adb command
# File lib/droid/monitor.rb, line 36 def dump_cpuinfo run_adb("#{adb_shell} dumpsys cpuinfo") end
dump_cpuinfo_with_top()
click to toggle source
@return [String] message from adb command “17742 1 15% S 55 2279532K 128100K fg u0_a124 your.cpackagern”
# File lib/droid/monitor.rb, line 42 def dump_cpuinfo_with_top run_adb("#{adb_shell} top -d 0.5 -n 1 | grep #{@package}") end
dump_gfxinfo()
click to toggle source
# File lib/droid/monitor.rb, line 67 def dump_gfxinfo run_adb("#{adb_shell} dumpsys gfxinfo #{@package}") end
dump_meminfo()
click to toggle source
@return [String] message from adb command
# File lib/droid/monitor.rb, line 47 def dump_meminfo run_adb("#{adb_shell} dumpsys meminfo #{@package}") end
dump_package_info()
click to toggle source
@return [String] message from adb command
# File lib/droid/monitor.rb, line 31 def dump_package_info run_adb("#{adb_shell} dumpsys package #{@package}") end
dump_tcp_rec()
click to toggle source
# File lib/droid/monitor.rb, line 51 def dump_tcp_rec pid = user_pid return 0 if pid == -1 puts "pid is #{pid}" if @debug run_adb("#{adb_shell} cat proc/uid_stat/#{pid}/tcp_rcv").to_i end
dump_tcp_snd()
click to toggle source
# File lib/droid/monitor.rb, line 59 def dump_tcp_snd pid = user_pid return 0 if pid == -1 puts "pid is #{pid}" if @debug run_adb("#{adb_shell} cat proc/uid_stat/#{pid}/tcp_snd").to_i end
Private Instance Methods
adb()
click to toggle source
# File lib/droid/monitor.rb, line 73 def adb raise 'ANDROID_HOME is not set' unless ENV['ANDROID_HOME'] "#{ENV['ANDROID_HOME']}/platform-tools/adb" end
adb_shell()
click to toggle source
# File lib/droid/monitor.rb, line 85 def adb_shell "#{adb} #{device_serial_option} shell" end
device_serial_option()
click to toggle source
# File lib/droid/monitor.rb, line 79 def device_serial_option return '' unless @device_serial && @device_serial != '' "-s \"#{@device_serial}\"" end
run_adb(cmd)
click to toggle source
# File lib/droid/monitor.rb, line 100 def run_adb(cmd) out_s, out_e, _status = Open3.capture3(cmd) puts "error: device not found which serial is #{@device_serial}" if out_e.include?('error: device not found') out_s.chomp unless out_s.nil? || out_s.empty? end
user_pid()
click to toggle source
@return [String] line of packages regarding pid and so on
# File lib/droid/monitor.rb, line 90 def user_pid dump = run_adb("#{adb_shell} dumpsys package #{@package}") return -1 if dump.nil? userid = dump.scan(/userId=[0-9]+/) return -1 if userid.empty? userid.uniq.first.delete('userId=') end