Commit Graph

64 Commits

Author SHA1 Message Date
BogDan Vatra
6b31f9cf23 Android multi arch support
[ChangeLog][Android] Android multi arch support for qmake

Change-Id: Ib8b1874604a3392130c96fbc00b26713b3d788ae
Reviewed-by: hjk <hjk@qt.io>
2019-09-16 07:34:54 +00:00
hjk
357ecd9297 Android: Rework BuildApkWidget
Merge BuildApkInnerWidget into BuildApkWidget and simplify
layout structure. The inner .ui managed three of the groupboxes,
the outer added two more manually.

Change-Id: If4b54fa569952a9bb5eedb889a271827d8a88577
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-04-25 07:09:20 +00:00
hjk
ac1b0facc0 ProjectExplorer: De-virtualize EnvironmentAspect::baseEnvironment
Will help to streamline *EnvironmentAspect constructor signature,
which in turn will help to have a generic cloning mechanism to
clone aspect data, which in turn will help to finally execute on
the idea that RunControls should be re-runnable in their original
setup and also resilient to changes in the setup while they are
running.

Change-Id: Ibdaca487c1f7ce043e675fd014fe923a70273639
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-03-07 16:06:46 +00:00
hjk
9e965409d1 Move IDeviceFactory closer to IDevice implementation
Except for the DesktopDevice, which is kind of special. Also try
a bit to make (and partially fail at doing so) naming and code
structure (#include, use of namespaces) more similar to each other.

Change-Id: I9fe266e706b72c14f59ff03ca1ae02dba3adcc71
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-02-21 13:20:16 +00:00
hjk
06cc09a30f QtSupport et al: Move QtVersionFactory to *QtVersion implementation
At most a dozen lines each left.

Change-Id: Ifbf34f814266ba7bee83d3fee9db831eb450dfc4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-02-18 10:12:55 +00:00
hjk
fd5916ae23 Android: Simplify deploy step widget setup
Remove the nested QGroupBox, inline code into only callers, etc.
Also use better display name for deploy step widget.

Change-Id: I579810c04dea032a98ba28db6de035048f801f75
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-01-28 10:16:17 +00:00
hjk
ee483abdb6 Android: Remove DeployConfiguration restriction
... to matching Qt and tool chain.

This is the only remaining place in Creator that refuses to restore
deploy configurations in such cases, and arguably there's no point
in dropping such a configuration as a whole, the individual steps
(i.e. AndroidDeployQtStep) can and do chicken out at deploy time
if there's no Qt version in reach.

Also move AndroidDeployConfigurationFactory to the plugin.cpp,
no need for a .cpp/.h pair for the remaining few lines.

Change-Id: If6ea7cf9573149c88c05629997ac582dc90d1e48
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-01-25 13:09:06 +00:00
hjk
93257a56a0 QmakeAndroid: Replace remaining AndroidQtSupport
This uses the same approach as in the previous patches: Have some
generic interface in the base classes (here ProjectNode::targetData()
setTargetData()) and implement on the qmake project side.

Implementation for Cmake/QBS is architecture-wise possible, but
not used right now, and left for later.

Change-Id: I3bbf66170020cf9027a894cd66db15ec7ffbf499
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-12-20 13:13:51 +00:00
Vikas Pachdha
d55373cab2 Android: Enable setting environment variables for android apps
Change-Id: Id4625f081d6997dcabad9b01fb09d6c9c6ef7477
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-08-02 10:01:12 +00:00
hjk
d8326afcff Android: Simplify apkPath determination
It doesn't explicitly need the qtSupport indirection anymore.

Change-Id: I25f0649a3b7760fdef3b62097ac55341e6b16fe4
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-08-01 10:47:02 +00:00
hjk
6aeb06c8d3 Android: Move CreateAndroidManifestWizard and related build step to base
It does not directly depend on qmake anymore.

Change-Id: I3b9625e54d98c79ef137059cf4554b3f2807e88e
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-07-11 07:45:13 +00:00
hjk
e9f1edf5ce Android: Move AndroidExtraLibraryListModel to base
Instead of having the full class build-system dependent,
by relying on four more AndroidQtSupport functions for now.

Change-Id: I26842f3ec70b875ba4481ae36d8c85f86366cb88
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-07-02 09:21:22 +00:00
hjk
2dccf95e49 Android: Remove AndroidRunnable
Not used anymore.

Change-Id: Iad4fd894c389b310d11cac2fe49b96ded39b0677
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-05-16 11:28:56 +00:00
hjk
2487768388 Android: Make runconfiguration use aspects
Change-Id: I6d89de901e64b2f29d62073e458eb6cd86c44acd
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2018-05-09 08:14:02 +00:00
BogDan Vatra
429c596395 Android: Fix debugging on Android 8+
The new way is much reliable and now we can debug all the libs from very
first start, including static constructors, JNI_OnLoad, etc.

The downside is that the startup is a little bit slower then before.
On a Ryzen 1700X is 2 to 5 seconds slower.

Task-number: QTCREATORBUG-19081
Change-Id: Iacedf7b8aa84de5026f9c81eeca35dd377cf4640
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2018-04-13 14:05:40 +00:00
hjk
1f3ba4ce15 QmakeAndroidSupport: Move AndroidPackageInstallationStep to Android plugin
There's nothing Qmake related in there (anymore?).

Change-Id: I8842d4824065cf3cba61d50b6f333ec3b52e3851
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2017-12-12 16:05:20 +00:00
Ulf Hermann
9fef8ff319 Android: Add support for QML preview
Change-Id: Ib1dc4f21686c14abf15e8a8bda82bff34ec019b4
Reviewed-by: hjk <hjk@qt.io>
2017-11-08 09:11:45 +00:00
Vikas Pachdha
476b133e91 Android: Android SDK manager user interface
Task-number: QTCREATORBUG-18978
Change-Id: I421ea66fcd4f3cf38e6cfd3be58a35b3f9204c6f
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2017-10-11 12:01:02 +00:00
Vikas Pachdha
ec4fe5f04f Android: Refactor Android SDK packages
Introduce a hierarchy for Android SDK packages and refactor the
code accordingly. This is ground work for sdk management and
automatic android setup

Task-number: QTCREATORBUG-18978
Change-Id: Idef545e3b3a8e33e920be52b26094fb8046afcd3
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 11:58:16 +00:00
David Schulz
b1390a07ca Android: Simplify code assist by using KeywordsCompletionProvider
Change-Id: I566e54e8cb539227019fd9cf94113924d1ac9822
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2017-07-27 11:42:15 +00:00
Vikas Pachdha
a6a13bfb76 Android: Let user specify shell commands
Let user specify list of shell commands to run before app starts
and after app quits.

Change-Id: I9794fb96180530ca6c28ce6581fda51a25be28d4
Reviewed-by: hjk <hjk@qt.io>
2017-06-30 11:56:50 +00:00
hjk
df61f12970 Android: Simplify run control construction
Take advantage of new infrastructure.

Change-Id: If2d2f839b8be1fad2be3b79e21de3c0e475d88cf
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-06-30 10:41:24 +00:00
Vikas Pachdha
a30a18177b Android: Make Android manager activity start arguments configurable
Change-Id: I2e09029e4eb0b8a57fda53efff3d42f109bfe905
Reviewed-by: hjk <hjk@qt.io>
2017-06-28 09:09:32 +00:00
Vikas Pachdha
70be880bcb Android: Use avdmanager tool
android tool is deprecated since sdk tools version 25.3.0.
Use the new avdmanager tool

Task-number: QTCREATORBUG-17814
Change-Id: Id6f495f14e12d0069df08164cac1929b76d9e932
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-04-12 13:42:10 +00:00
Vikas Pachdha
05b77e8468 Android: Use sdkmanager tool
android tool is deprecated since sdk tools version 25.3.0.
Use the new sdkmanager tool

Task-number: QTCREATORBUG-17814
Change-Id: I96446f5a64c1c400066b4ac7771c8c7e1bf567ed
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-04-12 13:41:48 +00:00
Vikas Pachdha
198c83ea70 Android: Add Android tool manager
Refactor the use of android tool and groundwork for the new sdk
and avd management tool's integration

Task-number: QTCREATORBUG-17814
Change-Id: I6a5920f9ba92508f904cd8cf28bf62c82de2d820
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-04-12 12:45:30 +00:00
Eike Ziller
4f9016e03f Merge remote-tracking branch 'origin/4.0' into 4.1
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/android/android.qbs
	src/plugins/android/androiddevice.cpp
	src/plugins/autotest/testcodeparser.cpp
	src/plugins/debugger/analyzer/analyzerstartparameters.h
	src/plugins/projectexplorer/devicesupport/desktopdevice.cpp
	src/plugins/projectexplorer/devicesupport/idevice.cpp
	src/plugins/projectexplorer/runconfiguration.h

Change-Id: I2474d06f2309fa71210a8401846bc2ef85bebf1d
2016-06-22 11:09:32 +02:00
hjk
3f11ef9216 Avoid using dynamic_cast<>
dynamic_cast<> breaks in cross-library situations. In the past
the issue was witnessed on Mac, this time on FreeBSD in
various configurations.

The workaround deployed here is to manually create unique
type ids in form of (addresses of) global variables.

Task-id: QTCREATORBUG-16462
Change-Id: Ie28fbb3d31d06c1a722a3d9ea808831191298e71
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Ralf Nolden <nolden@kde.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2016-06-22 07:31:41 +00:00
David Schulz
cf0e087ab1 Android: Remove useless java autocompleter.
Change-Id: Icf32ea00ba039a517dae78435efc86aae992e05a
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-04-19 11:04:51 +00:00
BogDan Vatra
221b03a162 Add AndroidRunnable
Using the AndroidRunnable is easy for other plugins to run custom adb
commands before intent is started and after it's stopped.

Change-Id: I012ae87c92cea16aa8074dce2dc6f2b0c4ebeb30
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-01-29 12:29:07 +00:00
Tobias Hunger
ed8a9cba2b JsonWizard: Replace Java wizard with JsonWizard
Change-Id: I93fc26e48b39635662662a9ab4040f45fa874876
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-09-30 17:29:08 +02:00
BogDan Vatra
3bcae52584 Android: Say hello to gradle!
Switching from Ant to Gradle brings lots of advantages:
 - it is way faster when rebuilding (25-50% faster than ant).
 - it enables first class Android Studio integration.
 - adding Android Extras libs (e.g. Google Play services, OBB, etc.) to
   your project is now painless.

[ChangeLog][Android] Added Gradle support to build the APK.

Change-Id: Iee492954f8ffb2c22e6ab14a8a25faf644de9a51
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-09-25 13:15:25 +02:00
hjk
11f89ece8d Android: Separate debug and analyze support
The common base class contains only unused functionality.

Change-Id: I5f6db59a2972d6ab8383ce209937090cd46ae39d
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-09-16 13:37:15 +02:00
hjk
b86269edbd Android: General java editor related code consolidation
Merge editor files, convert to new editor setup scheme.

Change-Id: Ie498ac5dcb1efc288e55082a285e6daada6b5ebf
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-20 15:48:27 +02:00
BogDan Vatra
64e5a543a8 Move qmake specific part to qmake plugin, generalize android support
- Split up androiddeployqt into two steps: One building the apk,
  and one deploying it to the device.
- The build apk step base class AndroidBuildApkStep is ihneritaged by
  the qmake specific class QmakeAndroidBuildApkStep.
- The deployment step is still called androiddeployqt
- Move all qmake specific code to the qmakeprojectmanager plguin
- Flip the depencency between the android and qmake plugin, now
  the qmake plugin depends on the android plugin, implementing
  a interface the android plugin provides.

- Note: This removes the debug deployment for now.

Change-Id: I1c386640159ed14b637668abde8eb3b9009ab803
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-07-21 12:41:28 +02:00
Daniel Teske
4657ac7452 AndroidRunConfigurations: Split up into general and qmake specific parts
The plan is to eventually move the qmake specific class into the
qmake plugin.

Change-Id: I5653c45ed88b1be296f4963ab4117bbfa791fb85
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-07-21 12:41:21 +02:00
BogDan Vatra
6a4c47b176 AndroidDebugSupport: Split up into general and qmake specific part
Introudce AndroidQtSupport. The derived class will eventually move to
the qmakeprojectmanager plugin.

Change-Id: I3fdc98259644fe718eb15aa9bd11d92dc0cdb1af
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-07-21 12:41:14 +02:00
BogDan Vatra
381b04fa04 Android: Remove Necessitas support
Change-Id: I082acfad3b20d5e096fbb2ca3db775bb527eaf7a
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-07-21 12:40:55 +02:00
Daniel Teske
a087b3cd7f Android: Rework Create AVD dialog
Filter the list of api levels to only show those that can be created.

Change-Id: I7aaaa58324ca44176e39982cda29d746011fa346
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-04-01 16:24:45 +02:00
Daniel Teske
fac46592c3 Android: Add Java file wizard
Task-number: QTCREATORBUG-11220
Change-Id: I01967ce9bd205ccbeb93696b98e9b8d9228617f3
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-02-18 13:50:29 +01:00
Daniel Teske
d1fd61cbf3 Android: Add minimal Java editing support
Indentation for blocks '{'. '}' and completion for keywords.

TODO: "New File" is missing,
TODO: probably needs some tweaks to the indentation.
Task-number: QTCREATORBUG-11220

Change-Id: I758b3815e47d1427d39c0248eb16e39ffb7a29fb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-20 14:57:04 +01:00
David Schulz
7243def78c Android: Add AndroidSignalOperation.
Allows to kill and interrupt remote processes with the pid.

Change-Id: I22befc04dafbe2a7f132bddb3e17a2b48579ef3c
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-05 16:55:29 +01:00
Daniel Teske
7f8edfb41c AndroidPlugin: Remove dependency on qbs plugin
Task-number: QTCREATORBUG-10288
Change-Id: I2328076a7b5179e4d63becb616433627270089c4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-10-02 12:29:26 +02:00
Eskil Abrahamsen Blomfeldt
c8393b10fd Extra library editor for Android
Add a list view to the deployment settings which allows you
to add and remove libraries from the ANDROID_EXTRA_LIBS
variable in the .pro file.

Task-number: QTCREATORBUG-9849
Change-Id: Ic0131c46be8fdef4b226b5ceb0ee82ea4dd82c6a
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-10-01 15:41:43 +02:00
Daniel Teske
4c4cceaa49 Show potential kits in the targetsetuppage
Change-Id: I6569e3d53b78cdcdf8607a289b5be37447e0a03c
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-10-01 12:44:39 +02:00
Daniel Teske
64c17eab22 Android: Qt 5.2 deployment add a button to create a Android manifest
The AndroidManifest.xml is no longer needed in as many use cases as
before. So the new deployment does not automatically create a
android manifest. Offer a button on the deployment page to create
a android manifest. This also edits the .pro file adding the
ANDROID_PACKAGE_SOURCE_DIR.

Change-Id: I2655dd6c96e2087732b4d7240b31fe9fcf168600
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-10-01 12:22:21 +02:00
Daniel Teske
1262310798 Android: androiddeployqt support
Change-Id: I37d706b4e11c6e1353a8ee73378b7d080080678c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-26 17:13:27 +02:00
Daniel Teske
3bb7339fd4 Android: Implement device selection dialog
Change-Id: I1f4f3065a09837414429bbfc68110ada85ea174a
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-09-13 12:34:46 +02:00
Paul Olav Tvete
db78293e7f Generic Android error messages
We want to give better feedback for installation problems and
other issues. There may still be undiscovered ways to mess up the
creator configuration, and we might find them after the string
freeze.

This adds a number of strings that we can use later.
We can add new error codes after the string freeze (and even in
patch releases). This means that even if we can't give people
detailed help for their problem in the UI, at least we give them
a googleable string.

We can then add better messages for the new errors in the next minor
release.

Change-Id: Ida7921fce5142d55144b0ba022de04726872187a
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-08-29 17:07:32 +02:00
Oswald Buddenhagen
417b80c544 make the android => qbs dependency optional
as qbs itself is optional

Change-Id: I1ff2d2f785ca206b379b305e783b9914081712b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-21 17:29:55 +02:00