《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > MeeGo嵌入式操作系統的研究及應用開發
MeeGo嵌入式操作系統的研究及應用開發
來源:電子技術應用2012年第10期
韓德強1,馮云賀1,劉增輝2
1.北京工業大學 計算機學院,北京100124; 2.北京電子科技職業學院,北京100029
摘要: 論述了在Linux平臺下搭建MeeGo嵌入式操作系統應用程序開發環境的方法和步驟,給出了使用Qt Creator工具開發MeeGo應用程序的流程。通過在Atom D510嵌入式實驗平臺和QEMU虛擬機下安裝MeeGo操作系統,設計實現了具有3D操作界面且集成辦公、娛樂、微博聊天、地圖查詢四大模塊為一體的應用程序。該應用程序具有友好的人機交互界面和良好的可移植性,體現了“一次編寫,到處運行”的理念。
中圖分類號: TP316.5
文獻標識碼: A
文章編號: 0258-7998(2012)10-0030-04
The research and application development of MeeGo embedded operating system
Han Deqiang1,Feng Yunhe1,Liu Zenghui2
1.College of Computer, Beijing University of Technology, Beijing 100124,China; 2.Beijing Vocational College of Electronic Science, Beijing 100029,China
Abstract: This paper discusses the methods and steps of establishing MeeGo application development environment on Linux platform and the procedures of MeeGo application development using Qt Creator tools. By installing MeeGo operating system on Atom D510 embedded test platform and on QEMU virtual machine, a 3D user interface application which integrates office module, entertainment module, microblog and chat module, map search module has been designed and implemented. The application has a friendly interactive interface and good portability indicating the concept of "write once, run everywhere".
Key words : embedded systems;MeeGo;Qt;program portability

    MeeGo嵌入式操作系統由英特爾和諾基亞倡導,旨在為手機、上網本、平板電腦、互聯網電視、車載信息娛樂系統和多媒體電話等智能設備提供操作系統解決方案,并且有助于這些設備實現無縫集成。MeeGo融合了英特爾Moblin與諾基亞Maemo系統的精華,繼承了分別掌握底層架構和終端設備優勢的兩大巨頭的優秀基因。該嵌入式操作系統基于Linux架構,不僅支持所有x86處理器平臺,還跨平臺支持非x86架構的設備。面向跨平臺的多元化設備,MeeGo為開發者提供了一致性的API,選擇Qt框架作為應用程序的開發工具[1]。MeeGo SDK1.x中集成了基于Qt 4.7.x的Qt Creator 2.0,并引進了功能強大的Qt Quick,使得應用程序更加快速流暢地在MeeGo平臺上運行。

1 MeeGo嵌入式操作系統架構
1.1 MeeGo的分層模型

    MeeGo嵌入式操作系統的分層結構如圖1所示,共包括三層:用戶體驗層、應用開發層、操作系統核心層。

    用戶體驗層為不同的終端設備提供不同的應用框架,比如上網本采用了Clutter和MX界面開發庫繪制界面;手持設備采用了MeeGo特有的觸控框架,包括觸摸、輸入法、手勢,為用戶提供觸控體驗。MeeGo用戶體驗層集成了個人社交網絡服務和底層基礎庫,全面支持網絡服務、多媒體服務、最新電話技術等標準。強大的工具和動畫效果簡化了用戶界面的定制。
    應用開發層涵蓋了MeeGo的應用開發接口,目前MeeGo release版本包含了Qt4.7、Qt mobility 1.0、Open GL ES 1.1和Open GL ES 2.0相關的類和接口。
    操作系統核心層包含了所有中間件和操作系統的服務域以及硬件適配層。內核方面,MeeGo 1.0采用了Linux Kernel 2.6.33,支持多任務、本地應用開發框架、動畫效果設計的開發框架、3D加速、最新Linux文件系統(btrfs)等。MeeGo 1.1支持Linux Kernel 2.6.35,新增支持Intel Atom Z6xx處理器和GCC4.5工具鏈。MeeGo 1.2支持Linux Kernel 2.6.37,新增Policy 開發框架和電源管理功能。
