Click here to load reader
Upload
csdnmobile
View
783
Download
2
Tags:
Embed Size (px)
Citation preview
MeeGo API and Application Development
Haitao FengApril 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
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
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
− …
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
− …
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
− …
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:
− QtScript
− QtSql
− QtSvg
− QtWebKit
− QtXml
−QtXmlPatterns
− QtCore
− QtGui
− QtDeclarative
− QtDBus
− QtNetwork
− QtOpenGL
8
QtCore
• The QtCore module contains core non-GUI functionality.
• Classes include:
− QCoreApplication
− QAbstractAnimation
− QAbstractState
− QFile
− QThread
− QFuture
− QHash
− QIODevice
− …
9
QtGui
• The QtGui module extends QtCore with GUI
functionality.
• Classes include:
− QApplication
− QWidget
− QButton
− QGraphicsObject
− QGraphicsItem
− QGaphicsView
− Qpainter
− …
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
− …
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
− …
12
QtNetwork
• The QtNetwork module provides classes to make
network programming easier and portable.
• Classes include:
− QLocalServer
− QLocalSocket
− QNetworkInterface
− QTcpServer
− QTcpSocket
− QUdpSocket
− …
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
− …
14
QtScript
• The QtScript module provides classes for making
Qt application scriptable.
• Classes include:
− QScriptEngine
− QScriptContext
− QScriptClass
− QScriptExtensionPlugin
− …
15
QtSql
• The QtSql module provides access to SQL
databases.
• Classes include:
− QSqlDatabase
− QSqlDriver
− QSqlDriverPlugin
− QSqlQuery
− QSqlIndex
− …
16
QtSvg
• The QtSvg module provides classes for displaying
and creating SVG files.
• Classes include:
− QGraphicsSvgItem
− QSvgGenerator
− QSvgRenderer
− QSvgWidget
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
− …
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
− …
19
QtXmlPattern
• The QtXmlPattern module provides support for
XPath, XQuery, XSLT and XML schema validation.
• Classes include:
− QXmlQuery
− QXmlResultItems
− QXmlSchema
− QXmlSchemaValidator
− …
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:
−QtSensors
− QtOrganizer
− QtFeedback
− QtGallery
− QtVersit
− QtConnectivity
−QtServiceFramework
− QtLocation
− QtContacts
− QtMessaging
− QtMultimediaKit
− QtSystemInfo
−QtPublishSubscribe
21
QtServiceFramework
• The QtServiceFramework module allows clients to
discover and instantiate arbitrary services.
• Classes include:
− QServiceContext
− QServiceFilter
− QServiceManager
− QServicePluginInterface
− …
22
QtLocation
• The QtLocation module provides geographical
support for position and map use.
• Classes include:
− QGeoAddress
− QGeoMapData
− QGeoMapObject
− QGeoRoute
− …
23
QtContacts
• The QtContacts module offers classes that allow
you to manage address book contacts.
• Classes include:
− QContact
− QContactManager
− QContactManagerEngine
− QContactRelationship
− …
24
QtMessaging
• The QtMessaging module provides access to
messaging services.
• Classes include:
− QMessage
− QMessageAccount
− QMessageManager
− QMessageService
− …
25
QtMultimediaKit
• The QtMultimediaKit module delivers an easy to
use interface to multimedia functions.
• Classes include:
− QAbstractVideoBuffer
− QAbstractVideoSurface
− QAudioFormat
− QCamera
− QCameraControl
− QMediaPlayer
− QRadioTuner
− …
26
QtSystemInfo
• The QtSystemInfo module allows clients to discover the system information.
• Classes include:
− QSystemBatteryInfo
− QSystemDeviceInfo
− QSystemDisplayInfo
− QSystemStorageInfo
− …
27
QtPublishSubscribe
• The QtPublishSubscribe module enables applications to read item values, navigate through and subscribe to change notifications.
• Classes include:
− QValueSpacePublisher
− QValueSpaceSubscriber
28
QtSensors
• The QtSensors module offers classes that allow you to access sensor information like accelerometer and orientation.
• Classes include:
− QAccelerometer
− QAmbientLightSensor
− QCompass
− QMagnetrometer
− …
29
QtOrganizer
• The QtOrganizer module offers classes that allow
you to manager calendar, scheduling and personal data.
• Classes include:
− QOrganizerItem
− QOrganizerCollection
− QOrganizerEvent
− QOrganizerEventAttendee
− …
30
QtFeedback
• The QtFeedback module offers classes that allow you to manage tactile feedback and device vibration.
• Classes include:
− QFeedbackEffect
− QFeedbackFileEffect
− QFeedbackHapticsEffect
− QFeedbackInterface
− …
31
QtGallery
• The QtGallery module provides access to a gallery of documents.
• Classes include:
− QAbstractGallery
− QDocumentGallery
− QGalleryFilter
− QGalleryResultSet
− …
32
QtVersit
• The QtVersit module allows the management of
Versit documents including as vCard.
• Classes include:
− QVersitContactExporter
− QVersitContactImporter
− QVersitOrganizerExporter
− QVersitOrganizerImporter
− …
33
QtConnectivity
• The QtConnectivity module provides APIs for working with local devices.
• Classes include:
− QBluetoothAddress
− QBluetoothSocket
− QBluetoothServiceInfo
− QRfcommServer
− …
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
− …