forked from qt-creator/qt-creator
Android: AndroidManager code cosmetics
Change-Id: I228c29fb7dcf5d919bea3633ea235b5ae5a51a42 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -68,63 +68,59 @@
|
|||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
#include <QVersionNumber>
|
#include <QVersionNumber>
|
||||||
|
|
||||||
namespace {
|
|
||||||
const QLatin1String AndroidManifestName("AndroidManifest.xml");
|
|
||||||
const QLatin1String AndroidDefaultPropertiesName("project.properties");
|
|
||||||
const QLatin1String AndroidDeviceSn("AndroidDeviceSerialNumber");
|
|
||||||
const QLatin1String AndroidDeviceAbis("AndroidDeviceAbis");
|
|
||||||
const QLatin1String ApiLevelKey("AndroidVersion.ApiLevel");
|
|
||||||
const QString packageNameRegEx("(?<token>package: )(.*?)(name=)'(?<target>.*?)'");
|
|
||||||
const QString activityRegEx("(?<token>launchable-activity: )(.*?)(name=)'(?<target>.*?)'");
|
|
||||||
const QString apkVersionRegEx("(?<token>package: )(.*?)(versionCode=)'(?<target>.*?)'");
|
|
||||||
const QString versionCodeRegEx("(?<token>versionCode=)(?<version>\\d*)");
|
|
||||||
const QString qtcSignature("This file is generated by QtCreator to be read by androiddeployqt and should not be modified by hand.");
|
|
||||||
|
|
||||||
static Q_LOGGING_CATEGORY(androidManagerLog, "qtc.android.androidManager", QtWarningMsg)
|
|
||||||
|
|
||||||
QString parseAaptOutput(const QString &output, const QString ®Ex) {
|
|
||||||
const QRegularExpression regRx(regEx,
|
|
||||||
QRegularExpression::CaseInsensitiveOption |
|
|
||||||
QRegularExpression::MultilineOption);
|
|
||||||
QRegularExpressionMatch match = regRx.match(output);
|
|
||||||
if (match.hasMatch())
|
|
||||||
return match.captured("target");
|
|
||||||
return QString();
|
|
||||||
};
|
|
||||||
} // anonymous namespace
|
|
||||||
|
|
||||||
|
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
|
|
||||||
|
using namespace Android::Internal;
|
||||||
|
|
||||||
namespace Android {
|
namespace Android {
|
||||||
|
|
||||||
using namespace Internal;
|
const QLatin1String AndroidManifestName("AndroidManifest.xml");
|
||||||
|
const QLatin1String AndroidDefaultPropertiesName("project.properties");
|
||||||
|
const QLatin1String AndroidDeviceSn("AndroidDeviceSerialNumber");
|
||||||
|
const QLatin1String AndroidDeviceAbis("AndroidDeviceAbis");
|
||||||
|
const QLatin1String ApiLevelKey("AndroidVersion.ApiLevel");
|
||||||
|
const QString packageNameRegEx("(?<token>package: )(.*?)(name=)'(?<target>.*?)'");
|
||||||
|
const QString activityRegEx("(?<token>launchable-activity: )(.*?)(name=)'(?<target>.*?)'");
|
||||||
|
const QString apkVersionRegEx("(?<token>package: )(.*?)(versionCode=)'(?<target>.*?)'");
|
||||||
|
const QString versionCodeRegEx("(?<token>versionCode=)(?<version>\\d*)");
|
||||||
|
const QString qtcSignature("This file is generated by QtCreator to be read by androiddeployqt and should not be modified by hand.");
|
||||||
|
|
||||||
|
static Q_LOGGING_CATEGORY(androidManagerLog, "qtc.android.androidManager", QtWarningMsg)
|
||||||
|
|
||||||
|
static QString parseAaptOutput(const QString &output, const QString ®Ex)
|
||||||
|
{
|
||||||
|
const QRegularExpression regRx(regEx,
|
||||||
|
QRegularExpression::CaseInsensitiveOption |
|
||||||
|
QRegularExpression::MultilineOption);
|
||||||
|
QRegularExpressionMatch match = regRx.match(output);
|
||||||
|
if (match.hasMatch())
|
||||||
|
return match.captured("target");
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
class Library
|
class Library
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Library()
|
int level = -1;
|
||||||
{ level = -1; }
|
|
||||||
int level;
|
|
||||||
QStringList dependencies;
|
QStringList dependencies;
|
||||||
QString name;
|
QString name;
|
||||||
};
|
};
|
||||||
|
|
||||||
using LibrariesMap = QMap<QString, Library>;
|
using LibrariesMap = QMap<QString, Library>;
|
||||||
|
|
||||||
static bool openXmlFile(QDomDocument &doc, const Utils::FilePath &fileName);
|
static bool openXmlFile(QDomDocument &doc, const FilePath &fileName);
|
||||||
static bool openManifest(ProjectExplorer::Target *target, QDomDocument &doc);
|
static bool openManifest(const Target *target, QDomDocument &doc);
|
||||||
static int parseMinSdk(const QDomElement &manifestElem);
|
static int parseMinSdk(const QDomElement &manifestElem);
|
||||||
|
|
||||||
static const ProjectNode *currentProjectNode(Target *target)
|
static const ProjectNode *currentProjectNode(const Target *target)
|
||||||
{
|
{
|
||||||
if (RunConfiguration *rc = target->activeRunConfiguration())
|
if (RunConfiguration *rc = target->activeRunConfiguration())
|
||||||
return target->project()->findNodeForBuildKey(rc->buildKey());
|
return target->project()->findNodeForBuildKey(rc->buildKey());
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AndroidManager::packageName(ProjectExplorer::Target *target)
|
QString AndroidManager::packageName(const Target *target)
|
||||||
{
|
{
|
||||||
QDomDocument doc;
|
QDomDocument doc;
|
||||||
if (!openManifest(target, doc))
|
if (!openManifest(target, doc))
|
||||||
@@ -133,7 +129,7 @@ QString AndroidManager::packageName(ProjectExplorer::Target *target)
|
|||||||
return manifestElem.attribute(QLatin1String("package"));
|
return manifestElem.attribute(QLatin1String("package"));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AndroidManager::packageName(const Utils::FilePath &manifestFile)
|
QString AndroidManager::packageName(const FilePath &manifestFile)
|
||||||
{
|
{
|
||||||
QDomDocument doc;
|
QDomDocument doc;
|
||||||
if (!openXmlFile(doc, manifestFile))
|
if (!openXmlFile(doc, manifestFile))
|
||||||
@@ -178,10 +174,10 @@ int AndroidManager::packageVersionCode(const QString &deviceSerial,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidManager::apkInfo(const Utils::FilePath &apkPath,
|
void AndroidManager::apkInfo(const FilePath &apkPath,
|
||||||
QString *packageName,
|
QString *packageName,
|
||||||
int *version,
|
int *version,
|
||||||
QString *activityPath)
|
QString *activityPath)
|
||||||
{
|
{
|
||||||
SdkToolResult result;
|
SdkToolResult result;
|
||||||
result = runAaptCommand({"dump", "badging", apkPath.toString()});
|
result = runAaptCommand({"dump", "badging", apkPath.toString()});
|
||||||
@@ -205,7 +201,7 @@ void AndroidManager::apkInfo(const Utils::FilePath &apkPath,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AndroidManager::activityName(ProjectExplorer::Target *target)
|
QString AndroidManager::activityName(const Target *target)
|
||||||
{
|
{
|
||||||
QDomDocument doc;
|
QDomDocument doc;
|
||||||
if (!openManifest(target, doc))
|
if (!openManifest(target, doc))
|
||||||
@@ -219,7 +215,7 @@ QString AndroidManager::activityName(ProjectExplorer::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(ProjectExplorer::Target *target)
|
int AndroidManager::minimumSDK(const Target *target)
|
||||||
{
|
{
|
||||||
QDomDocument doc;
|
QDomDocument doc;
|
||||||
if (!openXmlFile(doc, AndroidManager::manifestSourcePath(target)))
|
if (!openXmlFile(doc, AndroidManager::manifestSourcePath(target)))
|
||||||
@@ -231,12 +227,12 @@ int AndroidManager::minimumSDK(ProjectExplorer::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 ProjectExplorer::Kit *kit)
|
int AndroidManager::minimumSDK(const Kit *kit)
|
||||||
{
|
{
|
||||||
int minSDKVersion = -1;
|
int minSDKVersion = -1;
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(kit);
|
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(kit);
|
||||||
if (version && version->targetDeviceTypes().contains(Constants::ANDROID_DEVICE_TYPE)) {
|
if (version && version->targetDeviceTypes().contains(Constants::ANDROID_DEVICE_TYPE)) {
|
||||||
Utils::FilePath stockManifestFilePath = Utils::FilePath::fromUserInput(
|
FilePath stockManifestFilePath = FilePath::fromUserInput(
|
||||||
version->prefix().toString() + "/src/android/templates/AndroidManifest.xml");
|
version->prefix().toString() + "/src/android/templates/AndroidManifest.xml");
|
||||||
QDomDocument doc;
|
QDomDocument doc;
|
||||||
if (openXmlFile(doc, stockManifestFilePath)) {
|
if (openXmlFile(doc, stockManifestFilePath)) {
|
||||||
@@ -246,7 +242,7 @@ int AndroidManager::minimumSDK(const ProjectExplorer::Kit *kit)
|
|||||||
return minSDKVersion;
|
return minSDKVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AndroidManager::buildTargetSDK(ProjectExplorer::Target *target)
|
QString AndroidManager::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>())
|
||||||
@@ -318,23 +314,23 @@ bool AndroidManager::isQtCreatorGenerated(const FilePath &deploymentFile)
|
|||||||
return QJsonDocument::fromJson(f.readAll()).object()["_description"].toString() == qtcSignature;
|
return QJsonDocument::fromJson(f.readAll()).object()["_description"].toString() == qtcSignature;
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath AndroidManager::dirPath(const ProjectExplorer::Target *target)
|
FilePath AndroidManager::dirPath(const Target *target)
|
||||||
{
|
{
|
||||||
if (auto *bc = target->activeBuildConfiguration())
|
if (auto *bc = target->activeBuildConfiguration())
|
||||||
return bc->buildDirectory() / Constants::ANDROID_BUILDDIRECTORY;
|
return bc->buildDirectory() / Constants::ANDROID_BUILDDIRECTORY;
|
||||||
return Utils::FilePath();
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath AndroidManager::apkPath(const ProjectExplorer::Target *target)
|
FilePath AndroidManager::apkPath(const Target *target)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(target, return Utils::FilePath());
|
QTC_ASSERT(target, return {});
|
||||||
|
|
||||||
auto bc = target->activeBuildConfiguration();
|
auto bc = target->activeBuildConfiguration();
|
||||||
if (!bc)
|
if (!bc)
|
||||||
return {};
|
return {};
|
||||||
auto buildApkStep = bc->buildSteps()->firstOfType<AndroidBuildApkStep>();
|
auto buildApkStep = bc->buildSteps()->firstOfType<AndroidBuildApkStep>();
|
||||||
if (!buildApkStep)
|
if (!buildApkStep)
|
||||||
return Utils::FilePath();
|
return {};
|
||||||
|
|
||||||
QString apkPath("build/outputs/apk/android-build-");
|
QString apkPath("build/outputs/apk/android-build-");
|
||||||
if (buildApkStep->signPackage())
|
if (buildApkStep->signPackage())
|
||||||
@@ -398,7 +394,7 @@ Abi AndroidManager::androidAbi2Abi(const QString &androidAbi)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath AndroidManager::manifestSourcePath(ProjectExplorer::Target *target)
|
FilePath AndroidManager::manifestSourcePath(const Target *target)
|
||||||
{
|
{
|
||||||
if (const ProjectNode *node = currentProjectNode(target)) {
|
if (const ProjectNode *node = currentProjectNode(target)) {
|
||||||
const QString packageSource
|
const QString packageSource
|
||||||
@@ -412,7 +408,7 @@ Utils::FilePath AndroidManager::manifestSourcePath(ProjectExplorer::Target *targ
|
|||||||
return manifestPath(target);
|
return manifestPath(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath AndroidManager::manifestPath(ProjectExplorer::Target *target)
|
FilePath AndroidManager::manifestPath(const Target *target)
|
||||||
{
|
{
|
||||||
QVariant manifest = target->namedSettings(AndroidManifestName);
|
QVariant manifest = target->namedSettings(AndroidManifestName);
|
||||||
if (manifest.isValid())
|
if (manifest.isValid())
|
||||||
@@ -425,17 +421,17 @@ void AndroidManager::setManifestPath(Target *target, const FilePath &path)
|
|||||||
target->setNamedSettings(AndroidManifestName, QVariant::fromValue(path));
|
target->setNamedSettings(AndroidManifestName, QVariant::fromValue(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath AndroidManager::defaultPropertiesPath(ProjectExplorer::Target *target)
|
FilePath AndroidManager::defaultPropertiesPath(const Target *target)
|
||||||
{
|
{
|
||||||
return dirPath(target).pathAppended(AndroidDefaultPropertiesName);
|
return dirPath(target).pathAppended(AndroidDefaultPropertiesName);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AndroidManager::deviceSerialNumber(ProjectExplorer::Target *target)
|
QString AndroidManager::deviceSerialNumber(const Target *target)
|
||||||
{
|
{
|
||||||
return target->namedSettings(AndroidDeviceSn).toString();
|
return target->namedSettings(AndroidDeviceSn).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidManager::setDeviceSerialNumber(ProjectExplorer::Target *target, const QString &deviceSerialNumber)
|
void AndroidManager::setDeviceSerialNumber(Target *target, const QString &deviceSerialNumber)
|
||||||
{
|
{
|
||||||
qCDebug(androidManagerLog) << "Device serial for the target changed"
|
qCDebug(androidManagerLog) << "Device serial for the target changed"
|
||||||
<< target->displayName() << deviceSerialNumber;
|
<< target->displayName() << deviceSerialNumber;
|
||||||
@@ -462,17 +458,17 @@ QString AndroidManager::apkDevicePreferredAbi(const Target *target)
|
|||||||
return preferredAbi(apkAbis, target);
|
return preferredAbi(apkAbis, target);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidManager::setDeviceAbis(ProjectExplorer::Target *target, const QStringList &deviceAbis)
|
void AndroidManager::setDeviceAbis(Target *target, const QStringList &deviceAbis)
|
||||||
{
|
{
|
||||||
target->setNamedSettings(AndroidDeviceAbis, deviceAbis);
|
target->setNamedSettings(AndroidDeviceAbis, deviceAbis);
|
||||||
}
|
}
|
||||||
|
|
||||||
int AndroidManager::deviceApiLevel(ProjectExplorer::Target *target)
|
int AndroidManager::deviceApiLevel(const Target *target)
|
||||||
{
|
{
|
||||||
return target->namedSettings(ApiLevelKey).toInt();
|
return target->namedSettings(ApiLevelKey).toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidManager::setDeviceApiLevel(ProjectExplorer::Target *target, int level)
|
void AndroidManager::setDeviceApiLevel(Target *target, int level)
|
||||||
{
|
{
|
||||||
qCDebug(androidManagerLog) << "Device API level for the target changed"
|
qCDebug(androidManagerLog) << "Device API level for the target changed"
|
||||||
<< target->displayName() << level;
|
<< target->displayName() << level;
|
||||||
@@ -542,7 +538,7 @@ QString AndroidManager::androidNameForApiLevel(int x)
|
|||||||
case 30:
|
case 30:
|
||||||
return QLatin1String("Android 11");
|
return QLatin1String("Android 11");
|
||||||
default:
|
default:
|
||||||
return tr("Unknown Android version. API Level: %1").arg(QString::number(x));
|
return tr("Unknown Android version. API Level: %1").arg(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -551,7 +547,7 @@ static void raiseError(const QString &reason)
|
|||||||
QMessageBox::critical(nullptr, AndroidManager::tr("Error creating Android templates."), reason);
|
QMessageBox::critical(nullptr, AndroidManager::tr("Error creating Android templates."), reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool openXmlFile(QDomDocument &doc, const Utils::FilePath &fileName)
|
static bool openXmlFile(QDomDocument &doc, const FilePath &fileName)
|
||||||
{
|
{
|
||||||
QFile f(fileName.toString());
|
QFile f(fileName.toString());
|
||||||
if (!f.open(QIODevice::ReadOnly))
|
if (!f.open(QIODevice::ReadOnly))
|
||||||
@@ -564,7 +560,7 @@ static bool openXmlFile(QDomDocument &doc, const Utils::FilePath &fileName)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool openManifest(ProjectExplorer::Target *target, QDomDocument &doc)
|
static bool openManifest(const Target *target, QDomDocument &doc)
|
||||||
{
|
{
|
||||||
return openXmlFile(doc, AndroidManager::manifestPath(target));
|
return openXmlFile(doc, AndroidManager::manifestPath(target));
|
||||||
}
|
}
|
||||||
@@ -583,7 +579,7 @@ static int parseMinSdk(const QDomElement &manifestElem)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidManager::installQASIPackage(ProjectExplorer::Target *target, const QString &packagePath)
|
void AndroidManager::installQASIPackage(Target *target, const QString &packagePath)
|
||||||
{
|
{
|
||||||
const QStringList appAbis = AndroidManager::applicationAbis(target);
|
const QStringList appAbis = AndroidManager::applicationAbis(target);
|
||||||
if (appAbis.isEmpty())
|
if (appAbis.isEmpty())
|
||||||
@@ -616,7 +612,7 @@ bool AndroidManager::checkKeystorePassword(const QString &keystorePath, const QS
|
|||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setTimeoutS(10);
|
proc.setTimeoutS(10);
|
||||||
SynchronousProcessResponse response = proc.run(cmd);
|
SynchronousProcessResponse response = proc.run(cmd);
|
||||||
return (response.result == Utils::SynchronousProcessResponse::Finished && response.exitCode == 0);
|
return (response.result == SynchronousProcessResponse::Finished && response.exitCode == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AndroidManager::checkCertificatePassword(const QString &keystorePath, const QString &keystorePasswd, const QString &alias, const QString &certificatePasswd)
|
bool AndroidManager::checkCertificatePassword(const QString &keystorePath, const QString &keystorePasswd, const QString &alias, const QString &certificatePasswd)
|
||||||
@@ -712,7 +708,7 @@ static bool mergeGradleProperties(const QString &path, GradleProperties properti
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target, const QString &buildKey)
|
bool AndroidManager::updateGradleProperties(Target *target, const QString &buildKey)
|
||||||
{
|
{
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit());
|
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit());
|
||||||
if (!version)
|
if (!version)
|
||||||
@@ -770,10 +766,10 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target, con
|
|||||||
return mergeGradleProperties(gradlePropertiesPath, gradleProperties);
|
return mergeGradleProperties(gradlePropertiesPath, gradleProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
int AndroidManager::findApiLevel(const Utils::FilePath &platformPath)
|
int AndroidManager::findApiLevel(const FilePath &platformPath)
|
||||||
{
|
{
|
||||||
int apiLevel = -1;
|
int apiLevel = -1;
|
||||||
const Utils::FilePath propertiesPath = platformPath / "/source.properties";
|
const FilePath propertiesPath = platformPath / "/source.properties";
|
||||||
if (propertiesPath.exists()) {
|
if (propertiesPath.exists()) {
|
||||||
QSettings sdkProperties(propertiesPath.toString(), QSettings::IniFormat);
|
QSettings sdkProperties(propertiesPath.toString(), QSettings::IniFormat);
|
||||||
bool validInt = false;
|
bool validInt = false;
|
||||||
@@ -812,13 +808,13 @@ SdkToolResult AndroidManager::runCommand(const CommandLine &command,
|
|||||||
const QByteArray &writeData, int timeoutS)
|
const QByteArray &writeData, int timeoutS)
|
||||||
{
|
{
|
||||||
Android::SdkToolResult cmdResult;
|
Android::SdkToolResult cmdResult;
|
||||||
Utils::SynchronousProcess cmdProc;
|
SynchronousProcess cmdProc;
|
||||||
cmdProc.setTimeoutS(timeoutS);
|
cmdProc.setTimeoutS(timeoutS);
|
||||||
qCDebug(androidManagerLog) << "Running command (sync):" << command.toUserOutput();
|
qCDebug(androidManagerLog) << "Running command (sync):" << command.toUserOutput();
|
||||||
SynchronousProcessResponse response = cmdProc.run(command, writeData);
|
SynchronousProcessResponse response = cmdProc.run(command, writeData);
|
||||||
cmdResult.m_stdOut = response.stdOut().trimmed();
|
cmdResult.m_stdOut = response.stdOut().trimmed();
|
||||||
cmdResult.m_stdErr = response.stdErr().trimmed();
|
cmdResult.m_stdErr = response.stdErr().trimmed();
|
||||||
cmdResult.m_success = response.result == Utils::SynchronousProcessResponse::Finished;
|
cmdResult.m_success = response.result == SynchronousProcessResponse::Finished;
|
||||||
qCDebug(androidManagerLog) << "Running command (sync) finshed:" << command.toUserOutput()
|
qCDebug(androidManagerLog) << "Running command (sync) finshed:" << command.toUserOutput()
|
||||||
<< "Success:" << cmdResult.m_success
|
<< "Success:" << cmdResult.m_success
|
||||||
<< "Output:" << response.allRawOutput();
|
<< "Output:" << response.allRawOutput();
|
||||||
|
@@ -70,7 +70,7 @@ class ANDROID_EXPORT AndroidManager : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static QString packageName(ProjectExplorer::Target *target);
|
static QString packageName(const ProjectExplorer::Target *target);
|
||||||
static QString packageName(const Utils::FilePath &manifestFile);
|
static QString packageName(const Utils::FilePath &manifestFile);
|
||||||
static bool packageInstalled(const QString &deviceSerial, const QString &packageName);
|
static bool packageInstalled(const QString &deviceSerial, const QString &packageName);
|
||||||
static int packageVersionCode(const QString &deviceSerial, const QString &packageName);
|
static int packageVersionCode(const QString &deviceSerial, const QString &packageName);
|
||||||
@@ -78,30 +78,30 @@ public:
|
|||||||
QString *packageName = nullptr,
|
QString *packageName = nullptr,
|
||||||
int *version = nullptr,
|
int *version = nullptr,
|
||||||
QString *activityPath = nullptr);
|
QString *activityPath = nullptr);
|
||||||
static QString activityName(ProjectExplorer::Target *target);
|
static QString activityName(const ProjectExplorer::Target *target);
|
||||||
|
|
||||||
static QString deviceSerialNumber(ProjectExplorer::Target *target);
|
static QString deviceSerialNumber(const ProjectExplorer::Target *target);
|
||||||
static void setDeviceSerialNumber(ProjectExplorer::Target *target, const QString &deviceSerialNumber);
|
static void setDeviceSerialNumber(ProjectExplorer::Target *target, const QString &deviceSerialNumber);
|
||||||
|
|
||||||
static QString apkDevicePreferredAbi(const ProjectExplorer::Target *target);
|
static QString apkDevicePreferredAbi(const ProjectExplorer::Target *target);
|
||||||
static void setDeviceAbis(ProjectExplorer::Target *target, const QStringList &deviceAbis);
|
static void setDeviceAbis(ProjectExplorer::Target *target, const QStringList &deviceAbis);
|
||||||
|
|
||||||
static int deviceApiLevel(ProjectExplorer::Target *target);
|
static int deviceApiLevel(const ProjectExplorer::Target *target);
|
||||||
static void setDeviceApiLevel(ProjectExplorer::Target *target, int level);
|
static void setDeviceApiLevel(ProjectExplorer::Target *target, int level);
|
||||||
|
|
||||||
static QString buildTargetSDK(ProjectExplorer::Target *target);
|
static QString buildTargetSDK(const ProjectExplorer::Target *target);
|
||||||
|
|
||||||
static int minimumSDK(ProjectExplorer::Target *target);
|
static int minimumSDK(const ProjectExplorer::Target *target);
|
||||||
static int minimumSDK(const ProjectExplorer::Kit *kit);
|
static int minimumSDK(const ProjectExplorer::Kit *kit);
|
||||||
|
|
||||||
static QStringList applicationAbis(const ProjectExplorer::Target *target);
|
static QStringList applicationAbis(const ProjectExplorer::Target *target);
|
||||||
static QString archTriplet(const QString &abi);
|
static QString archTriplet(const QString &abi);
|
||||||
|
|
||||||
static Utils::FilePath dirPath(const ProjectExplorer::Target *target);
|
static Utils::FilePath dirPath(const ProjectExplorer::Target *target);
|
||||||
static Utils::FilePath manifestPath(ProjectExplorer::Target *target);
|
static Utils::FilePath manifestPath(const ProjectExplorer::Target *target);
|
||||||
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path);
|
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path);
|
||||||
static Utils::FilePath manifestSourcePath(ProjectExplorer::Target *target);
|
static Utils::FilePath manifestSourcePath(const ProjectExplorer::Target *target);
|
||||||
static Utils::FilePath defaultPropertiesPath(ProjectExplorer::Target *target);
|
static Utils::FilePath defaultPropertiesPath(const ProjectExplorer::Target *target);
|
||||||
static Utils::FilePath apkPath(const ProjectExplorer::Target *target);
|
static Utils::FilePath apkPath(const ProjectExplorer::Target *target);
|
||||||
static bool matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis);
|
static bool matchedAbis(const QStringList &deviceAbis, const QStringList &appAbis);
|
||||||
static QString devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis);
|
static QString devicePreferredAbi(const QStringList &deviceAbis, const QStringList &appAbis);
|
||||||
@@ -113,7 +113,8 @@ public:
|
|||||||
static void installQASIPackage(ProjectExplorer::Target *target, const QString &packagePath);
|
static void installQASIPackage(ProjectExplorer::Target *target, const QString &packagePath);
|
||||||
|
|
||||||
static bool checkKeystorePassword(const QString &keystorePath, const QString &keystorePasswd);
|
static bool checkKeystorePassword(const QString &keystorePath, const QString &keystorePasswd);
|
||||||
static bool checkCertificatePassword(const QString &keystorePath, const QString &keystorePasswd, const QString &alias, const QString &certificatePasswd);
|
static bool checkCertificatePassword(const QString &keystorePath, const QString &keystorePasswd,
|
||||||
|
const QString &alias, const QString &certificatePasswd);
|
||||||
static bool checkCertificateExists(const QString &keystorePath, const QString &keystorePasswd,
|
static bool checkCertificateExists(const QString &keystorePath, const QString &keystorePasswd,
|
||||||
const QString &alias);
|
const QString &alias);
|
||||||
static bool updateGradleProperties(ProjectExplorer::Target *target, const QString &buildKey);
|
static bool updateGradleProperties(ProjectExplorer::Target *target, const QString &buildKey);
|
||||||
|
Reference in New Issue
Block a user