1.2 MeeGo的域視圖
    MeeGo嵌入式操作系統的域視圖及各域的具體內容如圖2所示[3],共包括12個域:安全域、系統域、個人信息管理域、軟件管理域、數據管理域、多媒體域、定位服務域、通信域、內核域、核心組件域、Qt域和圖形域。

    內核域是應用程序和硬件層之間的橋梁,支持MeeGo的硬件平臺需要提供三類相關組件(內核驅動、核心架構組件、內核配置文件)。內核驅動是一套需要與硬件進行交互的驅動程序,例如MeeGo notebook 1.1中集成了攝像頭、USB、聲卡、顯卡、藍牙及觸摸屏等硬件驅動程序;核心架構組件是一個額外的軟件包,將它附加到內核中以支持某些硬件的相關功能(如固件);內核配置文件為特定設備提供了詳細的配置信息,包括設備架構、處理器類型、設備驅動配置菜單、網絡支持以及內核調制選項等。
    Qt域提供了跨平臺開發工具(Qt、Qt Mobility、Qt Webkit、Qt WebRuntime),其中Qt提供了應用程序和用戶界面的開發工具包,Qt Mobility為MeeGo提供了開發移動應用程序的接口,Qt WebKit能夠快速創建包含實時網絡內容和服務的應用程序。
2 搭建開發環境
2.1 Linux下安裝配置Qt Creator

    在Linux和Windows環境下均可以開發MeeGo應用程序。鑒于MeeGo操作系統是基于Linux內核并且是完全開源的,故選擇了在Ubuntu 10.04 LTS系統上搭建MeeGo應用程序的開發環境。
    為搭建MeeGo應用程序開發環境,在Ubuntu 10.04 LTS上安裝配置QtCreator需要4個步驟,如圖3所示。

    (1)配置軟件庫安裝源
    ①添加軟件源:
    deb http://repo.meego.com/MeeGo/sdk/host/repos/ubuntu/10.04//
    ②為軟件倉庫增加公鑰:
    $ gpg --keyserver pgpkeys.mit.edu --recv 0BC7BEC479FC1F8A
    $ gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -
    ③更新軟件源:
    $ sudo apt-get update
    ④測試軟件源是否正確安裝:
    $ apt-cache policy madde
    (2)安裝MeeGo SDK
    $ sudo apt-get install meego-sdk-ia32
    $ sudo apt-get meego-sdk-armv7l
    如果開發基于x86架構設備的應用程序,相應的SDK需要安裝meego-sdk-ia32;如果開發基于ARM架構設備的應用程序,則相應的SDK需要安裝meego-sdk-armv7l。
    (3)安裝MeeGo目標機交叉編譯環境
    ①下載并安裝目標機交叉編譯環境的壓縮文件包:
    $ sudo mad-admin create -f meego-netbook-ia32-1.1.2
    ②檢查目標機交叉編譯環境是否正確安裝:
    $ mad -t meego-netbook-ia32-1.1.2 pscreate -t qt-simple qthello
    $ cd qthello
    $ mad -t meego-netbook-ia32-1.1.2 qmake
    $ mad -t meego-netbook-ia32-1.1.2 make
    ③檢查目標機交叉編譯環境是否正確運行:
    $ file build/qthello
    (4)配置Qt Creator
    添加MeeGo交叉編譯器,打開Qt Creator,選擇Tools > Options > Qt4 > Qt Versions。點擊“添加”按鈕,路徑選擇為usr/lib/madde/linux-i686/targets/meego-netbook-ia32-1.1.2/bin/qmake,點擊Rebuild按鈕。如果不進行交叉編譯,則可以添加MeeGo SDK 的Qt版本,步驟同上,但路徑選擇為/opt/meego/meego-sdk-qt/bin/qmake。
2.2 搭建基于Atom D510嵌入式實驗平臺的開發環境
    Atom D510處理器針對MeeGo操作系統進行了優化,在Atom D510嵌入式實驗平臺下搭建MeeGo應用開發環境需要4個步驟,如圖4所示。

 

 

    (1)在Atom D510平臺上安裝MeeGo上網本操作系統
    由于Atom D510嵌入式實驗平臺提供了UBS接口,最簡單快捷的安裝方式是使用U盤安裝。首先,下載U盤鏡像制作工具Win32DiskImager.exe和MeeGo上網本鏡像文件;其次,制作MeeGo上網本系統啟動U盤;最后,用該U盤重啟實驗平臺,進入MeeGo上網本系統安裝界面進行安裝。
    (2)安裝OpenSSH sever
    ①安裝OpenSSH sever。從主機Qt Creator向遠程實體設備部署程序時,需要進行文件拷貝,因此需要在實體設備上安裝OpenSSH服務。
    $ sudo zypper install openssh-server
    ②啟動SSH服務:
    $ sudo /etc/init.d/sshd start
    ③將OpenSSH加入初始化序列中,開機自動啟動:
    $ sudo chkconfig --add sshd
    (3)安裝gdbserver
    如果進行遠程調試應用程序,需要安裝gdbsever。
    $ sudo zypper install gdb-gdbserver
    (4)配置實際設備連接
    打開Qt Creator,選擇Tools→Options→Projects→MeeGo Device Configurations。點擊“添加”按鈕,添加一個程序運行的實際設備。設置Device type為Real Device、Authentication type為Password、Username為root、Password為meego。SSH使用默認端口號22,Gdb Server使用默認端口號10000(如果該端口被占用可使用其他端口)。
    除此之外,如果開發主機與實際設備使用交叉網線進行通信,則兩者的IP地址必須配置在同一網段內。如果使用局域網進行通信,則開發主機與實際設備接入同一局域網即可。
