Qt-contributors-summit-2013-Qt Android Planning CS 2013

From Qt Wiki
Jump to: navigation, search

Developing Qt for Android

This session covers development of the Qt for Android port, and is aimed at those who have contributed to the Android port, and those who want to join the development. No previous Android knowledge required.

Agenda

  • Short introduction to Qt for Android Architecture (5 minutes)
  • What needs to be done? Presentation of tasks we have already identified, and brainstorming for tasks we have missed. (10 minutes)
  • What do we do now? Priorities, volunteers, and identifying topics that need to be discussed in detail. (25 minutes)

This is a very short session, but we can schedule new sessions as needed for more detailed discussions.

Appendix: Tasks we have already identified

  • Improve the unboxing experience ("love at first sight"): QTBUG-32092
  • Autotests: QTBUG-32079
  • Automatically set app permissions in Creator, based on what the selected modules need: QTCREATORBUG-9694
  • Multimedia: camera support: QTBUG-32095
  • Multimedia: low-latency audio: QTBUG-30480
  • Extending Java code
    • Adding Java code to your own app: QTBUG-32090
    • Calling Java APIs from C++ (JNI): QTBUG-32091
  • Building applications without using Qt Creator: QTBUG-29738
  • Support for Android action bar: QTBUG-32002
  • Mobility APIs
    • Bluetooth
    • NFC
  • Bearer Management: QTBUG-30394
  • Better diagnostics in Qt Creator: QTCREATORBUG-9690
  • WebView: QTBUG-32093
  • Better bundling (loading plugins directly from the app's lib directory): QTBUG-29916
  • Font size compatibility with iOS, desktop, or other mobile platforms: QTBUG-32096
  • Improved deployment of QML apps: QTBUG-32195
  • SSL
  • Device-independent pixel support for QML (resolution independence)
  • Add support for remaining sensors: QTBUG-30531
  • Convenience on top of Android APIs (Android helper library)
  • Multimedia: Widgets
  • Support for multiple top-level windows
  • Native combobox, messagebox, and similar
  • Android style for Qt Quick Controls
  • Common tooling for mobile (icons, supported orientation, etc.)
  • Splash screens
  • Expand the manifest editor in Qt Creator
  • ARMv5 support
  • MIPS support
  • Application lifecycle: QTBUG-29069

(We do not think that we will be able to do all this for Qt 5.2)

Notes from the sessions

Session 1

  • Application permissions – opt-in vs. opt-out
  • Tested devices overview – currently on wiki; do we need a better way?
  • Build step – do not put generated code in the source directory
  • SSL – high priority, but there are legal issues
    • There are SSL libraries on the device, but only accessible through Java, i.e. too slow
    • Qt Project will not ship SSL libraries: people will have to add the SSL libraries themselves
  • Font sizes…
  • Location is P1 for Android mobility
    • Hard to do autotests for mobility
  • Performance on different devices
    • Compiling Qt in debug mode is a trap
  • Do we add features in 5.1.x patch releases for Android?
    • Yes, we can do that because it's labeled as a tech preview
    • No, it is too much effort, and detracts from 5.2 development
    • Conclusion: it depends
  • Debug log feedback mechanism?
    • It would be useful to have a way to get debug information back from deployed apps

Session 2

  • It is difficult to handle resources on Android
    • Currently creator defaults to using assets, but assets can be very slow
    • We recommend using qrc
    • For large resources that do not fit into the Google Play store 50 MB limit, qrc can generate rcc files that can be put in obb
    • This topic deserves a blog
  • How do we access accounts on the device?
    • All cases like this can be solved by writing Java/JNI code
    • We are developing a JNI convenience API
    • This too needs a blog
  • Build failure: creator only shows a red triangle with no text
    • In this case, the path to 'ant' was wrong in the settings
    • Creator must have better diagnostics for these cases