34

Click here to load reader

下午3 intel fenghaitao_mee_go api and application development

Embed Size (px)

Citation preview

Page 1: 下午3 intel fenghaitao_mee_go api and application development

MeeGo API and Application Development

Haitao FengApril 2011

Page 2: 下午3 intel fenghaitao_mee_go api and application development

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

Page 3: 下午3 intel fenghaitao_mee_go api and application development

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

Page 4: 下午3 intel fenghaitao_mee_go api and application development

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

− …

Page 5: 下午3 intel fenghaitao_mee_go api and application development

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

− …

Page 6: 下午3 intel fenghaitao_mee_go api and application development

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

− …

Page 7: 下午3 intel fenghaitao_mee_go api and application development

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

Page 8: 下午3 intel fenghaitao_mee_go api and application development

8

QtCore

• The QtCore module contains core non-GUI functionality.

• Classes include:

− QCoreApplication

− QAbstractAnimation

− QAbstractState

− QFile

− QThread

− QFuture

− QHash

− QIODevice

− …

Page 9: 下午3 intel fenghaitao_mee_go api and application development

9

QtGui

• The QtGui module extends QtCore with GUI

functionality.

• Classes include:

− QApplication

− QWidget

− QButton

− QGraphicsObject

− QGraphicsItem

− QGaphicsView

− Qpainter

− …

Page 10: 下午3 intel fenghaitao_mee_go api and application development

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

− …

Page 11: 下午3 intel fenghaitao_mee_go api and application development

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

− …

Page 12: 下午3 intel fenghaitao_mee_go api and application development

12

QtNetwork

• The QtNetwork module provides classes to make

network programming easier and portable.

• Classes include:

− QLocalServer

− QLocalSocket

− QNetworkInterface

− QTcpServer

− QTcpSocket

− QUdpSocket

− …

Page 13: 下午3 intel fenghaitao_mee_go api and application development

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

− …

Page 14: 下午3 intel fenghaitao_mee_go api and application development

14

QtScript

• The QtScript module provides classes for making

Qt application scriptable.

• Classes include:

− QScriptEngine

− QScriptContext

− QScriptClass

− QScriptExtensionPlugin

− …

Page 15: 下午3 intel fenghaitao_mee_go api and application development

15

QtSql

• The QtSql module provides access to SQL

databases.

• Classes include:

− QSqlDatabase

− QSqlDriver

− QSqlDriverPlugin

− QSqlQuery

− QSqlIndex

− …

Page 16: 下午3 intel fenghaitao_mee_go api and application development

16

QtSvg

• The QtSvg module provides classes for displaying

and creating SVG files.

• Classes include:

− QGraphicsSvgItem

− QSvgGenerator

− QSvgRenderer

− QSvgWidget

Page 17: 下午3 intel fenghaitao_mee_go api and application development

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

− …

Page 18: 下午3 intel fenghaitao_mee_go api and application development

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

− …

Page 19: 下午3 intel fenghaitao_mee_go api and application development

19

QtXmlPattern

• The QtXmlPattern module provides support for

XPath, XQuery, XSLT and XML schema validation.

• Classes include:

− QXmlQuery

− QXmlResultItems

− QXmlSchema

− QXmlSchemaValidator

− …

Page 20: 下午3 intel fenghaitao_mee_go api and application development

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

Page 21: 下午3 intel fenghaitao_mee_go api and application development

21

QtServiceFramework

• The QtServiceFramework module allows clients to

discover and instantiate arbitrary services.

• Classes include:

− QServiceContext

− QServiceFilter

− QServiceManager

− QServicePluginInterface

− …

Page 22: 下午3 intel fenghaitao_mee_go api and application development

22

QtLocation

• The QtLocation module provides geographical

support for position and map use.

• Classes include:

− QGeoAddress

− QGeoMapData

− QGeoMapObject

− QGeoRoute

− …

Page 23: 下午3 intel fenghaitao_mee_go api and application development

23

QtContacts

• The QtContacts module offers classes that allow

you to manage address book contacts.

• Classes include:

− QContact

− QContactManager

− QContactManagerEngine

− QContactRelationship

− …

Page 24: 下午3 intel fenghaitao_mee_go api and application development

24

QtMessaging

• The QtMessaging module provides access to

messaging services.

• Classes include:

− QMessage

− QMessageAccount

− QMessageManager

− QMessageService

− …

Page 25: 下午3 intel fenghaitao_mee_go api and application development

25

QtMultimediaKit

• The QtMultimediaKit module delivers an easy to

use interface to multimedia functions.

• Classes include:

− QAbstractVideoBuffer

− QAbstractVideoSurface

− QAudioFormat

− QCamera

− QCameraControl

− QMediaPlayer

− QRadioTuner

− …

Page 26: 下午3 intel fenghaitao_mee_go api and application development

26

QtSystemInfo

• The QtSystemInfo module allows clients to discover the system information.

• Classes include:

− QSystemBatteryInfo

− QSystemDeviceInfo

− QSystemDisplayInfo

− QSystemStorageInfo

− …

Page 27: 下午3 intel fenghaitao_mee_go api and application development

27

QtPublishSubscribe

• The QtPublishSubscribe module enables applications to read item values, navigate through and subscribe to change notifications.

• Classes include:

− QValueSpacePublisher

− QValueSpaceSubscriber

Page 28: 下午3 intel fenghaitao_mee_go api and application development

28

QtSensors

• The QtSensors module offers classes that allow you to access sensor information like accelerometer and orientation.

• Classes include:

− QAccelerometer

− QAmbientLightSensor

− QCompass

− QMagnetrometer

− …

Page 29: 下午3 intel fenghaitao_mee_go api and application development

29

QtOrganizer

• The QtOrganizer module offers classes that allow

you to manager calendar, scheduling and personal data.

• Classes include:

− QOrganizerItem

− QOrganizerCollection

− QOrganizerEvent

− QOrganizerEventAttendee

− …

Page 30: 下午3 intel fenghaitao_mee_go api and application development

30

QtFeedback

• The QtFeedback module offers classes that allow you to manage tactile feedback and device vibration.

• Classes include:

− QFeedbackEffect

− QFeedbackFileEffect

− QFeedbackHapticsEffect

− QFeedbackInterface

− …

Page 31: 下午3 intel fenghaitao_mee_go api and application development

31

QtGallery

• The QtGallery module provides access to a gallery of documents.

• Classes include:

− QAbstractGallery

− QDocumentGallery

− QGalleryFilter

− QGalleryResultSet

− …

Page 32: 下午3 intel fenghaitao_mee_go api and application development

32

QtVersit

• The QtVersit module allows the management of

Versit documents including as vCard.

• Classes include:

− QVersitContactExporter

− QVersitContactImporter

− QVersitOrganizerExporter

− QVersitOrganizerImporter

− …

Page 33: 下午3 intel fenghaitao_mee_go api and application development

33

QtConnectivity

• The QtConnectivity module provides APIs for working with local devices.

• Classes include:

− QBluetoothAddress

− QBluetoothSocket

− QBluetoothServiceInfo

− QRfcommServer

− …

Page 34: 下午3 intel fenghaitao_mee_go api and application development

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

− …