2.3 QEMU虛擬機下搭建開發環境
    在QEMU虛擬機下搭建開發環境,需要安裝MeeGo運行時(即運行在QEMU中的MeeGo操作系統鏡像)。安裝配置QEMU運行時需要4個步驟,如圖5所示。

    (1)安裝MeeGo運行時
    $ sudo mad-admin create -f -e meego-netbook-ia32-qemu -1.1.2-runtime
    如果運行時安裝成功,則執行下述指令:
    $ sudo mad-admin list runtimes
屏幕將顯示meego-netbook-ia32-qemu-1.1.2-runtime       (installed)安裝MeeGo SDK。
    (2)在Qt Creator中配置MeeGo仿真器
    打開Qt Creator,選擇Tools→Options→Projects→MeeGo Device Configurations。點擊“添加”按鈕,為仿真器添加一個runtime(運行時)。設置Device type為MeeGo Emulator、Authentication type為Password、Username為root、Password為meego。SSH使用默認端口號為6666。Gdb Server使用默認端口號為13619(如果該端口被占用可使用其他端口)。
    (3)啟動MeeGo運行時
    $ sudo mad remote –r meego-netbook-ia32-qemu-1.1.2-runtime poweron
    如果運行時不能正常啟動,可能有兩個原因:①開發主機BIOS禁用了Virtualization Technology,進入主機BIOS開啟Virtualization Technology即可解決問題;②開發主機沒有加載KVM模塊。
    對于Intel處理器,執行$ sudo modprobe kvm_intel指令可加載KVM模塊
    對于AMD處理器,執行$ sudo modprobe kvm_amd指令可加載KVM模塊
    (4)用SSH登錄運行在QEMU中的MeeGo鏡像
    $ ssh meego@127.0.0.1 -p 6666
    MADDE啟動QEMU時,完成了從主機6666端口到MeeGo鏡像SSH端口的重定向。目前MeeGo 鏡像中有如下兩個帳號:①用戶名:meego  密碼:meego;②用戶名:root  密碼:meego。
3 應用程序開發流程
    (1)新建一個Qt工程。在Qt Creator開始界面,點擊右下角Creat Project按鈕,創建Qt工程。
    (2)根據目標設備選擇合適的應用程序模板。開發MeeGo上網本應用程序,需要選擇Qt C++ Program工程中的Mobile Qt Application模板。
    (3)使用工程向導,逐步設置工程的名稱、路徑、Qt版本信息、程序類信息、工程管理信息。程序類信息包括:類的名稱、基類、頭文件、源文件和Form文件。工程管理信息列出了工程的路徑和工程中所有的文件。
    (4)編寫相應的應用程序代碼,設置應用程序運行環境。如果目標設備為MeeGo虛擬機,則將Device configuration設置成meego emulator;否則將其設置為實體設備。設置完成后,依次點擊編譯和運行按鈕,應用程序即可部署到目標設備上并運行。
