上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
下午3 intel fenghaitao_mee_go api and application development
1. MeeGo API and Application Development
Haitao Feng
April 2011
2. MeeGo SDK Overview
• Languages
− C++ with Qt extensions
• API
− MeeGo API, based on Qt
• Tools
− Qt Creator IDE
− Qt Designer, Qt Quick Designer
− Qt Simulator
− QEMU virtual machine
− Qt Debugger, Qt Quick Debugger
2
3. MeeGo 1.2 API
•EGL 1.4
− Required for OpenGL ES API
•OpenGL ES 1.1
− For fixed function hardware, emphasizes image quality,
graphics acceleration, and high performance.
•OpenGL ES 2.0
− Enables full programmable 3D graphics.
•Qt 4.7.2
− The Qt Framework
•Qt Mobility 1.2
− The Qt Mobility Framework
3
4. EGL 1.4
• EGL is an interface between rendering APIs such as
OpenGL ES and an underlying native window system.
• EGL provides mechanisms for creating rendering surfaces
onto which clients APIs can draw, creating graphics
contexts for client APIs, and synchronizing drawing by
client APIs as well as native platform rendering APIs.
• APIs include:
−eglInitialize
−eglCreateWindowSurface
−eglCreateContext
−eglSwapBuffers
−…
4
5. OpenGL ES 1.1
•Note: Before starting your programming project, decide
whether to use OpenGL ES 1.1 or 2.0, because they are not
fully compatible with each other.
•OpenGL ES 1.1
− Defined relative to the OpenGL 1.5 specification
− Backwards compatible with OpenGL ES 1.0
•APIs include:
− glClear
− glTexImage2D
− glEnable
− glDisable
− glRotate
− glScale
−…
5
6. OpenGL ES 2.0
•OpenGL ES 2.0
− features a programmable 3D graphics pipeline with the ability to
create shader and program objects and the ability to write vertex
and fragment shaders in the OpenGL ES Shading Language
− does not support the fixed function transformation and fragment
pipeline of OpenGL ES 1.x
•APIs include:
− glCreateProgram
− glCreateShader
− glCompilerShader
− glLinkProgram
−…
6
7. Qt 4.7.2
• Qt is a cross-platform application and UI
development framework, included as a part of
MeeGo 1.2. The following Qt 4.7.2 modules are
supported:
− QtCore − QtScript
− QtGui − QtSql
− QtDeclarative − QtSvg
− QtDBus − QtWebKit
− QtNetwork − QtXml
− QtOpenGL −
QtXmlPatterns
7
10. QtDeclarative
• The Qt Declarative module provides a declarative
framework for building highly dynamic, custom
user interfaces.
• Classes include:
− QDeclarativeEngine
− QDeclarativeView
− QDeclarativeItem
− QDeclarativeContext
− QDeclarativeExpression
− QDeclarativeExtensionPlugin
−…
10
11. QtDBus
• The QtDBus module is a Unix-only library that you
can use to perform inter-process communication
using the D-Bus protocol.
• Classes include:
− QDBusConnection
− QDBusInterface
− QDBusMessage
− QDBusArgument
−…
11
12. QtNetwork
• The QtNetwork module provides classes to make
network programming easier and portable.
• Classes include:
− QLocalServer
− QLocalSocket
− QNetworkInterface
− QTcpServer
− QTcpSocket
− QUdpSocket
−…
12
13. QtOpenGL
• The QtOpenGL module offers classes that make it
easy to use OpenGL| ES in Qt applications.
• Classes include:
− QGLContext
− QGLFormat
− QGLFrameBufferObject
− QGLPixelBuffer
− QGLShaderProgram
− QGLWidget
−…
13
14. QtScript
• The QtScript module provides classes for making
Qt application scriptable.
• Classes include:
− QScriptEngine
− QScriptContext
− QScriptClass
− QScriptExtensionPlugin
−…
14
16. QtSvg
• The QtSvg module provides classes for displaying
and creating SVG files.
• Classes include:
− QGraphicsSvgItem
− QSvgGenerator
− QSvgRenderer
− QSvgWidget
16
17. QtWebKit
• The QtWebKit module provides a web browser
engine as well as classes to render and interact
with web content.
• Classes include:
− QWebView
− QGraphicsWebView
− QWebElement
− QWebFrame
− QWebPage
− QWebHistory
−…
17
18. QtXml
• The QtXml module provides a stream reader and
writer for XML documents, and C++
implementations of SAX and DOM.
• Classes include:
− QDomDocument
− QDomDocumentType
− QDomElement
− QXmlReader
− QXmlSimpleReader
−…
18
19. QtXmlPattern
• The QtXmlPattern module provides support for
XPath, XQuery, XSLT and XML schema validation.
• Classes include:
− QXmlQuery
− QXmlResultItems
− QXmlSchema
− QXmlSchemaValidator
−…
19
20. Qt Mobility 1.2
• Qt Mobility 1.2 API is a collection of APIs and
frameworks targeted for mobile devices, included
as a part of MeeGo 1.2. The following Qt Mobility
modules are supported:
−QtServiceFramewo −QtSensors
rk − QtOrganizer
− QtLocation − QtFeedback
− QtContacts − QtGallery
− QtMessaging − QtVersit
− QtMultimediaKit − QtConnectivity
− QtSystemInfo
−
QtPublishSubscribe
20
21. QtServiceFramework
• The QtServiceFramework module allows clients to
discover and instantiate arbitrary services.
• Classes include:
− QServiceContext
− QServiceFilter
− QServiceManager
− QServicePluginInterface
−…
21
22. QtLocation
• The QtLocation module provides geographical
support for position and map use.
• Classes include:
− QGeoAddress
− QGeoMapData
− QGeoMapObject
− QGeoRoute
−…
22
23. QtContacts
• The QtContacts module offers classes that allow
you to manage address book contacts.
• Classes include:
− QContact
− QContactManager
− QContactManagerEngine
− QContactRelationship
−…
23
25. QtMultimediaKit
• The QtMultimediaKit module delivers an easy to
use interface to multimedia functions.
• Classes include:
− QAbstractVideoBuffer
− QAbstractVideoSurface
− QAudioFormat
− QCamera
− QCameraControl
− QMediaPlayer
− QRadioTuner
−…
25
26. QtSystemInfo
• The QtSystemInfo module allows clients to
discover the system information.
• Classes include:
− QSystemBatteryInfo
− QSystemDeviceInfo
− QSystemDisplayInfo
− QSystemStorageInfo
−…
26
27. QtPublishSubscribe
• The QtPublishSubscribe module enables
applications to read item values, navigate through
and subscribe to change notifications.
• Classes include:
− QValueSpacePublisher
− QValueSpaceSubscriber
27
28. QtSensors
• The QtSensors module offers classes that allow
you to access sensor information like
accelerometer and orientation.
• Classes include:
− QAccelerometer
− QAmbientLightSensor
− QCompass
− QMagnetrometer
−…
28
29. QtOrganizer
• The QtOrganizer module offers classes that allow
you to manager calendar, scheduling and personal
data.
• Classes include:
− QOrganizerItem
− QOrganizerCollection
− QOrganizerEvent
− QOrganizerEventAttendee
−…
29
30. QtFeedback
• The QtFeedback module offers classes that allow
you to manage tactile feedback and device
vibration.
• Classes include:
− QFeedbackEffect
− QFeedbackFileEffect
− QFeedbackHapticsEffect
− QFeedbackInterface
−…
30
31. QtGallery
• The QtGallery module provides access to a gallery
of documents.
• Classes include:
− QAbstractGallery
− QDocumentGallery
− QGalleryFilter
− QGalleryResultSet
−…
31
32. QtVersit
• The QtVersit module allows the management of
Versit documents including as vCard.
• Classes include:
− QVersitContactExporter
− QVersitContactImporter
− QVersitOrganizerExporter
− QVersitOrganizerImporter
−…
32
33. QtConnectivity
• The QtConnectivity module provides APIs for
working with local devices.
• Classes include:
− QBluetoothAddress
− QBluetoothSocket
− QBluetoothServiceInfo
− QRfcommServer
−…
33
34. MeeGo Application Development
• Qt Creator IDE
− Cross-OS
− Sample Applications
− UI Designer for Qt and Qml
− Advanced editor
− Toolchain selection
− QEMU / Simulator selection
− Debugging for Qt and Qml
−…
34