Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Side by Side Diff: tools-webrtc/android/profiling/utilities.sh

Issue 2705063002: Adding support for native profiling of AppRTCMobile (Closed)
Patch Set: nit Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools-webrtc/android/profiling/perf_setup.sh ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/bin/bash
2
3 # Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
4 #
5 # Use of this source code is governed by a BSD-style license
6 # that can be found in the LICENSE file in the root of the source
7 # tree. An additional intellectual property rights grant can be found
8 # in the file PATENTS. All contributing project authors may
9 # be found in the AUTHORS file in the root of the source tree.
10
11 # Utility functions to be used by perf_setup.sh.
12 # Contains helper methods and functions that wraps usage of adb.
13
14 function error() {
15 echo "[ERROR] "$@"" >&2
16 }
17
18 function warning() {
19 echo "[WARNING] "$@"" >&1
20 }
21
22 function ok() {
23 echo "[OK] "$@"" >&1
24 }
25
26 function abs_path {
27 (cd $1; pwd)
28 }
29
30 function is_set() {
31 local var="$1"
32 [[ -n "${var}" ]]
33 }
34
35 function is_file() {
36 local file="$1"
37 [[ -f "${file}" ]]
38 }
39
40 function is_not_file() {
41 local file="$1"
42 [[ ! -f "${file}" ]]
43 }
44
45 function is_dir() {
46 local dir="$1"
47 [[ -d "${dir}" ]]
48 }
49
50 function is_not_dir() {
51 local dir="$1"
52 [[ ! -d "${dir}" ]]
53 }
54
55 # Adds (prepends) the PATH environment variable while avoid duplicates.
56 function path_add() {
57 case ":${PATH:=$1}:" in
58 *:$1:*) ;;
59 *) PATH="$1:$PATH" ;;
60 esac
61 }
62
63 # Removes a path from the PATH environment variable using search-and-replace
64 # parameter expansion.
65 function path_remove {
66 local path="$1"
67 # Substitute first occurrence of ":path" in PATH with an empty string.
68 # Deletes instances in the middle or at the end.
69 PATH=${PATH/":$path"/}
70 # Substitute first occurrence of "path:" in PATH with an empty string.
71 # Delete instances at the beginning.
72 PATH=${PATH/"$path:"/}
73 }
74
75 # Returns the process ID (PID) of the process that corresponds to the
76 # application name given as input parameter.
77 function find_app_pid() {
78 local app_name="$1"
79 adb shell ps | grep "${app_name}" | awk '{print $2}'
80 }
81
82 function app_is_installed() {
83 local app_name="$1"
84 local installed_app_name=$(adb shell pm list packages \
85 | grep "${app_name}" | awk -F':' '{print $2}')
86 is_set "${installed_app_name}" \
87 && [[ "${installed_app_name}" = "${app_name}" ]]
88 }
89
90 function app_is_running() {
91 local app_name="$1"
92 local app_pid=$(find_app_pid "${app_name}")
93 is_set "${app_pid}"
94 }
95
96 function app_start() {
97 local app_name="$1"
98 adb shell am start \
99 -n "${app_name}/.ConnectActivity" \
100 -a android.intent.action.MAIN
101 }
102
103 function app_stop() {
104 local app_name="$1"
105 adb shell am force-stop "${app_name}"
106 }
107
108 function app_uninstall() {
109 local app_name="$1"
110 adb uninstall "${app_name}"
111 }
112
113 function dev_arch() {
114 adb shell uname -m
115 }
116
117 function dev_ls() {
118 local dir="$1"
119 adb shell ls "${dir}"
120 }
121
122 # Returns true if exactly on device is connected.
123 function one_device_connected() {
124 [[ $(adb devices | wc -l) = 3 ]]
125 }
126
127 # Returns true if device is rooted.
128 function image_is_root() {
129 [[ $(adb shell getprop ro.build.type) = "userdebug" ]]
130 }
131
132 # Returns true if device is not rooted.
133 function image_is_not_root() {
134 [[ $(adb shell getprop ro.build.type) = "user" ]]
135 }
136
137 # Returns true if adb is not already running as root.
138 # Should only be called on rooted devices.
139 function adb_has_no_root_permissions() {
140 [[ $(adb shell getprop service.adb.root) = 0 ]]
141 }
142
143 # Android devices may disable profiling by default. We must enable it.
144 function enable_profiling() {
145 adb shell setprop security.perf_harden 0
146 }
147
148 # To make the report of symbols on device successful, we need to execute
149 # `echo 0 >/proc/sys/kernel/kptr_restrict`.
150 # Only needed if we run report commands on the same machine as we run
151 # record commands.
152 function enable_report_symbols() {
153 adb shell "echo 0 > /proc/sys/kernel/kptr_restrict"
154 }
OLDNEW
« no previous file with comments | « tools-webrtc/android/profiling/perf_setup.sh ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698