Today we are making available the Qt 4.7.4 release bundle for all Symbian^3, Symbian Anna, and Symbian Belle devices. The
Qt SDK 1.1.4update has the necessary Symbian Anna and Belle build targets availableallowing application development for Qt 4.7.4. Nokia Store deploymentsare also possible.
This is a big release for Qt developers. In this blog post I’d liketo present an overview of the current Qt deployment situation on Symbiandevices. The later part highlights the most important changes we havein the Qt 4.7.4 release bundle from the Symbian perspective. Those ofyou who know the Qt Symbian deployment history can
skip directly to Qt 4.7.4 section.
Qt deployment on Symbian devicesThe first officially supported Qt release for Symbian devices was Qt4.6.3. It was released together with Qt SDK in June 2010. Followingthis, applications created with this SDK could be deployed to NokiaStore (or Ovi Store as it was known then). Then this year in May 2011 Qt4.7.3 for Symbian with Qt Quick was made available in the Qt SDK 1.1,and Qt Quick applications could be deployed to Nokia Store.
Qt was not available right away as pre-installed in any Symbiandevices when Qt 4.6 was made available for Symbian. In fall 2010 theNokia N8 was released and it was the first Symbian device withpre-installed Qt. Then in the middle of 2011 Symbian Anna was madeavailable with the Qt 4.7 -based bundle with Qt Mobility 1.1. Now thelatest Symbian Anna devices have out-of-the-box support for Qt Quick.
For older S60 3rd and 5th Edition devices Qt is an add-on componentrequiring initial download of Qt libraries on the first Qt applicationinstallation. A special deployment mechanism called
Smart Installer is used to deploy Qt to devices such as these that do not have Qt as pre-installed or in the firmware.
When the user downloads and installs a Qt application, SmartInstaller checks package dependencies and installs Qt and other supportmodules when needed. Modules are also upgraded to newer versions whennecessary. Normally this happens when the user downloads an applicationfrom Nokia Store.
Smart Installer is the main deployment channel for the Qt releasebundle to S60 3rd and 5th Edition devices. Smart Installer also updatesSymbian^3 devices’ pre-installed Qt 4.6.3-based bundle (that resides onthe C: drive), to the Qt 4.7.3-based bundle. Furthermore, an importantreason for Smart Installer deployments is the fact that Symbian^3devices do not have the pre-installed Qt Mobility module. Hence, beforethe application is installed on Symbian^3, often at least the QtMobility module is deployed unless it is already deployed by earlierapplication installations. Developers have always been advised to takeinto account this additional download need because it increases theapplication’s delivery size.
In July 2011 Qt Quick Components 1.0 for Symbian was released with Smart Installer deployments for Symbian Anna devices.
Today’s Qt 4.7.4 bundle is the next big Qt release with many improvements for Symbian OS. This release is shipping already in
the new Symbian Belle devices,like Nokia 700 and Nokia 701, as part of the device firmware. Now weare making it available also to devices with Symbian Anna (andSymbian^3) through Smart Installer deployments and we are also bringingfinalized Qt SDK support.
Qt 4.7.4 release bundle for SymbianThe
Qt 4.7.4 release bundle contains
It is supported in Symbian Anna (and Symbian^3) devices onwards. Most benefits mentioned in the
Qt 4.7.4 release post by Jarmoare valid for Symbian, too. In general, this release has a huge amountof stability, performance and functionality improvements for Symbian.Many of the changes also make Qt better integrated to the Symbianoperating system services.
In
Qt graphics system for Symbian there are bigchanges in how graphics resources are managed in the default OpenVGgraphics system used by Qt applications. We are also introducing theopt-in
OpenGL ES based graphics systemto wider use with better resource management as part of Qt 4.7.4. Bothof these changes improve the use of scarce GPU memory and have bettergraphics memory releasing schemes when applications are moved tobackground. We have also better integration to Symbian OS transitionanimations. This means that when stopping and starting Qt applicationsthere are smoother animations that are also better aligned with the sameeffects presented with Symbian OS Avkon applications.
Regarding
the user interface, Qt Quick Components 1.1 and Qt Quick 1.1 modules provide the biggest improvements. There’s
another post by Sami detailing changes available for components. For both we have also changes explained in the
Qt Quick – What’s New and
Qt Quick Components – What’s New documents. The use of Qt Quick Components allows application to achieve the new
Symbian UI Design Guidelines. This means that Qt applications match and are consistent with the native applications on Symbian Belle devices.
In the “core” of Qt there are plenty of minor improvements and bugfixes to UI features. Often these fixes will improve all style of Qtapplications regardless of the UI technology: QWidgets and graphics viewbased and QML UIs too. For example, on physical keyboard devices NokiaE7 and Nokia E6, text editing key accelerometers (ctrl+c/ctrl+v) worknow out-of-the-box in editors without any need for an application toimplement such copy/paste functionality.
Perhaps the most welcomed UI feature of Qt 4.7.4 is the integration ofQt text input system to the Symbian partial screen text input componentalso known as
split-view input. The split-view input isa new virtual keyboard in Symbian Anna where it is used in many nativeAvkon applications. It allows application content to be visible abovethe split-view keyboard. This is in contrast to the earlier full screeninput that didn’t allow application content to be visible during textinput. In Qt 4.7.4, the split-view is now integrated into all editorwidgets in graphics-viewbased UIs including Qt Quick/QML editors. Bydefault this feature is disabled because the split-view input needsapplication awareness due to layout change in the visual area of theapplication when the new keyboard is opened. It is enabled by settingthe application attribute Qt::AA_S60DisablePartialScreenInputModeto false. Qt Quick Components 1.1 uses this split-view feature too andit will be available when application starts to use the new import com.nokia.symbian 1.1ofthe components. The import 1.0 still uses the full screen input. So inother words, Qt Quick 1.1 or plain-Qt applications turn it on with theapplication attribute but Qt Quick Components 1.1 using applicationswith the new 1.1 components import.
Qt 4.7.4 also enables the new Symbian Belle features like the newiconic toolbar support: QActions can have SVG images and the new SymbianOS toolbar icon set can be accessed via QStyle API. As mentioned, QtQuick Components is provided as an easy way to align the application UIto the new UI style. For example, using StatusBar from the Qt QuickComponents allows an application to automatically provide access to thenew Belle UI’s
status panel feature that is opened by doing touch swipe down gesture on top of the
status bar.
Qt Quick with Qt Quick Components is the recommended UI solution for Symbian applications. In fact we have
documented that old QtGui module widgets on Symbian are deprecatedand developers should use Qt Quick Components instead in newapplication projects. In that document we also have a list of widgetsthat should never be used from QtGui module on Symbian because they havenever been supported or worked properly.
The last new UI feature worth mentioning is the
TV-out supportin Qt 4.7.4. When using TV-out, this feature makes possible to use TVdisplay as an independent screen rather than just clone of the devicescreen. Applications can provide different control view on device screenand a presentation mode with larger resolution on the TV-out display.It works with devices with either
analog 3.5mm composite video output or
HDMI output.By default, in Symbian devices the content shown in TV-out is a cloneof the device screen. From now on, however, parenting a widget to QDesktopWidget::screen(1) and calling show()will turn off cloning and have different content shown instead. ThescreenCount member function and the screenCountChanged signal can beused
to detect the availability of the secondary display, just like onother platforms.
Together with Qt 4.7.4, the Qt Mobility module is updated to version1.2. The main new features are the two new local communications APIs:NFC (Near Field Communication) and Bluetooth. Bluetooth is a basicfeature in all Symbian devices but NFC is a new hardware feature only inlatest device models. The NFC hardware support is however becomingrapidly available. All new Symbian devices – Nokia 603, Nokia 700 andNokia 701 – are NFC-enabled. From the earlier Symbian devices only NokiaC7 is NFC enabled. To find out more on the NFC development check the
Introduction to NFC guide from Nokia Developer and
the general NFC page.
There are
other minor improvementsand lots of bug fixes in Qt Mobility as well. For example, QAudioOutputclass has now a proper support for pausing in Symbian. Earlier, calling
suspend via API was emulated by using stop underneath the implementation that caused delays on doing
resumelater. Video outputs are rendered now with black when nothing isrendered. This improves UIs when QML video and camera elements are used.
The
QML ShaderEffectItem is also available in this bundle. Kim showcased it very nicely in his
earlier post.
There has been lot of effort made in Qt 4.7.4 to
improve the memory management.Applications using Qt 4.7.4 libraries normally consume less RAM thanusing earlier Qt libraries. Symbian platform uses predefined sizes forstacks and heaps. However, application developers need to be verycareful on memory usage. If an application exceeds stack or heap limits,it may crash or fail to complete its task. Crashes that seem to have noreason can often be traced back to insufficient stack and/or heapsizes. Application developers should use
reasonable values for maximum heap size.Either too small or too big value could cause the application’sfailure. Other than RAM, there is very limited video/graphic memory of32 MB especially in Symbian^3 and Symbian Anna devices (
the new devicesthat shipped with Symbian Belle have four times larger GPU memory of128 MB). It’s important that applications using large graphics resourcesfollow
graphic memory handling guidelines.
See also our
Qt 4.7.4 release application compatibility notes from Qt Developer Network.
The rest of this post talks of non-feature aspects of this release:what kind of build targets we have in Qt SDK and how the Symbian supportis aligned with Qt found in Nokia N9. But first, I’ll explain oneinternal change that is good to know.
Qt is in firmware from Belle onwardsFor Symbian Belle users the Qt 4.7.4 bundle is available in thefirmware. In fact, this is the first time Symbian devices have Qt aspart of the firmware (ROM). One reason for this is that more and moreNokia -provided device applications themselves will be dependent on Qt.Because of the dependency, Qt has become integral part of Symbiansoftware stack. Thus it is also necessary to have it as a part of thefirmware rather than in more volatile user memory (C:-drive). One of thefirst Nokia -provided Qt Quick-based applications is the new NokiaStore. Upcoming Symbian SW updates (firmware or add-on SW updates) willroll out more Qt and Qt Quick-based applications.
Since Qt is being updated together with the firmware updates we havemore detailed build version numbering in use. The Qt 4.7.4 bundle wasmade available already earlier this year in the new Symbian Belle withtheir PR1.0 firmware. These devices have the Qt 4.7.401 build version.PR1.01 has 402 build version number. The upcoming Belle release forexisting Symbian devices (Nokia N8, C6-01, C7, E7, E6, X7) is again alittle bit improved Qt (4.7.403) with further bug fixes. Users of thenew Belle devices (Nokia 700, 701, 603) get these fixes in upcomingfirmware versions. For Belle devices there will be no Smart Installerupdates of Qt as users get the latest version by updating the devicefirmware. However, since Qt Quick Components is an add-on for new BellePR1.0X devices and not a part of the firmware it is being deployed usingSmart Installer. In the upcoming Belle PR1.1 firmware updates, Qt QuickComponents 1.1 is delivered in the firmware as well.
For more details on what Qt modules are supported and pre-installed on Symbian devices, see
Qt Creator documentation topic on Symbian development.We also have very detailed information available about what Qt versionsand what modules are supported in different devices and how on
Qt Developer Network’s Support for Symbian document. Most of the time developers do not need to care all these details as Smart Installer ensures if modules need to be deployed.
Qt SDK support for SymbianThe new Qt SDK 1.1.4 has now updated support for the Qt 4.7.4 releasebundle for Symbian devices. It is enabled in two Symbian build targets:
• Qt 4.7.4 for Symbian Belle
• Qt 4.7.4 for Symbian Anna
The Anna target is by default available from offline installer andoptional Belle target only via online installers. Because of Annaupdate, Smart Installer deployments with the Qt 4.7.4 bundle are alsoavailable to Symbian^3 and Anna devices.
The Symbian Anna target is meant to replace the earlier Symbian^3 Qt4.7.3 target and it is compatible with the same set of devices:
all Symbian^3, Symbian Anna as well as latest Symbian Belle.
If you use the Symbian Belle build target, it puts a dependency inthe application package to Symbian Belle devices. If the end user triesto install such application to an earlier device, the applicationinstaller gives a warning of incompatibility. It should be used only ifsuch install restriction is needed for the application.
The Symbian OS native APIs in these build targets come from the OS releases they are named after: Symbian Belle target has
native API available from Belle.
The Qt 4.7.4-based bundle is not supported in S60 5th Edition deviceswhere the last supported Qt version is Qt 4.7.3. To support this Qt SDK1.1.4 has the
Qt 4.7.3 for S60 5th Edition build target (this was earlier named as Symbian^1).
Symbian devices with S60 3rd Edition (feature pack 1 or 2) orgenerally any devices with Qt 4.6.3 are no longer supported in Qt SDK1.1.4. If you want to continue application development with Qt 4.6.3 inSymbian/S60 devices you should use an earlier
Qt SDK 1.1.2release. This 1.1.2 release contained still the Application TRKdebugging tool support that is the best solution for these earlierdevices. There is also build targets available. Later SDKs have onlyCODA debugging functionality that works only on later Symbian releases.Please note that when developing for Qt 4.6.3 you should not use the QtCreator / SDK update mechanism as it will remove the old targets youneed for Qt 4.6.3 development.
If you are developing or updating applications for Symbian Anna (alsoSymbian^3) or Symbian Belle devices you should start using the Qt4.7.4-based bundle and build targets. This allows you to enable thelatest functionality, for example, the new Qt Quick Components 1.1release.
Qt Quick Components 1.1 and Qt SDKQt SDK 1.1.4 ships a separate Qt Quick Components 1.1 for Symbiansupport. Its tooling support installs to all relevant Qt 4.7.4-basedbuild targets: Symbian Anna, Symbian Belle, Qt Simulator and Desktop.The Qt Quick Components 1.1 support is replacing Qt Quick Components 1.0for Symbian. This means that applications will get dependency to the Qt4.7.4 bundle.
Qt Quick Components uses features from Qt 4.7.4. For example,features in Qt Quick 1.1 for left-to-right layouts support andsplit-view inputs are from Qt 4.7.4.
Since Qt Quick Components 1.1 (import com.nokia.symbian 1.1)delivers several usability improvements and bug fixes, it is highlyrecommended that developers take that into use in their Qt applications.
See
Sami’s blog post for more information about Qt Quick Components 1.1 release.
Nokia N9, MeeGo 1.2 Harmattan alignmentThe Symbian Qt 4.7.4 bundle is having the same Qt modules and APIs asthe Nokia N9 with MeeGo 1.2 Harmattan. Of course both haveplatform-specific APIs that are also accessible with Qt SDK but thehigh-level Qt APIs are aligned. When the platform-specific UIconsistency is needed the Qt Quick Components set for Harmattan orSymbian needs to be used. If plain Qt Quick 1.1 is used, it’s verystraightforward to get the application to work in both platforms. It isrelative easy to use Qt Quick Components for Symbian and MeeGo in a sameapplication project to achieve application portability between Nokia N9and Symbian devices.
See the porting guide on how to do this.
How about Qt 4.8 in Symbian?Currently
Qt 4.8 Release Candidate is available for the
desktop development only.There is work on going inside Nokia that would make Qt 4.8 availableand deployed into future Symbian releases. However, at the momentapplication developers should focus on features available in Qt 4.7.4and earlier versions when creating Symbian applications. Many of theimprovements in Qt 4.8 are transparent optimizations in Symbian Qt port,so they do not require application changes.
转自:
http://labs.qt.nokia.com/2011/11/08/qt-4-7-4-release-bundle-for-symbian-news/