AndroidManager: Make it a namespace

Unexport it, as it seems that no method is used outside of the
Android plugin.

Change-Id: I5c76234a1f37ddfa3dcfa51ded5a441163ec9093
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Jarek Kobus
2023-08-08 22:23:43 +02:00
parent 020d4c72e4
commit c72734e678
2 changed files with 89 additions and 109 deletions

View File

@@ -37,7 +37,7 @@ using namespace Utils;
using namespace Android::Internal; using namespace Android::Internal;
namespace Android { namespace Android::AndroidManager {
const char AndroidManifestName[] = "AndroidManifest.xml"; const char AndroidManifestName[] = "AndroidManifest.xml";
const char AndroidDeviceSn[] = "AndroidDeviceSerialNumber"; const char AndroidDeviceSn[] = "AndroidDeviceSerialNumber";
@@ -67,7 +67,7 @@ static const ProjectNode *currentProjectNode(const Target *target)
return target->project()->findNodeForBuildKey(target->activeBuildKey()); return target->project()->findNodeForBuildKey(target->activeBuildKey());
} }
QString AndroidManager::packageName(const Target *target) QString packageName(const Target *target)
{ {
QDomDocument doc; QDomDocument doc;
if (!openManifest(target, doc)) if (!openManifest(target, doc))
@@ -76,7 +76,7 @@ QString AndroidManager::packageName(const Target *target)
return manifestElem.attribute(QLatin1String("package")); return manifestElem.attribute(QLatin1String("package"));
} }
QString AndroidManager::packageName(const FilePath &manifestFile) QString packageName(const FilePath &manifestFile)
{ {
QDomDocument doc; QDomDocument doc;
if (!openXmlFile(doc, manifestFile)) if (!openXmlFile(doc, manifestFile))
@@ -85,7 +85,7 @@ QString AndroidManager::packageName(const FilePath &manifestFile)
return manifestElem.attribute(QLatin1String("package")); return manifestElem.attribute(QLatin1String("package"));
} }
QString AndroidManager::activityName(const Target *target) QString activityName(const Target *target)
{ {
QDomDocument doc; QDomDocument doc;
if (!openManifest(target, doc)) if (!openManifest(target, doc))
@@ -100,7 +100,7 @@ QString AndroidManager::activityName(const Target *target)
of the kit is returned if the manifest file of the APK cannot be found of the kit is returned if the manifest file of the APK cannot be found
or parsed. or parsed.
*/ */
int AndroidManager::minimumSDK(const Target *target) int minimumSDK(const Target *target)
{ {
QDomDocument doc; QDomDocument doc;
if (!openXmlFile(doc, AndroidManager::manifestSourcePath(target))) if (!openXmlFile(doc, AndroidManager::manifestSourcePath(target)))
@@ -115,7 +115,7 @@ int AndroidManager::minimumSDK(const Target *target)
Returns the minimum Android API level required by the kit to compile. -1 is Returns the minimum Android API level required by the kit to compile. -1 is
returned if the kit does not support Android. returned if the kit does not support Android.
*/ */
int AndroidManager::minimumSDK(const Kit *kit) int minimumSDK(const Kit *kit)
{ {
int minSdkVersion = -1; int minSdkVersion = -1;
QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(kit); QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(kit);
@@ -132,7 +132,7 @@ int AndroidManager::minimumSDK(const Kit *kit)
return minSdkVersion; return minSdkVersion;
} }
QString AndroidManager::buildTargetSDK(const Target *target) QString buildTargetSDK(const Target *target)
{ {
if (auto bc = target->activeBuildConfiguration()) { if (auto bc = target->activeBuildConfiguration()) {
if (auto androidBuildApkStep = bc->buildSteps()->firstOfType<AndroidBuildApkStep>()) if (auto androidBuildApkStep = bc->buildSteps()->firstOfType<AndroidBuildApkStep>())
@@ -144,13 +144,13 @@ QString AndroidManager::buildTargetSDK(const Target *target)
return fallback; return fallback;
} }
QStringList AndroidManager::applicationAbis(const Target *target) QStringList applicationAbis(const Target *target)
{ {
auto qt = dynamic_cast<AndroidQtVersion *>(QtSupport::QtKitAspect::qtVersion(target->kit())); auto qt = dynamic_cast<AndroidQtVersion *>(QtSupport::QtKitAspect::qtVersion(target->kit()));
return qt ? qt->androidAbis() : QStringList(); return qt ? qt->androidAbis() : QStringList();
} }
QString AndroidManager::archTriplet(const QString &abi) QString archTriplet(const QString &abi)
{ {
if (abi == ProjectExplorer::Constants::ANDROID_ABI_X86) { if (abi == ProjectExplorer::Constants::ANDROID_ABI_X86) {
return {"i686-linux-android"}; return {"i686-linux-android"};
@@ -162,7 +162,7 @@ QString AndroidManager::archTriplet(const QString &abi)
return {"arm-linux-androideabi"}; return {"arm-linux-androideabi"};
} }
QJsonObject AndroidManager::deploymentSettings(const Target *target) QJsonObject deploymentSettings(const Target *target)
{ {
QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit()); QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit());
if (!qt) if (!qt)
@@ -196,7 +196,7 @@ QJsonObject AndroidManager::deploymentSettings(const Target *target)
return settings; return settings;
} }
bool AndroidManager::isQtCreatorGenerated(const FilePath &deploymentFile) bool isQtCreatorGenerated(const FilePath &deploymentFile)
{ {
QFile f{deploymentFile.toString()}; QFile f{deploymentFile.toString()};
if (!f.open(QIODevice::ReadOnly)) if (!f.open(QIODevice::ReadOnly))
@@ -204,17 +204,17 @@ bool AndroidManager::isQtCreatorGenerated(const FilePath &deploymentFile)
return QJsonDocument::fromJson(f.readAll()).object()["_description"].toString() == qtcSignature; return QJsonDocument::fromJson(f.readAll()).object()["_description"].toString() == qtcSignature;
} }
FilePath AndroidManager::androidBuildDirectory(const Target *target) FilePath androidBuildDirectory(const Target *target)
{ {
return buildDirectory(target) / Constants::ANDROID_BUILD_DIRECTORY; return buildDirectory(target) / Constants::ANDROID_BUILD_DIRECTORY;
} }
FilePath AndroidManager::androidAppProcessDir(const Target *target) FilePath androidAppProcessDir(const Target *target)
{ {
return buildDirectory(target) / Constants::ANDROID_APP_PROCESS_DIRECTORY; return buildDirectory(target) / Constants::ANDROID_APP_PROCESS_DIRECTORY;
} }
bool AndroidManager::isQt5CmakeProject(const ProjectExplorer::Target *target) bool isQt5CmakeProject(const ProjectExplorer::Target *target)
{ {
const QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit()); const QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit());
const bool isQt5 = qt && qt->qtVersion() < QVersionNumber(6, 0, 0); const bool isQt5 = qt && qt->qtVersion() < QVersionNumber(6, 0, 0);
@@ -223,7 +223,7 @@ bool AndroidManager::isQt5CmakeProject(const ProjectExplorer::Target *target)
return isQt5 && isCmakeProject; return isQt5 && isCmakeProject;
} }
FilePath AndroidManager::buildDirectory(const Target *target) FilePath buildDirectory(const Target *target)
{ {
if (const BuildSystem *bs = target->buildSystem()) { if (const BuildSystem *bs = target->buildSystem()) {
const QString buildKey = target->activeBuildKey(); const QString buildKey = target->activeBuildKey();
@@ -253,12 +253,10 @@ FilePath AndroidManager::buildDirectory(const Target *target)
return {}; return {};
} }
enum PackageFormat { enum PackageFormat { Apk, Aab };
Apk,
Aab
};
QString packageSubPath(PackageFormat format, BuildConfiguration::BuildType buildType, bool sig) static QString packageSubPath(PackageFormat format, BuildConfiguration::BuildType buildType,
bool sig)
{ {
const bool deb = (buildType == BuildConfiguration::Debug); const bool deb = (buildType == BuildConfiguration::Debug);
@@ -274,7 +272,7 @@ QString packageSubPath(PackageFormat format, BuildConfiguration::BuildType build
: "bundle/release/android-build-release.aab"); : "bundle/release/android-build-release.aab");
} }
FilePath AndroidManager::packagePath(const Target *target) FilePath packagePath(const Target *target)
{ {
QTC_ASSERT(target, return {}); QTC_ASSERT(target, return {});
@@ -291,7 +289,7 @@ FilePath AndroidManager::packagePath(const Target *target)
return androidBuildDirectory(target) / "build/outputs" / subPath; return androidBuildDirectory(target) / "build/outputs" / subPath;
} }
bool AndroidManager::matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis) bool matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis)
{ {
for (const auto &abi : appAbis) { for (const auto &abi : appAbis) {
if (deviceAbis.contains(abi)) if (deviceAbis.contains(abi))
@@ -300,7 +298,7 @@ bool AndroidManager::matchedAbis(const QStringList &deviceAbis, const QStringLis
return false; return false;
} }
QString AndroidManager::devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis) QString devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis)
{ {
for (const auto &abi : appAbis) { for (const auto &abi : appAbis) {
if (deviceAbis.contains(abi)) if (deviceAbis.contains(abi))
@@ -309,7 +307,7 @@ QString AndroidManager::devicePreferredAbi(const QStringList &deviceAbis, const
return {}; return {};
} }
Abi AndroidManager::androidAbi2Abi(const QString &androidAbi) Abi androidAbi2Abi(const QString &androidAbi)
{ {
if (androidAbi == ProjectExplorer::Constants::ANDROID_ABI_ARM64_V8A) { if (androidAbi == ProjectExplorer::Constants::ANDROID_ABI_ARM64_V8A) {
return Abi{Abi::Architecture::ArmArchitecture, return Abi{Abi::Architecture::ArmArchitecture,
@@ -344,7 +342,7 @@ Abi AndroidManager::androidAbi2Abi(const QString &androidAbi)
} }
} }
bool AndroidManager::skipInstallationAndPackageSteps(const Target *target) bool skipInstallationAndPackageSteps(const Target *target)
{ {
// For projects using Qt 5.15 and Qt 6, the deployment settings file // For projects using Qt 5.15 and Qt 6, the deployment settings file
// is generated by CMake/qmake and not Qt Creator, so if such file doesn't exist // is generated by CMake/qmake and not Qt Creator, so if such file doesn't exist
@@ -367,7 +365,7 @@ bool AndroidManager::skipInstallationAndPackageSteps(const Target *target)
return n == nullptr; // If no Application target found, then skip steps return n == nullptr; // If no Application target found, then skip steps
} }
FilePath AndroidManager::manifestSourcePath(const Target *target) FilePath manifestSourcePath(const Target *target)
{ {
if (const ProjectNode *node = currentProjectNode(target)) { if (const ProjectNode *node = currentProjectNode(target)) {
const QString packageSource const QString packageSource
@@ -381,7 +379,7 @@ FilePath AndroidManager::manifestSourcePath(const Target *target)
return manifestPath(target); return manifestPath(target);
} }
FilePath AndroidManager::manifestPath(const Target *target) FilePath manifestPath(const Target *target)
{ {
QVariant manifest = target->namedSettings(AndroidManifestName); QVariant manifest = target->namedSettings(AndroidManifestName);
if (manifest.isValid()) if (manifest.isValid())
@@ -389,17 +387,17 @@ FilePath AndroidManager::manifestPath(const Target *target)
return androidBuildDirectory(target).pathAppended(AndroidManifestName); return androidBuildDirectory(target).pathAppended(AndroidManifestName);
} }
void AndroidManager::setManifestPath(Target *target, const FilePath &path) void setManifestPath(Target *target, const FilePath &path)
{ {
target->setNamedSettings(AndroidManifestName, QVariant::fromValue(path)); target->setNamedSettings(AndroidManifestName, QVariant::fromValue(path));
} }
QString AndroidManager::deviceSerialNumber(const Target *target) QString deviceSerialNumber(const Target *target)
{ {
return target->namedSettings(AndroidDeviceSn).toString(); return target->namedSettings(AndroidDeviceSn).toString();
} }
void AndroidManager::setDeviceSerialNumber(Target *target, const QString &deviceSerialNumber) void setDeviceSerialNumber(Target *target, const QString &deviceSerialNumber)
{ {
qCDebug(androidManagerLog) << "Target device serial changed:" qCDebug(androidManagerLog) << "Target device serial changed:"
<< target->displayName() << deviceSerialNumber; << target->displayName() << deviceSerialNumber;
@@ -416,7 +414,7 @@ static QString preferredAbi(const QStringList &appAbis, const Target *target)
return {}; return {};
} }
QString AndroidManager::apkDevicePreferredAbi(const Target *target) QString apkDevicePreferredAbi(const Target *target)
{ {
const FilePath libsPath = androidBuildDirectory(target).pathAppended("libs"); const FilePath libsPath = androidBuildDirectory(target).pathAppended("libs");
if (!libsPath.exists()) { if (!libsPath.exists()) {
@@ -436,24 +434,24 @@ QString AndroidManager::apkDevicePreferredAbi(const Target *target)
return preferredAbi(apkAbis, target); return preferredAbi(apkAbis, target);
} }
void AndroidManager::setDeviceAbis(Target *target, const QStringList &deviceAbis) void setDeviceAbis(Target *target, const QStringList &deviceAbis)
{ {
target->setNamedSettings(AndroidDeviceAbis, deviceAbis); target->setNamedSettings(AndroidDeviceAbis, deviceAbis);
} }
int AndroidManager::deviceApiLevel(const Target *target) int deviceApiLevel(const Target *target)
{ {
return target->namedSettings(ApiLevelKey).toInt(); return target->namedSettings(ApiLevelKey).toInt();
} }
void AndroidManager::setDeviceApiLevel(Target *target, int level) void setDeviceApiLevel(Target *target, int level)
{ {
qCDebug(androidManagerLog) << "Target device API level changed:" qCDebug(androidManagerLog) << "Target device API level changed:"
<< target->displayName() << level; << target->displayName() << level;
target->setNamedSettings(ApiLevelKey, level); target->setNamedSettings(ApiLevelKey, level);
} }
int AndroidManager::defaultMinimumSDK(const QtSupport::QtVersion *qtVersion) int defaultMinimumSDK(const QtSupport::QtVersion *qtVersion)
{ {
if (qtVersion && qtVersion->qtVersion() >= QVersionNumber(6, 0)) if (qtVersion && qtVersion->qtVersion() >= QVersionNumber(6, 0))
return 23; return 23;
@@ -463,7 +461,7 @@ int AndroidManager::defaultMinimumSDK(const QtSupport::QtVersion *qtVersion)
return 16; return 16;
} }
QString AndroidManager::androidNameForApiLevel(int x) QString androidNameForApiLevel(int x)
{ {
switch (x) { switch (x) {
case 2: case 2:
@@ -572,7 +570,7 @@ static int parseMinSdk(const QDomElement &manifestElem)
return 0; return 0;
} }
void AndroidManager::installQASIPackage(Target *target, const FilePath &packagePath) void installQASIPackage(Target *target, const FilePath &packagePath)
{ {
const QStringList appAbis = AndroidManager::applicationAbis(target); const QStringList appAbis = AndroidManager::applicationAbis(target);
if (appAbis.isEmpty()) if (appAbis.isEmpty())
@@ -602,8 +600,7 @@ void AndroidManager::installQASIPackage(Target *target, const FilePath &packageP
} }
} }
bool AndroidManager::checkKeystorePassword(const FilePath &keystorePath, bool checkKeystorePassword(const FilePath &keystorePath, const QString &keystorePasswd)
const QString &keystorePasswd)
{ {
if (keystorePasswd.isEmpty()) if (keystorePasswd.isEmpty())
return false; return false;
@@ -617,10 +614,8 @@ bool AndroidManager::checkKeystorePassword(const FilePath &keystorePath,
return proc.result() == ProcessResult::FinishedWithSuccess; return proc.result() == ProcessResult::FinishedWithSuccess;
} }
bool AndroidManager::checkCertificatePassword(const FilePath &keystorePath, bool checkCertificatePassword(const FilePath &keystorePath, const QString &keystorePasswd,
const QString &keystorePasswd, const QString &alias, const QString &certificatePasswd)
const QString &alias,
const QString &certificatePasswd)
{ {
// assumes that the keystore password is correct // assumes that the keystore password is correct
QStringList arguments = {"-certreq", "-keystore", keystorePath.toUserOutput(), QStringList arguments = {"-certreq", "-keystore", keystorePath.toUserOutput(),
@@ -637,8 +632,8 @@ bool AndroidManager::checkCertificatePassword(const FilePath &keystorePath,
return proc.result() == ProcessResult::FinishedWithSuccess; return proc.result() == ProcessResult::FinishedWithSuccess;
} }
bool AndroidManager::checkCertificateExists(const FilePath &keystorePath, bool checkCertificateExists(const FilePath &keystorePath, const QString &keystorePasswd,
const QString &keystorePasswd, const QString &alias) const QString &alias)
{ {
// assumes that the keystore password is correct // assumes that the keystore password is correct
QStringList arguments = { "-list", "-keystore", keystorePath.toUserOutput(), QStringList arguments = { "-list", "-keystore", keystorePath.toUserOutput(),
@@ -651,7 +646,7 @@ bool AndroidManager::checkCertificateExists(const FilePath &keystorePath,
return proc.result() == ProcessResult::FinishedWithSuccess; return proc.result() == ProcessResult::FinishedWithSuccess;
} }
Process *AndroidManager::startAdbProcess(const QStringList &args, QString *err) Process *startAdbProcess(const QStringList &args, QString *err)
{ {
std::unique_ptr<Process> process(new Process); std::unique_ptr<Process> process(new Process);
const FilePath adb = AndroidConfigurations::currentConfig().adbToolPath(); const FilePath adb = AndroidConfigurations::currentConfig().adbToolPath();
@@ -670,8 +665,8 @@ Process *AndroidManager::startAdbProcess(const QStringList &args, QString *err)
return nullptr; return nullptr;
} }
SdkToolResult AndroidManager::runCommand(const CommandLine &command, static SdkToolResult runCommand(const CommandLine &command, const QByteArray &writeData,
const QByteArray &writeData, int timeoutS) int timeoutS)
{ {
Android::SdkToolResult cmdResult; Android::SdkToolResult cmdResult;
Process cmdProc; Process cmdProc;
@@ -691,10 +686,10 @@ SdkToolResult AndroidManager::runCommand(const CommandLine &command,
return cmdResult; return cmdResult;
} }
SdkToolResult AndroidManager::runAdbCommand(const QStringList &args, SdkToolResult runAdbCommand(const QStringList &args, const QByteArray &writeData, int timeoutS)
const QByteArray &writeData, int timeoutS)
{ {
return runCommand({AndroidConfigurations::currentConfig().adbToolPath(), args}, return runCommand({AndroidConfigurations::currentConfig().adbToolPath(), args},
writeData, timeoutS); writeData, timeoutS);
} }
} // namespace Android
} // namespace Android::AndroidManager

View File

@@ -3,12 +3,6 @@
#pragma once #pragma once
#include "android_global.h"
#include <QPair>
#include <QObject>
#include <QVersionNumber>
#include <qtsupport/baseqtversion.h> #include <qtsupport/baseqtversion.h>
#include <projectexplorer/abi.h> #include <projectexplorer/abi.h>
@@ -18,7 +12,6 @@ class Target;
} }
namespace Utils { namespace Utils {
class CommandLine;
class FilePath; class FilePath;
class Process; class Process;
} }
@@ -33,77 +26,69 @@ public:
const QString &stdErr() const { return m_stdErr; } const QString &stdErr() const { return m_stdErr; }
const QString &exitMessage() const { return m_exitMessage; } const QString &exitMessage() const { return m_exitMessage; }
private:
bool m_success = false; bool m_success = false;
QString m_stdOut; QString m_stdOut;
QString m_stdErr; QString m_stdErr;
QString m_exitMessage; QString m_exitMessage;
friend class AndroidManager;
}; };
class ANDROID_EXPORT AndroidManager : public QObject namespace AndroidManager
{ {
Q_OBJECT
public: QString packageName(const ProjectExplorer::Target *target);
static QString packageName(const ProjectExplorer::Target *target); QString packageName(const Utils::FilePath &manifestFile);
static QString packageName(const Utils::FilePath &manifestFile); QString activityName(const ProjectExplorer::Target *target);
static QString activityName(const ProjectExplorer::Target *target);
static QString deviceSerialNumber(const ProjectExplorer::Target *target); QString deviceSerialNumber(const ProjectExplorer::Target *target);
static void setDeviceSerialNumber(ProjectExplorer::Target *target, const QString &deviceSerialNumber); void setDeviceSerialNumber(ProjectExplorer::Target *target, const QString &deviceSerialNumber);
static QString apkDevicePreferredAbi(const ProjectExplorer::Target *target); QString apkDevicePreferredAbi(const ProjectExplorer::Target *target);
static void setDeviceAbis(ProjectExplorer::Target *target, const QStringList &deviceAbis); void setDeviceAbis(ProjectExplorer::Target *target, const QStringList &deviceAbis);
static int deviceApiLevel(const ProjectExplorer::Target *target); int deviceApiLevel(const ProjectExplorer::Target *target);
static void setDeviceApiLevel(ProjectExplorer::Target *target, int level); void setDeviceApiLevel(ProjectExplorer::Target *target, int level);
static QString buildTargetSDK(const ProjectExplorer::Target *target); QString buildTargetSDK(const ProjectExplorer::Target *target);
static int minimumSDK(const ProjectExplorer::Target *target); int minimumSDK(const ProjectExplorer::Target *target);
static int minimumSDK(const ProjectExplorer::Kit *kit); int minimumSDK(const ProjectExplorer::Kit *kit);
static int defaultMinimumSDK(const QtSupport::QtVersion *qtVersion); int defaultMinimumSDK(const QtSupport::QtVersion *qtVersion);
static QStringList applicationAbis(const ProjectExplorer::Target *target); QStringList applicationAbis(const ProjectExplorer::Target *target);
static QString archTriplet(const QString &abi); QString archTriplet(const QString &abi);
static bool isQt5CmakeProject(const ProjectExplorer::Target *target); bool isQt5CmakeProject(const ProjectExplorer::Target *target);
static Utils::FilePath androidBuildDirectory(const ProjectExplorer::Target *target); Utils::FilePath androidBuildDirectory(const ProjectExplorer::Target *target);
static Utils::FilePath androidAppProcessDir(const ProjectExplorer::Target *target); Utils::FilePath androidAppProcessDir(const ProjectExplorer::Target *target);
static Utils::FilePath buildDirectory(const ProjectExplorer::Target *target); Utils::FilePath buildDirectory(const ProjectExplorer::Target *target);
static Utils::FilePath manifestPath(const ProjectExplorer::Target *target); Utils::FilePath manifestPath(const ProjectExplorer::Target *target);
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path); void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path);
static Utils::FilePath manifestSourcePath(const ProjectExplorer::Target *target); Utils::FilePath manifestSourcePath(const ProjectExplorer::Target *target);
static Utils::FilePath packagePath(const ProjectExplorer::Target *target); Utils::FilePath packagePath(const ProjectExplorer::Target *target);
static bool matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis); bool matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis);
static QString devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis); QString devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis);
static ProjectExplorer::Abi androidAbi2Abi(const QString &androidAbi); ProjectExplorer::Abi androidAbi2Abi(const QString &androidAbi);
static bool skipInstallationAndPackageSteps(const ProjectExplorer::Target *target); bool skipInstallationAndPackageSteps(const ProjectExplorer::Target *target);
static QString androidNameForApiLevel(int x); QString androidNameForApiLevel(int x);
static void installQASIPackage(ProjectExplorer::Target *target, const Utils::FilePath &packagePath); void installQASIPackage(ProjectExplorer::Target *target, const Utils::FilePath &packagePath);
static bool checkKeystorePassword(const Utils::FilePath &keystorePath, bool checkKeystorePassword(const Utils::FilePath &keystorePath,
const QString &keystorePasswd); const QString &keystorePasswd);
static bool checkCertificatePassword(const Utils::FilePath &keystorePath, bool checkCertificatePassword(const Utils::FilePath &keystorePath,
const QString &keystorePasswd, const QString &keystorePasswd,
const QString &alias, const QString &certificatePasswd); const QString &alias, const QString &certificatePasswd);
static bool checkCertificateExists(const Utils::FilePath &keystorePath, bool checkCertificateExists(const Utils::FilePath &keystorePath,
const QString &keystorePasswd, const QString &alias); const QString &keystorePasswd, const QString &alias);
static Utils::Process *startAdbProcess(const QStringList &args, QString *err = nullptr); Utils::Process *startAdbProcess(const QStringList &args, QString *err = nullptr);
static SdkToolResult runAdbCommand(const QStringList &args, const QByteArray &writeData = {}, SdkToolResult runAdbCommand(const QStringList &args, const QByteArray &writeData = {},
int timeoutS = 30); int timeoutS = 30);
static QJsonObject deploymentSettings(const ProjectExplorer::Target *target); QJsonObject deploymentSettings(const ProjectExplorer::Target *target);
static bool isQtCreatorGenerated(const Utils::FilePath &deploymentFile); bool isQtCreatorGenerated(const Utils::FilePath &deploymentFile);
private:
static SdkToolResult runCommand(const Utils::CommandLine &command,
const QByteArray &writeData = {}, int timeoutS = 30);
};
} // namespace AndroidManager
} // namespace Android } // namespace Android