droid-monitor 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 57e8e14b629c3491612d6694bd1303b147258e49
4
- data.tar.gz: 57491e27df2bfb6883c7834fadf76de937fc52cb
3
+ metadata.gz: 41e69af4a588755f113bab4a8ae6c47b7a1ac9af
4
+ data.tar.gz: 5bfcb635d2bea2cea39836680d9fc4c580ab7b9d
5
5
  SHA512:
6
- metadata.gz: 9835127db21a61910610a3f98c5b2fd85c0458e823fcb860887c345d7b03e2b8429ac6e76fe5c3b5b18a4392d975be5e109741b4fa50014c6582b283650cf09c
7
- data.tar.gz: a9cd88bb4b1b1df4c7c0b56d58c5d45cf6dbb43852213efe453f6d4b6c285a7e73828bbfaf505f949ff386b7823bbd7299f1fd2fa4cda4520f26100a755b8d29
6
+ metadata.gz: b219d4e597b2745bd6acf0906d1f9c5b04fb6145c9d0f04df6474d36ccd29a65d7c50c9358aacdafb49b4daec1f6e737bd7030c9a6200433f60b47b7e08f79cd
7
+ data.tar.gz: f77de209557b9251b7f5b79904f21904f6e565f63a285da43ebaf1eac8815f8d923a1ca5d9fac77c0fb81c85ef49867f27765e50137eea796422c450070097d5
data/README.md CHANGED
@@ -28,6 +28,8 @@ The `sample` use clockwork to run ruby script in particular terms.
28
28
  ### CPU
29
29
 
30
30
  ```ruby
31
+ require "droid/monitor/cpu"
32
+
31
33
  # initialize
32
34
  @cpu = Droid::Monitor::Cpu.new( { package: "com.android.chrome" } )
33
35
 
@@ -52,6 +54,8 @@ graph_opts = { title: "Example", header1: "this graph is just sample"}
52
54
  ### Memory
53
55
 
54
56
  ```ruby
57
+ require "droid/monitor/memory"
58
+
55
59
  # initialize
56
60
  # You can specify target devices with providing device serial which is provided via adb devices.
57
61
  @memory = Droid::Monitor::Cpu.new( { package: "com.android.chrome", device_serial: "device_serials"} )
@@ -76,6 +80,8 @@ graph_opts = { title: "Example", header1: "this graph is just sample"}
76
80
  ### Net
77
81
 
78
82
  ```ruby
83
+ require "droid/monitor/net"
84
+
79
85
  # initialize
80
86
  @net = Droid::Monitor::Net.new( { package: "com.android.chrome" } )
81
87
 
data/lib/droid/monitor.rb CHANGED
@@ -1,13 +1,15 @@
1
1
  require_relative "monitor/version"
2
2
 
3
+ require "Open3"
4
+
3
5
  module Droid
4
6
  module Monitor
5
7
  class Adb
6
8
  attr_accessor :package, :device_serial, :api_level
7
9
 
8
- def initialize( opts = {})
9
- fail 'opts must be a hash' unless opts.is_a? Hash
10
- fail 'Package name is required.' unless opts[:package]
10
+ def initialize(opts = {})
11
+ fail "opts must be a hash" unless opts.is_a? Hash
12
+ fail "Package name is required." unless opts[:package]
11
13
  @package = opts[:package]
12
14
  @device_serial = opts[:device_serial] || ""
13
15
  @api_level = device_sdk_version
@@ -16,30 +18,25 @@ module Droid
16
18
  # @return [Integer] message from adb command
17
19
  # e.g: 17
18
20
  def device_sdk_version
19
- `#{adb_shell} getprop ro.build.version.sdk`.chomp.to_i
21
+ run_adb("#{adb_shell} getprop ro.build.version.sdk").to_i
20
22
  end
21
23
 
22
24
  # @return [String] message from adb command
23
25
  def dump_cpuinfo
