下午3 intel fenghaitao_mee_go api and application development

Preview:

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

− …

Recommended