forked from qt-creator/qt-creator
Android: Remove m_deviceSerialNumber and m_apiLevel from Runnable
It's nothing that can be chosen freely, rather a feature of the current setup/device. Change-Id: I39460e22dab56adcce9da44f61a895923fb8c2a0 Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
@@ -39,10 +39,8 @@ struct ANDROID_EXPORT AndroidRunnable
|
|||||||
Utils::Environment environment;
|
Utils::Environment environment;
|
||||||
QStringList beforeStartAdbCommands;
|
QStringList beforeStartAdbCommands;
|
||||||
QStringList afterFinishAdbCommands;
|
QStringList afterFinishAdbCommands;
|
||||||
QString deviceSerialNumber;
|
|
||||||
QString extraAppParams;
|
QString extraAppParams;
|
||||||
Utils::Environment extraEnvVars;
|
Utils::Environment extraEnvVars;
|
||||||
int apiLevel = -1;
|
|
||||||
|
|
||||||
QString displayName() const { return packageName; }
|
QString displayName() const { return packageName; }
|
||||||
static void *staticTypeId;
|
static void *staticTypeId;
|
||||||
@@ -55,8 +53,7 @@ inline bool operator==(const AndroidRunnable &r1, const AndroidRunnable &r2)
|
|||||||
&& r1.amStartExtraArgs == r2.amStartExtraArgs
|
&& r1.amStartExtraArgs == r2.amStartExtraArgs
|
||||||
&& r1.environment == r2.environment
|
&& r1.environment == r2.environment
|
||||||
&& r1.beforeStartAdbCommands == r2.beforeStartAdbCommands
|
&& r1.beforeStartAdbCommands == r2.beforeStartAdbCommands
|
||||||
&& r1.afterFinishAdbCommands == r2.afterFinishAdbCommands
|
&& r1.afterFinishAdbCommands == r2.afterFinishAdbCommands;
|
||||||
&& r1.deviceSerialNumber == r2.deviceSerialNumber;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool operator!=(const AndroidRunnable &r1, const AndroidRunnable &r2)
|
inline bool operator!=(const AndroidRunnable &r1, const AndroidRunnable &r2)
|
||||||
|
|||||||
@@ -134,8 +134,6 @@ AndroidRunner::AndroidRunner(RunControl *runControl,
|
|||||||
|
|
||||||
m_androidRunnable.extraAppParams = extraAppParams;
|
m_androidRunnable.extraAppParams = extraAppParams;
|
||||||
m_androidRunnable.extraEnvVars = extraEnvVars;
|
m_androidRunnable.extraEnvVars = extraEnvVars;
|
||||||
m_androidRunnable.deviceSerialNumber = AndroidManager::deviceSerialNumber(m_target);
|
|
||||||
m_androidRunnable.apiLevel = AndroidManager::deviceApiLevel(m_target);
|
|
||||||
|
|
||||||
RunConfiguration *rc = runControl->runConfiguration();
|
RunConfiguration *rc = runControl->runConfiguration();
|
||||||
if (auto aspect = rc->extraAspect(Constants::ANDROID_AMSTARTARGS_ASPECT))
|
if (auto aspect = rc->extraAspect(Constants::ANDROID_AMSTARTARGS_ASPECT))
|
||||||
@@ -151,7 +149,8 @@ AndroidRunner::AndroidRunner(RunControl *runControl,
|
|||||||
m_androidRunnable.afterFinishAdbCommands.append(QString("shell %1").arg(shellCmd));
|
m_androidRunnable.afterFinishAdbCommands.append(QString("shell %1").arg(shellCmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_androidRunnable.apiLevel > 23)
|
const int apiLevel = AndroidManager::deviceApiLevel(m_target);
|
||||||
|
if (apiLevel > 23)
|
||||||
m_worker.reset(new AndroidRunnerWorker(runControl, m_androidRunnable));
|
m_worker.reset(new AndroidRunnerWorker(runControl, m_androidRunnable));
|
||||||
else
|
else
|
||||||
m_worker.reset(new AndroidRunnerWorkerPreNougat(runControl, m_androidRunnable));
|
m_worker.reset(new AndroidRunnerWorkerPreNougat(runControl, m_androidRunnable));
|
||||||
@@ -159,9 +158,8 @@ AndroidRunner::AndroidRunner(RunControl *runControl,
|
|||||||
|
|
||||||
connect(this, &AndroidRunner::asyncStart, m_worker.data(), &AndroidRunnerWorkerBase::asyncStart);
|
connect(this, &AndroidRunner::asyncStart, m_worker.data(), &AndroidRunnerWorkerBase::asyncStart);
|
||||||
connect(this, &AndroidRunner::asyncStop, m_worker.data(), &AndroidRunnerWorkerBase::asyncStop);
|
connect(this, &AndroidRunner::asyncStop, m_worker.data(), &AndroidRunnerWorkerBase::asyncStop);
|
||||||
connect(this, &AndroidRunner::androidRunnableChanged,
|
connect(this, &AndroidRunner::androidDeviceInfoChanged,
|
||||||
m_worker.data(), &AndroidRunnerWorkerBase::setAndroidRunnable);
|
m_worker.data(), &AndroidRunnerWorkerBase::setAndroidDeviceInfo);
|
||||||
|
|
||||||
connect(m_worker.data(), &AndroidRunnerWorkerBase::remoteProcessStarted,
|
connect(m_worker.data(), &AndroidRunnerWorkerBase::remoteProcessStarted,
|
||||||
this, &AndroidRunner::handleRemoteProcessStarted);
|
this, &AndroidRunner::handleRemoteProcessStarted);
|
||||||
connect(m_worker.data(), &AndroidRunnerWorkerBase::remoteProcessFinished,
|
connect(m_worker.data(), &AndroidRunnerWorkerBase::remoteProcessFinished,
|
||||||
@@ -251,14 +249,6 @@ void AndroidRunner::handleRemoteProcessFinished(const QString &errString)
|
|||||||
reportStopped();
|
reportStopped();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidRunner::setRunnable(const AndroidRunnable &runnable)
|
|
||||||
{
|
|
||||||
if (runnable != m_androidRunnable) {
|
|
||||||
m_androidRunnable = runnable;
|
|
||||||
emit androidRunnableChanged(m_androidRunnable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AndroidRunner::launchAVD()
|
void AndroidRunner::launchAVD()
|
||||||
{
|
{
|
||||||
if (!m_target || !m_target->project())
|
if (!m_target || !m_target->project())
|
||||||
@@ -271,9 +261,7 @@ void AndroidRunner::launchAVD()
|
|||||||
AndroidDeviceInfo info = AndroidConfigurations::showDeviceDialog(
|
AndroidDeviceInfo info = AndroidConfigurations::showDeviceDialog(
|
||||||
m_target->project(), deviceAPILevel, targetArch);
|
m_target->project(), deviceAPILevel, targetArch);
|
||||||
AndroidManager::setDeviceSerialNumber(m_target, info.serialNumber);
|
AndroidManager::setDeviceSerialNumber(m_target, info.serialNumber);
|
||||||
m_androidRunnable.deviceSerialNumber = info.serialNumber;
|
emit androidDeviceInfoChanged(info);
|
||||||
m_androidRunnable.apiLevel = info.sdk;
|
|
||||||
emit androidRunnableChanged(m_androidRunnable);
|
|
||||||
if (info.isValid()) {
|
if (info.isValid()) {
|
||||||
AndroidAvdManager avdManager;
|
AndroidAvdManager avdManager;
|
||||||
if (avdManager.findAvd(info.avdname).isEmpty()) {
|
if (avdManager.findAvd(info.avdname).isEmpty()) {
|
||||||
|
|||||||
@@ -56,9 +56,6 @@ public:
|
|||||||
const Utils::Environment &extraEnvVars = Utils::Environment());
|
const Utils::Environment &extraEnvVars = Utils::Environment());
|
||||||
~AndroidRunner() override;
|
~AndroidRunner() override;
|
||||||
|
|
||||||
void setRunnable(const AndroidRunnable &runnable);
|
|
||||||
const AndroidRunnable &runnable() const { return m_androidRunnable; }
|
|
||||||
|
|
||||||
Utils::Port gdbServerPort() const { return m_gdbServerPort; }
|
Utils::Port gdbServerPort() const { return m_gdbServerPort; }
|
||||||
QUrl qmlServer() const { return m_qmlServer; }
|
QUrl qmlServer() const { return m_qmlServer; }
|
||||||
Utils::ProcessHandle pid() const { return m_pid; }
|
Utils::ProcessHandle pid() const { return m_pid; }
|
||||||
@@ -70,7 +67,7 @@ signals:
|
|||||||
void asyncStart();
|
void asyncStart();
|
||||||
void asyncStop();
|
void asyncStop();
|
||||||
void qmlServerReady(const QUrl &serverUrl);
|
void qmlServerReady(const QUrl &serverUrl);
|
||||||
void androidRunnableChanged(const AndroidRunnable &runnable);
|
void androidDeviceInfoChanged(const AndroidDeviceInfo &deviceInfo);
|
||||||
void avdDetected();
|
void avdDetected();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "androidconfigurations.h"
|
#include "androidconfigurations.h"
|
||||||
|
#include "androidmanager.h"
|
||||||
#include "androidrunnerworker.h"
|
#include "androidrunnerworker.h"
|
||||||
|
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
@@ -185,6 +186,10 @@ AndroidRunnerWorkerBase::AndroidRunnerWorkerBase(RunControl *runControl, const A
|
|||||||
m_adb = AndroidConfigurations::currentConfig().adbToolPath().toString();
|
m_adb = AndroidConfigurations::currentConfig().adbToolPath().toString();
|
||||||
m_localJdbServerPort = Utils::Port(5038);
|
m_localJdbServerPort = Utils::Port(5038);
|
||||||
QTC_CHECK(m_localJdbServerPort.isValid());
|
QTC_CHECK(m_localJdbServerPort.isValid());
|
||||||
|
|
||||||
|
auto target = runConfig->target();
|
||||||
|
m_deviceSerialNumber = AndroidManager::deviceSerialNumber(target);
|
||||||
|
m_apiLevel = AndroidManager::deviceApiLevel(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidRunnerWorkerBase::~AndroidRunnerWorkerBase()
|
AndroidRunnerWorkerBase::~AndroidRunnerWorkerBase()
|
||||||
@@ -234,10 +239,9 @@ void AndroidRunnerWorkerBase::adbKill(qint64 pid)
|
|||||||
runAdb({"shell", "run-as", m_androidRunnable.packageName, "kill", "-9", QString::number(pid)});
|
runAdb({"shell", "run-as", m_androidRunnable.packageName, "kill", "-9", QString::number(pid)});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QStringList AndroidRunnerWorkerBase::selector() const
|
QStringList AndroidRunnerWorkerBase::selector() const
|
||||||
{
|
{
|
||||||
return AndroidDeviceInfo::adbSelector(m_androidRunnable.deviceSerialNumber);
|
return AndroidDeviceInfo::adbSelector(m_deviceSerialNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidRunnerWorkerBase::forceStop()
|
void AndroidRunnerWorkerBase::forceStop()
|
||||||
@@ -328,9 +332,10 @@ void AndroidRunnerWorkerBase::logcatProcess(const QByteArray &text, QByteArray &
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidRunnerWorkerBase::setAndroidRunnable(const AndroidRunnable &runnable)
|
void AndroidRunnerWorkerBase::setAndroidDeviceInfo(const AndroidDeviceInfo &info)
|
||||||
{
|
{
|
||||||
m_androidRunnable = runnable;
|
m_deviceSerialNumber = info.serialNumber;
|
||||||
|
m_apiLevel = info.sdk;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidRunnerWorkerBase::asyncStart()
|
void AndroidRunnerWorkerBase::asyncStart()
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ class RunControl;
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace Android {
|
namespace Android {
|
||||||
|
|
||||||
|
class AndroidDeviceInfo;
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
const int MIN_SOCKET_HANDSHAKE_PORT = 20001;
|
const int MIN_SOCKET_HANDSHAKE_PORT = 20001;
|
||||||
@@ -56,7 +59,7 @@ public:
|
|||||||
void logcatReadStandardError();
|
void logcatReadStandardError();
|
||||||
void logcatReadStandardOutput();
|
void logcatReadStandardOutput();
|
||||||
void logcatProcess(const QByteArray &text, QByteArray &buffer, bool onlyError);
|
void logcatProcess(const QByteArray &text, QByteArray &buffer, bool onlyError);
|
||||||
void setAndroidRunnable(const AndroidRunnable &runnable);
|
void setAndroidDeviceInfo(const AndroidDeviceInfo &info);
|
||||||
|
|
||||||
virtual void asyncStart();
|
virtual void asyncStart();
|
||||||
virtual void asyncStop();
|
virtual void asyncStop();
|
||||||
@@ -99,6 +102,8 @@ protected:
|
|||||||
Utils::Port m_localJdbServerPort;
|
Utils::Port m_localJdbServerPort;
|
||||||
std::unique_ptr<QProcess, Deleter> m_gdbServerProcess;
|
std::unique_ptr<QProcess, Deleter> m_gdbServerProcess;
|
||||||
std::unique_ptr<QProcess, Deleter> m_jdbProcess;
|
std::unique_ptr<QProcess, Deleter> m_jdbProcess;
|
||||||
|
QString m_deviceSerialNumber;
|
||||||
|
int m_apiLevel = -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user