24
- `#{adb_shell} dumpsys cpuinfo`.chomp
26
+ run_adb("#{adb_shell} dumpsys cpuinfo")
25
27
  end
26
28
 
27
29
  # @return [String] message from adb command
28
30
  def dump_meminfo
29
- `#{adb_shell} dumpsys meminfo #{@package}`.chomp
30
- end
31
-
32
- # @return [String] line of packages regarding pid and so on
33
- def get_pid
34
- `#{adb_shell} dumpsys package #{@package} | grep userId=`.chomp.scan(/userId=[0-9]+/).uniq.first.delete("userId=")
31
+ run_adb("#{adb_shell} dumpsys meminfo #{@package}")
35
32
  end
36
33
 
37
34
  def dump_tcp_rcv
38
- `#{adb_shell} cat proc/uid_stat/#{get_pid}/tcp_rcv`
35
+ run_adb("#{adb_shell} cat proc/uid_stat/#{get_pid}/tcp_rcv").to_i
39
36
  end
40
37
 
41
38
  def dump_tcp_snd
42
- `#{adb_shell} cat proc/uid_stat/#{get_pid}/tcp_snd`
39
+ run_adb("#{adb_shell} cat proc/uid_stat/#{get_pid}/tcp_snd").to_i
43
40
  end
44
41
 
45
42
  private
@@ -57,6 +54,17 @@ module Droid
57
54
  def adb_shell
58
55
  "#{adb} #{device_serial_option} shell"
59
56
  end
57
+
58
+ # @return [String] line of packages regarding pid and so on
59
+ def get_pid
60
+ run_adb("#{adb_shell} dumpsys package #{@package}").scan(/userId=[0-9]+/).uniq.first.delete("userId=")
61
+ end
62
+
63
+ def run_adb(cmd)
64
+ out_s, out_e, status = Open3.capture3(cmd)
65
+ puts "error: device not found which serial is #{@device_serial}" if out_e.include?("error: device not found")
66
+ out_s.chomp unless out_s.nil? || out_s.empty?
67
+ end
60
68
  end # class Adb
61
69
  end # module Monitor
62
70
  end # module Droid
@@ -43,7 +43,7 @@ module Droid
43
43
  end
44
44
 
45
45
  def transfer_total_cpu_to_hash(dump_cpu_array)
46
- if dump_cpu_array.length == 0
46
+ if dump_cpu_array.length <= 1
47
47
  {
48
48
  total_cpu: '0%',
49
49
  process: 'no package process',
@@ -17,11 +17,19 @@ module Droid
17
17
  @tcp_snd = []
18
18
  end
19
19
 
20
- def clear_tcps
20
+ def clear_tcps_rec
21
21
  @tcp_rec = []
22
+ end
23
+
24
+ def clear_tcps_snd
22
25
  @tcp_snd = []
23
26
  end
24
27
 
28
+ def clear_tcps
29
+ clear_tcps_rec
30
+ clear_tcps_snd
31
+ end
32
+
25
33
  def dump_tcp_rcv_usage(dump_data)
26
34
  [dump_data.to_i]
27
35
  end
@@ -1,5 +1,5 @@
1
1
  module Droid
2
2
  module Monitor
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
data/test/cpu_test.rb CHANGED
@@ -106,4 +106,4 @@ class CpuTest < Test::Unit::TestCase
106
106
  assert_equal(@cpu.export_as_google_api_format(@cpu.cpu_usage), expected_json)
107
107
  end
108
108
 
109
- end
109
+ end
data/test/net_test.rb CHANGED
@@ -10,7 +10,7 @@ TCP_RCV = "174934"
10
10
 
11
11
  TCP_SND = "374934"
12
12
 
13
- class MemoryTest < Test::Unit::TestCase
13
+ class NetTest < Test::Unit::TestCase
14
14
 
15
15
  def setup
16
16
  @net = Droid::Monitor::Net.new( { package: "com.android.chrome" } )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droid-monitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-01 00:00:00.000000000 Z
11
+ date: 2015-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faml