forked from qt-creator/qt-creator
AndroidRunner: Remove _(...)
We don't need to do this for plain character literals as we allow casting those to QString now. Change-Id: I25569cfb8a2ff618176b7d5ab048f03ecaaee460 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -118,7 +118,6 @@ using namespace ProjectExplorer;
|
|||||||
namespace Android {
|
namespace Android {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
typedef QLatin1String _;
|
|
||||||
const int MIN_SOCKET_HANDSHAKE_PORT = 20001;
|
const int MIN_SOCKET_HANDSHAKE_PORT = 20001;
|
||||||
const int MAX_SOCKET_HANDSHAKE_PORT = 20999;
|
const int MAX_SOCKET_HANDSHAKE_PORT = 20999;
|
||||||
|
|
||||||
@@ -225,16 +224,16 @@ AndroidRunnerWorker::AndroidRunnerWorker(AndroidRunConfiguration *runConfig, Cor
|
|||||||
}
|
}
|
||||||
m_adb = AndroidConfigurations::currentConfig().adbToolPath().toString();
|
m_adb = AndroidConfigurations::currentConfig().adbToolPath().toString();
|
||||||
|
|
||||||
QString packageDir = _("/data/data/") + m_packageName;
|
QString packageDir = "/data/data/" + m_packageName;
|
||||||
m_pingFile = packageDir + _("/debug-ping");
|
m_pingFile = packageDir + "/debug-ping";
|
||||||
m_pongFile = _("/data/local/tmp/qt/debug-pong-") + m_packageName;
|
m_pongFile = "/data/local/tmp/qt/debug-pong-" + m_packageName;
|
||||||
m_gdbserverSocket = packageDir + _("/debug-socket");
|
m_gdbserverSocket = packageDir + "/debug-socket";
|
||||||
const QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(
|
const QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(
|
||||||
runConfig->target()->kit());
|
runConfig->target()->kit());
|
||||||
if (version && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0))
|
if (version && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0))
|
||||||
m_gdbserverPath = packageDir + _("/lib/libgdbserver.so");
|
m_gdbserverPath = packageDir + "/lib/libgdbserver.so";
|
||||||
else
|
else
|
||||||
m_gdbserverPath = packageDir + _("/lib/gdbserver");
|
m_gdbserverPath = packageDir + "/lib/gdbserver";
|
||||||
|
|
||||||
if (version && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0)) {
|
if (version && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0)) {
|
||||||
if (qEnvironmentVariableIsSet("QTC_ANDROID_USE_FILE_HANDSHAKE"))
|
if (qEnvironmentVariableIsSet("QTC_ANDROID_USE_FILE_HANDSHAKE"))
|
||||||
@@ -272,7 +271,7 @@ void AndroidRunnerWorker::init()
|
|||||||
Utils::SynchronousProcess psProc;
|
Utils::SynchronousProcess psProc;
|
||||||
psProc.setTimeoutS(5);
|
psProc.setTimeoutS(5);
|
||||||
Utils::SynchronousProcessResponse response = psProc.runBlocking(
|
Utils::SynchronousProcessResponse response = psProc.runBlocking(
|
||||||
m_adb, selector() << _("shell") << _("readlink") << _("$(which ps)"));
|
m_adb, selector() << "shell" << "readlink" << "$(which ps)");
|
||||||
const QString which = response.allOutput();
|
const QString which = response.allOutput();
|
||||||
m_isBusyBox = which.startsWith("busybox");
|
m_isBusyBox = which.startsWith("busybox");
|
||||||
|
|
||||||
@@ -371,11 +370,12 @@ void AndroidRunnerWorker::checkPID()
|
|||||||
|
|
||||||
void AndroidRunnerWorker::forceStop()
|
void AndroidRunnerWorker::forceStop()
|
||||||
{
|
{
|
||||||
runAdb(selector() << _("shell") << _("am") << _("force-stop") << m_packageName, nullptr, 30);
|
runAdb(selector() << "shell" << "am" << "force-stop" << m_packageName, nullptr, 30);
|
||||||
|
|
||||||
// try killing it via kill -9
|
// try killing it via kill -9
|
||||||
const QByteArray out = Utils::SynchronousProcess()
|
const QByteArray out = Utils::SynchronousProcess()
|
||||||
.runBlocking(m_adb, selector() << _("shell") << _(m_isBusyBox ? "ps -w" : "ps"))
|
.runBlocking(m_adb,
|
||||||
|
selector() << "shell" << QLatin1String(m_isBusyBox ? "ps -w" : "ps"))
|
||||||
.allRawOutput();
|
.allRawOutput();
|
||||||
|
|
||||||
int from = 0;
|
int from = 0;
|
||||||
@@ -396,46 +396,46 @@ void AndroidRunnerWorker::asyncStart(const QString &intentName,
|
|||||||
const QVector<QStringList> &adbCommands)
|
const QVector<QStringList> &adbCommands)
|
||||||
{
|
{
|
||||||
// Its assumed that the device or avd serial returned by selector() is online.
|
// Its assumed that the device or avd serial returned by selector() is online.
|
||||||
m_adbLogcatProcess->start(m_adb, selector() << _("logcat"));
|
m_adbLogcatProcess->start(m_adb, selector() << "logcat");
|
||||||
m_psProc->start(m_adb, selector() << _("shell"));
|
m_psProc->start(m_adb, selector() << "shell");
|
||||||
|
|
||||||
forceStop();
|
forceStop();
|
||||||
QString errorMessage;
|
QString errorMessage;
|
||||||
|
|
||||||
if (m_useCppDebugger)
|
if (m_useCppDebugger)
|
||||||
runAdb(selector() << _("shell") << _("rm") << m_pongFile); // Remove pong file.
|
runAdb(selector() << "shell" << "rm" << m_pongFile); // Remove pong file.
|
||||||
|
|
||||||
foreach (const QStringList &entry, adbCommands)
|
foreach (const QStringList &entry, adbCommands)
|
||||||
runAdb(selector() << entry);
|
runAdb(selector() << entry);
|
||||||
|
|
||||||
QStringList args = selector();
|
QStringList args = selector();
|
||||||
args << _("shell") << _("am") << _("start") << _("-n") << intentName;
|
args << "shell" << "am" << "start" << "-n" << intentName;
|
||||||
|
|
||||||
if (m_useCppDebugger) {
|
if (m_useCppDebugger) {
|
||||||
if (!runAdb(selector() << _("forward")
|
if (!runAdb(selector() << "forward"
|
||||||
<< QString::fromLatin1("tcp:%1").arg(m_localGdbServerPort.number())
|
<< QString::fromLatin1("tcp:%1").arg(m_localGdbServerPort.number())
|
||||||
<< _("localfilesystem:") + m_gdbserverSocket, &errorMessage)) {
|
<< "localfilesystem:" + m_gdbserverSocket, &errorMessage)) {
|
||||||
emit remoteProcessFinished(tr("Failed to forward C++ debugging ports. Reason: %1.").arg(errorMessage));
|
emit remoteProcessFinished(tr("Failed to forward C++ debugging ports. Reason: %1.").arg(errorMessage));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString pingPongSocket(m_packageName + _(".ping_pong_socket"));
|
const QString pingPongSocket(m_packageName + ".ping_pong_socket");
|
||||||
args << _("-e") << _("debug_ping") << _("true");
|
args << "-e" << "debug_ping" << "true";
|
||||||
if (m_handShakeMethod == SocketHandShake) {
|
if (m_handShakeMethod == SocketHandShake) {
|
||||||
args << _("-e") << _("ping_socket") << pingPongSocket;
|
args << "-e" << "ping_socket" << pingPongSocket;
|
||||||
} else if (m_handShakeMethod == PingPongFiles) {
|
} else if (m_handShakeMethod == PingPongFiles) {
|
||||||
args << _("-e") << _("ping_file") << m_pingFile;
|
args << "-e" << "ping_file" << m_pingFile;
|
||||||
args << _("-e") << _("pong_file") << m_pongFile;
|
args << "-e" << "pong_file" << m_pongFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString gdbserverCommand = QString::fromLatin1(adbShellAmNeedsQuotes() ? "\"%1 --multi +%2\"" : "%1 --multi +%2")
|
QString gdbserverCommand = QString::fromLatin1(adbShellAmNeedsQuotes() ? "\"%1 --multi +%2\"" : "%1 --multi +%2")
|
||||||
.arg(m_gdbserverPath).arg(m_gdbserverSocket);
|
.arg(m_gdbserverPath).arg(m_gdbserverSocket);
|
||||||
args << _("-e") << _("gdbserver_command") << gdbserverCommand;
|
args << "-e" << "gdbserver_command" << gdbserverCommand;
|
||||||
args << _("-e") << _("gdbserver_socket") << m_gdbserverSocket;
|
args << "-e" << "gdbserver_socket" << m_gdbserverSocket;
|
||||||
|
|
||||||
if (m_handShakeMethod == SocketHandShake) {
|
if (m_handShakeMethod == SocketHandShake) {
|
||||||
const QString port = QString::fromLatin1("tcp:%1").arg(m_socketHandShakePort);
|
const QString port = QString::fromLatin1("tcp:%1").arg(m_socketHandShakePort);
|
||||||
if (!runAdb(selector() << _("forward") << port << _("localabstract:") + pingPongSocket,
|
if (!runAdb(selector() << "forward" << port << ("localabstract:" + pingPongSocket),
|
||||||
&errorMessage)) {
|
&errorMessage)) {
|
||||||
emit remoteProcessFinished(tr("Failed to forward ping pong ports. Reason: %1.")
|
emit remoteProcessFinished(tr("Failed to forward ping pong ports. Reason: %1.")
|
||||||
.arg(errorMessage));
|
.arg(errorMessage));
|
||||||
@@ -447,14 +447,14 @@ void AndroidRunnerWorker::asyncStart(const QString &intentName,
|
|||||||
if (m_qmlDebugServices != QmlDebug::NoQmlDebugServices) {
|
if (m_qmlDebugServices != QmlDebug::NoQmlDebugServices) {
|
||||||
// currently forward to same port on device and host
|
// currently forward to same port on device and host
|
||||||
const QString port = QString::fromLatin1("tcp:%1").arg(m_qmlPort.number());
|
const QString port = QString::fromLatin1("tcp:%1").arg(m_qmlPort.number());
|
||||||
if (!runAdb(selector() << _("forward") << port << port, &errorMessage)) {
|
if (!runAdb(selector() << "forward" << port << port, &errorMessage)) {
|
||||||
emit remoteProcessFinished(tr("Failed to forward QML debugging ports. Reason: %1.")
|
emit remoteProcessFinished(tr("Failed to forward QML debugging ports. Reason: %1.")
|
||||||
.arg(errorMessage));
|
.arg(errorMessage));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
args << _("-e") << _("qml_debug") << _("true")
|
args << "-e" << "qml_debug" << "true"
|
||||||
<< _("-e") << _("qmljsdebugger")
|
<< "-e" << "qmljsdebugger"
|
||||||
<< QString::fromLatin1("port:%1,block,services:%2")
|
<< QString::fromLatin1("port:%1,block,services:%2")
|
||||||
.arg(m_qmlPort.number()).arg(QmlDebug::qmlDebugServices(m_qmlDebugServices));
|
.arg(m_qmlPort.number()).arg(QmlDebug::qmlDebugServices(m_qmlDebugServices));
|
||||||
}
|
}
|
||||||
@@ -509,11 +509,11 @@ void AndroidRunnerWorker::asyncStart(const QString &intentName,
|
|||||||
} else {
|
} else {
|
||||||
// Handling ping.
|
// Handling ping.
|
||||||
for (int i = 0; ; ++i) {
|
for (int i = 0; ; ++i) {
|
||||||
QTemporaryFile tmp(QDir::tempPath() + _("/pingpong"));
|
QTemporaryFile tmp(QDir::tempPath() + "/pingpong");
|
||||||
tmp.open();
|
tmp.open();
|
||||||
tmp.close();
|
tmp.close();
|
||||||
|
|
||||||
runAdb(selector() << _("pull") << m_pingFile << tmp.fileName());
|
runAdb(selector() << "pull" << m_pingFile << tmp.fileName());
|
||||||
|
|
||||||
QFile res(tmp.fileName());
|
QFile res(tmp.fileName());
|
||||||
const bool doBreak = res.size();
|
const bool doBreak = res.size();
|
||||||
@@ -548,8 +548,8 @@ bool AndroidRunnerWorker::adbShellAmNeedsQuotes()
|
|||||||
Utils::SynchronousProcess adb;
|
Utils::SynchronousProcess adb;
|
||||||
adb.setTimeoutS(10);
|
adb.setTimeoutS(10);
|
||||||
Utils::SynchronousProcessResponse response
|
Utils::SynchronousProcessResponse response
|
||||||
= adb.run(m_adb, selector() << _("shell") << _("am") << _("start")
|
= adb.run(m_adb, selector() << "shell" << "am" << "start"
|
||||||
<< _("-e") << _("dummy") <<_("dummy --dummy"));
|
<< "-e" << "dummy" << "dummy --dummy");
|
||||||
if (response.result == Utils::SynchronousProcessResponse::StartFailed
|
if (response.result == Utils::SynchronousProcessResponse::StartFailed
|
||||||
|| response.result != Utils::SynchronousProcessResponse::Finished)
|
|| response.result != Utils::SynchronousProcessResponse::Finished)
|
||||||
return true;
|
return true;
|
||||||
@@ -578,10 +578,10 @@ void AndroidRunnerWorker::handleRemoteDebuggerRunning()
|
|||||||
m_socket->waitForBytesWritten();
|
m_socket->waitForBytesWritten();
|
||||||
m_socket->close();
|
m_socket->close();
|
||||||
} else {
|
} else {
|
||||||
QTemporaryFile tmp(QDir::tempPath() + _("/pingpong"));
|
QTemporaryFile tmp(QDir::tempPath() + "/pingpong");
|
||||||
tmp.open();
|
tmp.open();
|
||||||
|
|
||||||
runAdb(selector() << _("push") << tmp.fileName() << m_pongFile);
|
runAdb(selector() << "push" << tmp.fileName() << m_pongFile);
|
||||||
}
|
}
|
||||||
QTC_CHECK(m_processPID != -1);
|
QTC_CHECK(m_processPID != -1);
|
||||||
}
|
}
|
||||||
@@ -646,9 +646,9 @@ void AndroidRunnerWorker::logcatProcess(const QByteArray &text, QByteArray &buff
|
|||||||
emit remoteOutput(output);
|
emit remoteOutput(output);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (onlyError || line.startsWith(_("F/"))
|
if (onlyError || line.startsWith("F/")
|
||||||
|| line.startsWith(_("E/"))
|
|| line.startsWith("E/")
|
||||||
|| line.startsWith(_("W/")))
|
|| line.startsWith("W/"))
|
||||||
emit remoteErrorOutput(line);
|
emit remoteErrorOutput(line);
|
||||||
else
|
else
|
||||||
emit remoteOutput(line);
|
emit remoteOutput(line);
|
||||||
@@ -670,9 +670,9 @@ void AndroidRunnerWorker::logcatReadStandardOutput()
|
|||||||
|
|
||||||
void AndroidRunnerWorker::adbKill(qint64 pid)
|
void AndroidRunnerWorker::adbKill(qint64 pid)
|
||||||
{
|
{
|
||||||
runAdb(selector() << _("shell") << _("kill") << QLatin1String("-9") << QString::number(pid));
|
runAdb(selector() << "shell" << "kill" << "-9" << QString::number(pid));
|
||||||
runAdb(selector() << _("shell") << _("run-as") << m_packageName
|
runAdb(selector() << "shell" << "run-as" << m_packageName
|
||||||
<< _("kill") << QLatin1String("-9") << QString::number(pid));
|
<< "kill" << "-9" << QString::number(pid));
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidRunner::AndroidRunner(QObject *parent, AndroidRunConfiguration *runConfig, Core::Id runMode)
|
AndroidRunner::AndroidRunner(QObject *parent, AndroidRunConfiguration *runConfig, Core::Id runMode)
|
||||||
|
|||||||
Reference in New Issue
Block a user