4 應用程序集的設計與開發
4.1 總體設計方案

    應用程序集總體結構如圖6所示,由主操作界面、辦公模塊、通信模塊、娛樂模塊、地圖模塊組成。通過主操作界面可啟動不同子模塊,子模塊之間不能直接互相切換,子模塊必須返回主操作界面才可啟動其他子模塊。通過子模塊界面可啟動相應的應用程序。

    進入子模塊后,主操作界面切換為子模塊的操作界面。兩個模塊的主操作界面的結構完全相同,只是六面體每個面的功能不同。以辦公模塊為例,其上下兩個面的功能為返回主操作界面,前后左右4個面分別代表了文本編輯程序、表格處理程序、圖片瀏覽程序和保留的擴展程序接口。
    六面體的每個面均使用OpenGL逆時針正向繪制。六面體通過加載相應的紋理代表不同的模塊或者應用程序。首先加載用來生成紋理的圖片,然后生成紋理,最后加載紋理[4]。在繪制面之前調用glLoadName()函數,使用名字棧為六面體的面設置名字。通過調用facceAtPosition()私有函數確定光標下的面。程序使用面的名字和shift_flag變量來實現主操作界面和子模塊操作界面的相互切換。
    (2)子模塊的設計與實現
    辦公模塊設計實現了圖片瀏覽程序、文本編輯程序、表格處理程序;通信模塊設計實現了新浪微博客戶端和局域網通信程序;娛樂模塊設計實現了連連看游戲、貪吃蛇游戲和拼圖游戲;地圖模塊設計實現了北京地鐵線路查詢程序和Google在線地圖程序。
    在此只介紹地圖模塊中的北京地鐵線路查詢程序。該程序涵蓋了北京地鐵七條干線,并實現了任意兩個站點之間的最短路徑查詢和動態顯示。該程序使用圖存儲地鐵線路信息。地鐵線路圖中共有115個站點,每個站點分配了唯一的ID標識為圖中的一個頂點。如果兩個站點直接相連,則將這兩個站點之間弧的權值設置為1,否則設置為10 000,表示這兩個站點沒有直接相連。程序使用著名的弗洛伊德最短路徑算法,通過圖的權值矩陣求任意兩個站點之間的最短路徑。通過定時器和變換畫刷的顏色來實現查詢結果的動態顯示,每0.7 s更新一次地圖,如果用戶正在進行線路查詢,則變換畫刷的顏色閃動線路上站點。
4.3 應用程序設計舉例
    以Google在線地圖為例,本應用程序使用MeeGo Qt域的Qt WebKit進行開發,總體的開發流程與本文第3節“應用程序開發流程”相同。在此,只敘述程序代碼的編寫。
    (1)為了使用Qt WebKit,需要在工程的.pro文件中添加QT += webkit,并在相應頭文件中添加#include
<QwebView>。
    (2)新建一個QWebView類的控件對象:
    QWebView *mapview = new QwebView();
    (3)調用該控件對象的setUrl函數,設置其顯示內容為Google在線地圖:
    mapview->setUrl(QUrl("http://ditu.google.cn/"));
    (4)設置控件的窗口名字并將其顯示:
    mapview->setWindowTitle("Google在線地圖");
    mapview->show();
    本文論述了MeeGo嵌入式操作系統的運行機制和應用程序的開發流程,以及在Linux平臺上搭建MeeGo應用程序開發環境和使用Qt Creator開發應用程序集的方法和步驟。
