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;
|
||||
QStringList beforeStartAdbCommands;
|
||||
QStringList afterFinishAdbCommands;
|
||||
QString deviceSerialNumber;
|
||||
QString extraAppParams;
|
||||
Utils::Environment extraEnvVars;
|
||||
int apiLevel = -1;
|
||||
|
||||
QString displayName() const { return packageName; }
|
||||
static void *staticTypeId;
|
||||
@@ -55,8 +53,7 @@ inline bool operator==(const AndroidRunnable &r1, const AndroidRunnable &r2)
|
||||
&& r1.amStartExtraArgs == r2.amStartExtraArgs
|
||||
&& r1.environment == r2.environment
|
||||
&& r1.beforeStartAdbCommands == r2.beforeStartAdbCommands
|
||||
&& r1.afterFinishAdbCommands == r2.afterFinishAdbCommands
|
||||
&& r1.deviceSerialNumber == r2.deviceSerialNumber;
|
||||
&& r1.afterFinishAdbCommands == r2.afterFinishAdbCommands;
|
||||
}
|
||||
|
||||
inline bool operator!=(const AndroidRunnable &r1, const AndroidRunnable &r2)
|
||||
|
||||
@@ -134,8 +134,6 @@ AndroidRunner::AndroidRunner(RunControl *runControl,
|
||||
|
||||
m_androidRunnable.extraAppParams = extraAppParams;
|
||||
m_androidRunnable.extraEnvVars = extraEnvVars;
|
||||
m_androidRunnable.deviceSerialNumber = AndroidManager::deviceSerialNumber(m_target);
|
||||
m_androidRunnable.apiLevel = AndroidManager::deviceApiLevel(m_target);
|
||||
|
||||
RunConfiguration *rc = runControl->runConfiguration();
|
||||
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));
|
||||
}
|
||||
|
||||
if (m_androidRunnable.apiLevel > 23)
|
||||
const int apiLevel = AndroidManager::deviceApiLevel(m_target);
|
||||
if (apiLevel > 23)
|
||||
m_worker.reset(new AndroidRunnerWorker(runControl, m_androidRunnable));
|
||||
else
|
||||
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::asyncStop, m_worker.data(), &AndroidRunnerWorkerBase::asyncStop);
|
||||
connect(this, &AndroidRunner::androidRunnableChanged,
|
||||
m_worker.data(), &AndroidRunnerWorkerBase::setAndroidRunnable);
|
||||
|
||||
connect(this, &AndroidRunner::androidDeviceInfoChanged,
|
||||
m_worker.data(), &AndroidRunnerWorkerBase::setAndroidDeviceInfo);
|
||||
connect(m_worker.data(), &AndroidRunnerWorkerBase::remoteProcessStarted,
|
||||
this, &AndroidRunner::handleRemoteProcessStarted);
|
||||
connect(m_worker.data(), &AndroidRunnerWorkerBase::remoteProcessFinished,
|
||||
@@ -251,14 +249,6 @@ void AndroidRunner::handleRemoteProcessFinished(const QString &errString)
|
||||
reportStopped();
|
||||
}
|
||||
|
||||
void AndroidRunner::setRunnable(const AndroidRunnable &runnable)
|
||||
{
|
||||
if (runnable != m_androidRunnable) {
|
||||
m_androidRunnable = runnable;
|
||||
emit androidRunnableChanged(m_androidRunnable);
|
||||
}
|
||||
}
|
||||
|
||||
void AndroidRunner::launchAVD()
|
||||
{
|
||||
if (!m_target || !m_target->project())
|
||||
@@ -271,9 +261,7 @@ void AndroidRunner::launchAVD()
|
||||
AndroidDeviceInfo info = AndroidConfigurations::showDeviceDialog(
|
||||
m_target->project(), deviceAPILevel, targetArch);
|
||||
AndroidManager::setDeviceSerialNumber(m_target, info.serialNumber);
|
||||
m_androidRunnable.deviceSerialNumber = info.serialNumber;
|
||||
m_androidRunnable.apiLevel = info.sdk;
|
||||
emit androidRunnableChanged(m_androidRunnable);
|
||||
emit androidDeviceInfoChanged(info);
|
||||
if (info.isValid()) {
|
||||
AndroidAvdManager avdManager;
|
||||
if (avdManager.findAvd(info.avdname).isEmpty()) {
|
||||
|
||||
@@ -56,9 +56,6 @@ public:
|
||||
const Utils::Environment &extraEnvVars = Utils::Environment());
|
||||
~AndroidRunner() override;
|
||||
|
||||
void setRunnable(const AndroidRunnable &runnable);
|
||||
const AndroidRunnable &runnable() const { return m_androidRunnable; }
|
||||
|
||||
Utils::Port gdbServerPort() const { return m_gdbServerPort; }
|
||||
QUrl qmlServer() const { return m_qmlServer; }
|
||||
Utils::ProcessHandle pid() const { return m_pid; }
|
||||
@@ -70,7 +67,7 @@ signals:
|
||||
void asyncStart();
|
||||
void asyncStop();
|
||||
void qmlServerReady(const QUrl &serverUrl);
|
||||
void androidRunnableChanged(const AndroidRunnable &runnable);
|
||||
void androidDeviceInfoChanged(const AndroidDeviceInfo &deviceInfo);
|
||||
void avdDetected();
|
||||
|
||||
private:
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "androidconfigurations.h"
|
||||
#include "androidmanager.h"
|
||||
#include "androidrunnerworker.h"
|
||||
|
||||
#include <QThread>
|
||||
@@ -185,6 +186,10 @@ AndroidRunnerWorkerBase::AndroidRunnerWorkerBase(RunControl *runControl, const A
|
||||
m_adb = AndroidConfigurations::currentConfig().adbToolPath().toString();
|
||||
m_localJdbServerPort = Utils::Port(5038);
|
||||
QTC_CHECK(m_localJdbServerPort.isValid());
|
||||
|
||||
auto target = runConfig->target();
|
||||
m_deviceSerialNumber = AndroidManager::deviceSerialNumber(target);
|
||||
m_apiLevel = AndroidManager::deviceApiLevel(target);
|
||||
}
|
||||
|
||||
AndroidRunnerWorkerBase::~AndroidRunnerWorkerBase()
|
||||
@@ -234,10 +239,9 @@ void AndroidRunnerWorkerBase::adbKill(qint64 pid)
|
||||
runAdb({"shell", "run-as", m_androidRunnable.packageName, "kill", "-9", QString::number(pid)});
|
||||
}
|
||||
|
||||
|
||||
QStringList AndroidRunnerWorkerBase::selector() const
|
||||
{
|
||||
return AndroidDeviceInfo::adbSelector(m_androidRunnable.deviceSerialNumber);
|
||||
return AndroidDeviceInfo::adbSelector(m_deviceSerialNumber);
|
||||
}
|
||||
|
||||
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()
|
||||
|
||||
@@ -38,6 +38,9 @@ class RunControl;
|
||||
}
|
||||
|
||||
namespace Android {
|
||||
|
||||
class AndroidDeviceInfo;
|
||||
|
||||
namespace Internal {
|
||||
|
||||
const int MIN_SOCKET_HANDSHAKE_PORT = 20001;
|
||||
@@ -56,7 +59,7 @@ public:
|
||||
void logcatReadStandardError();
|
||||
void logcatReadStandardOutput();
|
||||
void logcatProcess(const QByteArray &text, QByteArray &buffer, bool onlyError);
|
||||
void setAndroidRunnable(const AndroidRunnable &runnable);
|
||||
void setAndroidDeviceInfo(const AndroidDeviceInfo &info);
|
||||
|
||||
virtual void asyncStart();
|
||||
virtual void asyncStop();
|
||||
@@ -99,6 +102,8 @@ protected:
|
||||
Utils::Port m_localJdbServerPort;
|
||||
std::unique_ptr<QProcess, Deleter> m_gdbServerProcess;
|
||||
std::unique_ptr<QProcess, Deleter> m_jdbProcess;
|
||||
QString m_deviceSerialNumber;
|
||||
int m_apiLevel = -1;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user