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 +4 -4
- data/README.md +6 -0
- data/lib/droid/monitor.rb +21 -13
- data/lib/droid/monitor/cpu.rb +1 -1
- data/lib/droid/monitor/net.rb +9 -1
- data/lib/droid/monitor/version.rb +1 -1
- data/test/cpu_test.rb +1 -1
- data/test/net_test.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41e69af4a588755f113bab4a8ae6c47b7a1ac9af
|
4
|
+
data.tar.gz: 5bfcb635d2bea2cea39836680d9fc4c580ab7b9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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(
|
9
|
-
fail
|
10
|
-
fail
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
data/lib/droid/monitor/cpu.rb
CHANGED
data/lib/droid/monitor/net.rb
CHANGED
@@ -17,11 +17,19 @@ module Droid
|
|
17
17
|
@tcp_snd = []
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
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
|
data/test/cpu_test.rb
CHANGED
data/test/net_test.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2015-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faml
|