[Android-development] Hybrid applications with partly native UI?
Harri Pasanen
harri at mpaja.com
Mon Feb 16 16:28:22 CET 2015
Thanks to both of you, food for thought... :)
On 16/02/2015 16:14, Artem Marchenko wrote:
> There are some trials mostly by @achipa to wrap native Android
> controls in QML. E.g.
> http://achipa.blogspot.fi/2014/11/qml-wrappers-for-native-android.html
>
> Essentially you get a 100% native UI + property binding + other Qt
> goodies at a cost of QML animation and Qt graphics. Not unlike a BB10
> approach.
>
> Cheers,
> Artem.
>
>
> On Sun, Feb 15, 2015 at 1:43 PM, Pekka Nikander <pekka.nikander at iki.fi
> <mailto:pekka.nikander at iki.fi>> wrote:
>
> I'm not BogDan, but I did spend some time in trying to understand
> the Qt Android integration.
>
> > I have poor knowledge of the underlying integration between the
> Android and Qt UI.
>
> Unless I'm completely mistaken, the integration tries to use as
> much as possible the public Android APIs and confine with Android
> UI conventions. This is clearly a deliberate design choice --
> there are alternative choices, such as interfacing directly with
> the Android WindowManagerService either through the WindowManager
> API or even directly from C++ over the Binder interface.
>
> That said, a Qt Window is mapped onto an Android SurfaceView,
> which is an Android interface to the underlying OpenGL ES window.
> IIRC, the Java side of Qt runtime creates an SurfaceView, then
> acquires a reference to the underlying OpenGL ES window, passes it
> to the C++ side of the Qt runtime, and draws directly to it using
> C++. However, I never dug very deeply into that side, mostly
> focusing on the WindowManager interactions.
>
> > Hence the question, is it possible to have Qt rendering be
> confined to a native android View?
>
> Well, with a relatively small extension you can most probably
> create an Android SurfaceView pass it to the underlying Qt.
> AFAICS, the biggest problem would be event handling. While the
> Android Java-level events are passed IIRC from the
> QtActivityDelegate to the Qt C++ side, the QtActivityDelegate
> isn't really designed to be extensible. I presume you could
> interface to it directly from your own Activity subclass, though.
> How to do that, exactly, I don't know.
>
> > So have a Qt app think that a particular View on screen is the
> display, while rest of the UI would be Java?
>
> No, I don't think you can do that. You still need to have a Java
> SurfaceView for each Qt window. Of course, if you use just one Qt
> Window and many Widgets within the window, you would probably get
> pretty close.
>
> --Pekka
>
>
> _______________________________________________
> Android-development mailing list
> Android-development at qt-project.org
> <mailto:Android-development at qt-project.org>
> http://lists.qt-project.org/mailman/listinfo/android-development
>
>
>
>
> --
> Artem Marchenko
> http://agilesoftwaredevelopment.com
> http://twitter.com/AgileArtem
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/android-development/attachments/20150216/3f45e224/attachment.html>
More information about the Android-development
mailing list