Refer:
Http://meego.com/developers/meego-architecture/meego-architecture-layer-view
Http://meego.com/developers/meego-architecture/meego-architecture-domain-view
Http://meego.com/developers/meego-architecture/meego-architecture-api-view
Http://meego.com/developers/meego-api
Let's review MeeGo's architecture. In terms of hierarchy, we can see that MeeGo developers: What is MeeGo? There is a little difference in layering.
In this figure, the original Middle Layer is divided into two parts: one is the encapsulated API, and the other is the Core OS Layer merged with the Linux kernel. This is just a matter of classification and there is no essential difference. I personally prefer the original diagram to be clearer, but it doesn't matter. for developers, including applications, services, and kernel module development, we need to focus on Core OS and the MeeGo API provided on it. We will view the MeeGo architecture based on this figure, and view the architecture from the top to the bottom based on the order of reference documents (generally, I am looking up from the bottom, a little strange ).
UX Layer
To provide user experience for different platforms, MeeGo Russia provides UX for handheld devices and netbooks. The netbooks use MX, Clutter/MX, and handheld devices use the MTF, Multi-Touch Framework, including touch, input, and gesture. Application products developed by developers are also located at this layer. They are triggered by corresponding UI architecture and User Interaction Events.
MeeGo API Layer
The APIS provided by MeeGo are the class libraries that developers can use. Most of the APIS come from open-source community projects that are integrated in the next layer of Core OS. I plan to learn about these APIs in the next step and know the capabilities that can be called. MeeGo uses QT as its development environment. The following is an API diagram:
Meego APIs are divided into QT and QT mobility. Qt provides a graphical interface similar to VC and builds our applications on it. QT is fully object-oriented and easy to expand, allowing true componentization. Qt mobility provides QT APIs for mobile devices. Meego 1.1 is QT 4.7 and QT mobility 1.0. Applications developed based on these APIs are considered to be compatible and can run on the meego based platform. These APIs will also be forward compatible. Therefore, we recommend that you use meego for development on meego.
API. But if meego API, what is the difference between this and andriod or IOS. Therefore, although the Community does not recommend, the platform API is a very important part.
Plateform API. In addition to the meego API, meego sdk1.1 also provides the core layer middleware API described below. The community does not recommend that we use these APIs to guarantee future compatibility.
QT and QT quick are used as the development environment.
We are going to provide some small examples, mainly to see what capabilities the meego 1.1 SDK provides and how to use it, so that we do not have to spend on learning and using it during development. Refer to the meego 1.1 API to describe the API in two dimensions. For platform APIs, refer to: http://apidocs.meego.com/1.1/platform/html/index.html.
MeeGo API services
Service |
Content |
Application Frameworks |
Frameworks for building application UIS |
Communications |
Social and human interaction, connectivity and networking. |
Graphics |
Generating and rendering 2D and 3D graphics |
Location |
Identifying geographical location of the device or, for example, landmarks. |
Multimedia |
Media Playback and recording, streaming |
Personal Information Management |
Personal information, such as contacts, calendar entries, and business cards. |
System |
Access to device resources |
MeeGo API libraries
Library |
Content |
OpenGL ES 1.1 |
A low-level API for producing hardware-accelerated 2D and 3D graphics |
OpenGL ES 2.0 |
A current version of OpenGL ES. features a programmable 3D graphics pipeline. |
Qt API |
Qt is a cross-platform application and UI framework. Using Qt, you can write web-enabled applications once and deploy them processing SS desktop, mobile and embedded operating systems without rewriting the source code. |
Qt Mobility API |
Qt APIs that enable access to your mobile device specific alities. Qt Mobility APIs enable cross-platform mobile application development. |
Core OS layer
For Linux kernel and all open-source community projects of middleware, you need to pay attention to QT, which is the cross-platform development environment officially selected by meego. It provides the foundation for developers to develop Native applications and web runtime applications. By learning about core OS, you can know what computing, APIs, and development the platform uses. This classification is similar to that of maemo and is clearer than that of moblin.
Through this figure, we can understand what meego includes. These correspond to APIs.
Security-Security framework and enablers: Provides platform Security and user identity confirmation. RPM provides integrity, MD5, and other security protection, but MeeGo does not seem to have any security architecture for the system. In the development environment of MeeGo 1.1, do not have too many expectations for this part.
- Account: provides a solution for storing user accounts, including IM, email, and calendar, and provides Account APIs.
- Single Sign: Provides secure storage of creden。 and the authentication plug-in architecture of different services.
- Integrity Protection Framework: Implements privacy protection for execution, configuration, and data files.
- Certificate Management: stores and verifies security certificates, which can be email, Wi-Fi, and browsers.
- Software release security: Software release includes installation and updates
- Resource Access Management Framework: mandatory access control, and the access control policy of the entire Device
- Security Adaptation: Abstraction of platform-specific security and encryption
Data Management-Meta-data storage. You can obtain and manage the metadata of a file. For example, you can search for metadata of a media file. This is a highlight of MeeGo and worth noting.
- Content Framework: Track, which provides indexes and cloud data acquisition, and searches for different data types (including media files and documents.
Software Management-Package Management and software lifecycle. For software package management, the repo of MeeGo adopts the rpm package method, and Meego adopts rpm management. Software management is a very large category for software stores. Because Nokia and Intel have their own software stores, this Part may only design software installation and updates.
System-Device State and Resource Policy Managmeent, Sensor, and Context. The user processes the device status/mode, time management, policy control, and enables service and sensor abstraction. The upstream API provides an abstract logical interface to adapt to the underlying hardware of different manufacturers.
- System Management: manages the device status and time, such as synchronizing/setting the clock and standby time. You do not know the profile, that is, whether the flight mode is classified into this category.
- Resource Policy: Based on the plug-in framework, user silver pass, food, and System Policy Management
- Enable Service
- Context Framework: High level APO, which is applicable to different scenarios (contexts) of your devices. I don't know much about this. In the following small API examples, it may be clearer.
- Sensor framework: provides an interface to convert the API of the hardware sensor into a logic sensor, which can be compatible with hardware devices of different manufacturers.
- Device mode Adaptation: Hardware Abstraction Layer for device mode information, such as watchdog and temperature sensor.
- Touch and vibration Adaptation: Hardware Abstraction Layer for touch and vibration devices.
Location-Location Framework, related LBS capabilities
- Positioning framework: Open-Source Project GeoClue is used. Fang Liang, an Intel engineer, introduced the following. This approach has two disadvantages: first, heavy workload; second, GPS exclusive for a process. If other applications have similar requirements, they can only say sorry. In this case, the introduction of GPS
Daemon means that Daemon exclusively occupies the GPS device, analyzes NMEA frames to obtain location information, and provides location information to applications. In this way, GPS Daemon can serve multiple processes at the same time, which greatly reduces the workload of programmers and eliminates the need to write code for NMEA data analysis. With the development of technology, more and more positioning methods appear in the world, programmers want to use a variety of Positioning Technology in the program, automatic selection of the optimal positioning technology to obtain location information. In this case, GeoClue appears. GeoClue is a set of middleware that provides location-related information on the D-BUS architecture, following LGPL. The location information includes the location, address, and motion speed. There are several providers in GeoClue that provide location-related information. The same Provider may provide several different types of information. For example, gypsy can provide location information and speed. Different providers may also provide the same type of information, for example, both gypsy and hostip can provide location information. The difference is that the former information is obtained through GPS, while the latter information is obtained through services that convert IP addresses to longitude and latitude on the Internet. GeoClue provides 2 sets of API supply programs, one is C language API, the other is D-BUS
API, you can choose according to the actual situation.
- Positioning Adaptation: locates the hardware abstraction layer of the original device, such as GPS.
Graphics-X11, OpenGL, input and Display drivers. Supports 2D and 3D formats, including multi-country text rendering and hardware acceleration.
- Font Management: Font Management
- Input Adaptation: hardware is abstracted as input adaptation, such as hardware buttons (Power keys, cameras, high volume/small volume), keyboards, touch screens, etc.
- X11
- OpenGl ES: Provides the Khronos interface and supports OpenGL, OpenGLES, and EGL. It also contains platform-specific GL/ES drivers and library implementations. OpenGL is very important. In MeeGo API reference, there are three parts: OpenGL, QT 4.7 and Qt Mobility 1.0.
- Display and image Adaptation: Platform-specific abstraction related to Framebuffer and display panel.
Essentials-System essential libraries: provides basic System software packages as System tools and libraries.
Multimedia-Multimedia related enablers and drivers. It provides audio and video playback, streaming media, and image functions, especially audio and video data processing (retrieval, demultiplexing, encoding and decoding, searching, etc.), including sub-systems. Most importantly, GStreamer is used to process multimedia and Pluse Audio is used to process Audio.
- Image Adaptation: Use GStreamer to process codec and containers. GStreamer is an important open-source project selected by MeeGo. Previously, Moblin used Helex.
- Camera Adaptation: gstreamer is used, and the interface is camerabin.
- UPnP: Universal plug-and-play UPnP stack (UPnP profile of audio and video)
- Gstreamer: Provides playback, streaming media, and image functions through plunin.
- Audio Adaptation: Platform-specific modules of the user's pulseaudio
- Pluse audio: process incoming, forward, and backward processing, and output of silver tickets. Act as a proxy between an audio application and the audio hardware.
Personal Information Management-Calendar, Contacts, Backup, and Sync. In China, the PIM service is usually fooled by the operator to only perform network synchronization, and the fee is charged. PIM manages user data on a device, including calendar, contacts, and people. It obtains the status stars of the device, such as the device location and cable status, including the following subsystems: Calendar attendance, contact engine, mail engine and backup framework (this is not clear, backup is usually carried out through the PC client, including import and export, so it is not clear), synchronization framework (through USB, the transmission layer, such as Bluetooth, may also include IP addresses, and synchronize calendar, email, and contact information between different devices)
Communication-VOIP, IM, Presence, Cellular Telephony, and IP Connectivity, provides mobile communication, IP Phone, IM, rendering, Bluetooth and Internet connection services.
- IP Phone, Im, and presentation: the open-source telepathy Project is a modular communication framework that implements real-time communication through pluggable backend protocols. Telepathy is not very good in the operating system of Attu, and then a pidgin is down.
- Cellular framework: the open-source ofono project is based on the plugin structure and supports multiple platforms and modem.
- Connman: Connection Manager
- Bluetooth: bluez and related extensions
- Communication Adaptation: it is a platform-specific module used for WiFi, Bluetooth devices, and ofono plug-ins of different platforms and modem.
Qt-Qt, QtWRT, and Qt Mobility provide cross-platform development tools, such as QT, QT moblity, QT webkit, and QT WebRuntime.
- Qt: QT is often a misunderstanding, that is, it is a UI tool, QT actually far exceeds this, it is the toolkit of QT application and UI
- Qt mobility
- Qt WebKit: meego uses QT WebKit as the layout engine. It can display web content (HTML, XML, XHTML, SVG, CSS, JavaScript, etc.) in the application)
- Web runtime: provides a standard JS environment for running web widgets and extending through the API unique to the device (providing access to other subsystems ).
Kernel-Linux Kernel and core drivers: Linux Kernel, which does not need to be explained.Mobile phone processing capabilities are not as powerful as pc, but many hardware devices are added. Haredware Adaptation includes drivers and modem. For specific Hardware, Hardware-based APIs such as specific sensors and Hardware codec APIs can be provided through Hardware Adaptation. The hardware adaptation includes the following content:
Sensor
Device Mode
Haptics and Vibra touch screen and vibration Motor
Audio
Camera
Imageing and Video
Location
Cellular
Connectivity
Input
Display and Graphics
Related Links: My MeeGo articles