mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Make it possible to specify the saved path for trace --stop
@chinmaygarde
This commit is contained in:
parent
4eee2e4c1d
commit
5e2bc90daf
@ -20,6 +20,7 @@ class TraceCommand extends FlutterCommand {
|
|||||||
TraceCommand() {
|
TraceCommand() {
|
||||||
argParser.addFlag('start', negatable: false, help: 'Start tracing.');
|
argParser.addFlag('start', negatable: false, help: 'Start tracing.');
|
||||||
argParser.addFlag('stop', negatable: false, help: 'Stop tracing.');
|
argParser.addFlag('stop', negatable: false, help: 'Stop tracing.');
|
||||||
|
argParser.addOption('out', help: 'Specify the path of the saved trace file.');
|
||||||
argParser.addOption('duration',
|
argParser.addOption('duration',
|
||||||
defaultsTo: '10', abbr: 'd', help: 'Duration in seconds to trace.');
|
defaultsTo: '10', abbr: 'd', help: 'Duration in seconds to trace.');
|
||||||
}
|
}
|
||||||
@ -52,7 +53,7 @@ class TraceCommand extends FlutterCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _stopTracing(AndroidDevice android, AndroidApk androidApp) {
|
void _stopTracing(AndroidDevice android, AndroidApk androidApp) {
|
||||||
String tracePath = android.stopTracing(androidApp);
|
String tracePath = android.stopTracing(androidApp, outPath: argResults['out']);
|
||||||
if (tracePath == null) {
|
if (tracePath == null) {
|
||||||
logging.warning('No trace file saved.');
|
logging.warning('No trace file saved.');
|
||||||
} else {
|
} else {
|
||||||
|
@ -853,7 +853,7 @@ class AndroidDevice extends Device {
|
|||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
|
|
||||||
String stopTracing(AndroidApk apk) {
|
String stopTracing(AndroidApk apk, { String outPath: null }) {
|
||||||
clearLogs();
|
clearLogs();
|
||||||
runCheckedSync(adbCommandForDevice([
|
runCheckedSync(adbCommandForDevice([
|
||||||
'shell',
|
'shell',
|
||||||
@ -878,11 +878,12 @@ class AndroidDevice extends Device {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (tracePath != null) {
|
if (tracePath != null) {
|
||||||
|
String localPath = (outPath != null) ? outPath : path.basename(tracePath);
|
||||||
runCheckedSync(adbCommandForDevice(['root']));
|
runCheckedSync(adbCommandForDevice(['root']));
|
||||||
runSync(adbCommandForDevice(['shell', 'run-as', apk.id, 'chmod', '777', tracePath]));
|
runSync(adbCommandForDevice(['shell', 'run-as', apk.id, 'chmod', '777', tracePath]));
|
||||||
runCheckedSync(adbCommandForDevice(['pull', tracePath]));
|
runCheckedSync(adbCommandForDevice(['pull', tracePath, localPath]));
|
||||||
runSync(adbCommandForDevice(['shell', 'rm', tracePath]));
|
runSync(adbCommandForDevice(['shell', 'rm', tracePath]));
|
||||||
return path.basename(tracePath);
|
return localPath;
|
||||||
}
|
}
|
||||||
logging.warning('No trace file detected. '
|
logging.warning('No trace file detected. '
|
||||||
'Did you remember to start the trace before stopping it?');
|
'Did you remember to start the trace before stopping it?');
|
||||||
|
Loading…
Reference in New Issue
Block a user