參考文獻
[1] 英特爾開源技術中心.MeeGoTM開源項目白皮書[Z].2010.
[2] The Linux foundation.MeeGo architecture layer view [EB/OL].[2010-10-20].https://www.meego.com/developers/ meegoarchitecture/meego-architecture-layer-view.htm.
[3] The Linux foundation.MeeGo architecture domain view[EB/OL].[2010-10-20].https://www.meego.com/developers/meego-architecture/meego-architecture-domain-view.htm.
[4] WRIGHT R,LIPCHAK B.OpenGL超級寶典(第四版)[M]. 張琪,付飛,譯.北京:人民郵電出版社,2010.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99视频在线精品国自产拍免费观看| 欧美一区亚洲二区| 一本色道久久88精品综合| 在线精品视频一区二区三四| 国产日产亚洲精品系列| 国产精品久久久久久av福利软件| 欧美成年人视频| 久久综合中文| 久久中文字幕导航| 久久久久久尹人网香蕉| 先锋影音网一区二区| 亚洲欧美日韩区| 午夜宅男欧美| 亚洲欧美日韩在线高清直播| 亚洲欧美欧美一区二区三区| 亚洲香蕉成视频在线观看| 亚洲一区二区三区色| 亚洲特黄一级片| 亚洲视频电影在线| 亚洲一区二区三区四区五区午夜| 亚洲深夜福利| 亚洲在线视频观看| 亚洲欧美精品suv| 羞羞色国产精品| 久久精品成人一区二区三区蜜臀 | 久久高清免费观看| 欧美一区在线看| 久久久久久久综合色一本| 久久精品视频一| 久久在线播放| 欧美成人免费在线| 欧美日本国产一区| 国产精品ⅴa在线观看h| 国产精品日韩欧美一区二区| 国产精品制服诱惑| 国产一区二区久久久| 国产综合视频在线观看| 欧美日韩在线第一页| 欧美电影免费观看网站| 欧美承认网站| 欧美日韩成人一区| 国产精品理论片| 国产日韩欧美在线看| 精品成人国产在线观看男人呻吟| 亚洲电影免费在线观看| 99热在这里有精品免费| 亚洲视频在线观看视频| 欧美一级久久久久久久大片| 亚洲高清一二三区| 在线亚洲免费| 欧美在线在线| 欧美激情视频网站| 国产精品视频你懂的| 伊人蜜桃色噜噜激情综合| 亚洲精品一区二区网址| 亚洲欧美在线x视频| 亚洲欧洲视频在线| 亚洲欧美日韩精品| 美女主播视频一区| 国产精品久久综合| 一区二区三区亚洲| 亚洲视频一二区| 亚洲国内自拍| 亚洲欧美久久久| 麻豆精品在线视频| 国产精品久久婷婷六月丁香| 在线观看欧美亚洲| 亚洲综合三区| 日韩视频在线播放| 久久久久久尹人网香蕉| 欧美性大战xxxxx久久久| 精品福利免费观看| 亚洲自拍偷拍视频| 日韩午夜激情av| 久久香蕉精品| 国产精品免费久久久久久| 亚洲国产另类久久精品| 午夜一区二区三区在线观看| 夜夜嗨av一区二区三区中文字幕| 久久久精品欧美丰满| 国产精品av久久久久久麻豆网| 精品白丝av| 新狼窝色av性久久久久久| 国产一区二区av| 欧美电影美腿模特1979在线看 | 夜夜嗨av一区二区三区四季av| 欧美在线综合视频| 亚洲欧美电影在线观看| 欧美国产一区在线| 激情欧美丁香| 欧美亚洲在线观看| 午夜宅男久久久| 欧美性理论片在线观看片免费| 在线成人免费视频| 欧美一区二区免费| 亚洲女同精品视频| 欧美日韩国产成人精品| 在线成人性视频| 久久精品国产v日韩v亚洲| 欧美一区二区三区四区视频| 欧美午夜免费影院| 亚洲精品欧美激情| 亚洲精品久久久久久久久| 久久久久久97三级| 国产亚洲免费的视频看| 亚洲午夜精品网| 亚洲伊人网站| 欧美涩涩视频| 夜夜嗨av色一区二区不卡| 99精品热视频| 欧美黄色视屏| 1024精品一区二区三区| 亚洲第一精品电影| 久久综合色播五月| 激情欧美一区| 亚洲国产日韩欧美| 美乳少妇欧美精品| 精品99视频| 亚洲国产一区二区视频| 免费影视亚洲| 最新日韩在线视频| 日韩手机在线导航| 欧美日韩国产综合网| 99国产精品国产精品毛片| 亚洲视频一二三| 欧美性色综合| 亚洲欧美电影在线观看| 欧美一区二区女人| 国产午夜精品视频| 久久激情视频| 狂野欧美性猛交xxxx巴西| 永久久久久久| 日韩亚洲在线观看| 欧美午夜精品久久久久久孕妇| 一区二区三区四区五区视频| 亚洲一区免费视频| 国产精品手机视频| 久久爱www久久做| 美女国产一区| 亚洲精品国产视频| 亚洲一区二区精品在线| 国产精品青草综合久久久久99| 亚洲尤物视频网| 久久久久**毛片大全| 在线观看精品一区| 一区二区电影免费观看| 国产精品jizz在线观看美国| 亚洲欧美第一页| 乱码第一页成人| 亚洲人妖在线| 午夜精品久久久久久久久久久久久 | 亚洲国产日韩一区| 一本大道久久精品懂色aⅴ| 国产精品二区在线| 欧美在线啊v| 欧美精品二区三区四区免费看视频| aa成人免费视频| 久久爱www.| 亚洲人成精品久久久久| 亚洲免费在线观看| 黑人操亚洲美女惩罚| 日韩视频一区二区三区在线播放免费观看| 欧美巨乳在线观看| 亚洲一区二区伦理| 美女诱惑黄网站一区| 亚洲深夜福利视频| 久久女同精品一区二区| 亚洲精品日韩久久| 久久国产综合精品| 亚洲免费观看高清在线观看 | 欧美阿v一级看视频| 一区二区三区欧美激情| 久久久精品国产99久久精品芒果| 91久久国产综合久久91精品网站| 亚洲一区二区三区精品视频| 国产一区在线免费观看| 日韩午夜电影在线观看| 国产欧美一区二区白浆黑人| 亚洲日本在线视频观看| 国产精品亚洲精品| 日韩视频在线一区二区| 国产精品一区二区欧美| 亚洲卡通欧美制服中文| 国产视频欧美视频| 一区二区日韩伦理片| 韩日欧美一区二区三区| 亚洲一区高清| 亚洲国产高清视频| 欧美在线观看视频在线| 亚洲另类一区二区| 久久免费视频网站| 亚洲性视频h| 欧美日本精品| 亚洲国产日韩在线| 国产精品综合久久久| 一区二区久久| 亚洲成人资源| 久久精品首页| 亚洲字幕在线观看| 欧美日韩国产999|