999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MeeGo嵌入式操作系統(tǒng)的研究及應(yīng)用開發(fā)*

2012-06-03 09:15:06韓德強(qiáng)馮云賀劉增輝
電子技術(shù)應(yīng)用 2012年10期
關(guān)鍵詞:程序設(shè)置環(huán)境

韓德強(qiáng) ,馮云賀 ,劉增輝

(1.北京工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,北京100124;2.北京電子科技職業(yè)學(xué)院,北京100029)

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

1 MeeGo嵌入式操作系統(tǒng)架構(gòu)

1.1 MeeGo的分層模型

MeeGo嵌入式操作系統(tǒng)的分層結(jié)構(gòu)如圖1所示,共包括三層:用戶體驗(yàn)層、應(yīng)用開發(fā)層、操作系統(tǒng)核心層。

用戶體驗(yàn)層為不同的終端設(shè)備提供不同的應(yīng)用框架,比如上網(wǎng)本采用了Clutter和MX界面開發(fā)庫繪制界面;手持設(shè)備采用了MeeGo特有的觸控框架,包括觸摸、輸入法、手勢,為用戶提供觸控體驗(yàn)。MeeGo用戶體驗(yàn)層集成了個(gè)人社交網(wǎng)絡(luò)服務(wù)和底層基礎(chǔ)庫,全面支持網(wǎng)絡(luò)服務(wù)、多媒體服務(wù)、最新電話技術(shù)等標(biāo)準(zhǔn)。強(qiáng)大的工具和動畫效果簡化了用戶界面的定制。

應(yīng)用開發(fā)層涵蓋了MeeGo的應(yīng)用開發(fā)接口,目前MeeGo release 版 本 包 含 了 Qt4.7、Qt mobility 1.0、Open GL ES 1.1 和 Open GL ES 2.0 相關(guān)的類和接口。

操作系統(tǒng)核心層包含了所有中間件和操作系統(tǒng)的服務(wù)域以及硬件適配層。內(nèi)核方面,MeeGo 1.0采用了Linux Kernel 2.6.33,支持多任務(wù)、本地應(yīng)用開發(fā)框架、動畫效果設(shè)計(jì)的開發(fā)框架、3D加速、最新Linux文件系統(tǒng)(btrfs)等。 MeeGo 1.1 支持 Linux Kernel 2.6.35,新增支持 Intel Atom Z6xx處理器和 GCC4.5工具鏈。MeeGo 1.2支持 Linux Kernel 2.6.37, 新增 Policy開發(fā)框架和電源管理功能。

1.2 MeeGo的域視圖

MeeGo嵌入式操作系統(tǒng)的域視圖及各域的具體內(nèi)容如圖2所示[3],共包括12個(gè)域:安全域、系統(tǒng)域、個(gè)人信息管理域、軟件管理域、數(shù)據(jù)管理域、多媒體域、定位服務(wù)域、通信域、內(nèi)核域、核心組件域、Qt域和圖形域。

內(nèi)核域是應(yīng)用程序和硬件層之間的橋梁,支持MeeGo的硬件平臺需要提供三類相關(guān)組件(內(nèi)核驅(qū)動、核心架構(gòu)組件、內(nèi)核配置文件)。內(nèi)核驅(qū)動是一套需要與硬件進(jìn)行交互的驅(qū)動程序,例如MeeGo notebook 1.1中集成了攝像頭、USB、聲卡、顯卡、藍(lán)牙及觸摸屏等硬件驅(qū)動程序;核心架構(gòu)組件是一個(gè)額外的軟件包,將它附加到內(nèi)核中以支持某些硬件的相關(guān)功能(如固件);內(nèi)核配置文件為特定設(shè)備提供了詳細(xì)的配置信息,包括設(shè)備架構(gòu)、處理器類型、設(shè)備驅(qū)動配置菜單、網(wǎng)絡(luò)支持以及內(nèi)核調(diào)制選項(xiàng)等。

Qt域提供了跨平臺開發(fā)工具(Qt、Qt Mobility、Qt Webkit、Qt WebRuntime),其中Qt提供了應(yīng)用程序和用戶界面的開發(fā)工具包,Qt Mobility為MeeGo提供了開發(fā)移動應(yīng)用程序的接口,Qt WebKit能夠快速創(chuàng)建包含實(shí)時(shí)網(wǎng)絡(luò)內(nèi)容和服務(wù)的應(yīng)用程序。

2 搭建開發(fā)環(huán)境

2.1 Linux下安裝配置Qt Creator

在Linux和Windows環(huán)境下均可以開發(fā)MeeGo應(yīng)用程序。鑒于MeeGo操作系統(tǒng)是基于Linux內(nèi)核并且是完全開源的,故選擇了在Ubuntu 10.04 LTS系統(tǒng)上搭建MeeGo應(yīng)用程序的開發(fā)環(huán)境。

為搭建MeeGo應(yīng)用程序開發(fā)環(huán)境,在 Ubuntu 10.04 LTS上安裝配置QtCreator需要4個(gè)步驟,如圖3所示。

圖 3 Ubuntu 10.04 LTS安裝配置 Qt Creator流程圖

(1)配置軟件庫安裝源

①添加軟件源:1

②為軟件倉庫增加公鑰:

③更新軟件源:

④測試軟件源是否正確安裝:

(2)安裝 MeeGo SDK

如果開發(fā)基于x86架構(gòu)設(shè)備的應(yīng)用程序,相應(yīng)的SDK需要安裝meego-sdk-ia32;如果開發(fā)基于ARM架構(gòu)設(shè)備的應(yīng)用程序,則相應(yīng)的SDK需要安裝meegosdk-armv7l。

(3)安裝MeeGo目標(biāo)機(jī)交叉編譯環(huán)境

①下載并安裝目標(biāo)機(jī)交叉編譯環(huán)境的壓縮文件包:

②檢查目標(biāo)機(jī)交叉編譯環(huán)境是否正確安裝:

③檢查目標(biāo)機(jī)交叉編譯環(huán)境是否正確運(yùn)行:

(4)配置 Qt Creator

添加 MeeGo交叉編譯器,打開 Qt Creator,選擇 Tools>Options>Qt4>Qt Versions。點(diǎn)擊“添加”按鈕,路徑選擇為usr/lib/madde/linux-i686/targets/meego-netbook-ia32-1.1.2/bin/qmake,點(diǎn)擊Rebuild按鈕。如果不進(jìn)行交叉編譯,則可以添加MeeGo SDK的Qt版本,步驟同上,但路徑選擇為/opt/meego/meego-sdk-qt/bin/qmake。

2.2 搭建基于Atom D510嵌入式實(shí)驗(yàn)平臺的開發(fā)環(huán)境

Atom D510處理器針對MeeGo操作系統(tǒng)進(jìn)行了優(yōu)化,在Atom D510嵌入式實(shí)驗(yàn)平臺下搭建MeeGo應(yīng)用開發(fā)環(huán)境需要4個(gè)步驟,如圖4所示。

圖4 搭建開發(fā)環(huán)境流程圖

(1)在Atom D510平臺上安裝MeeGo上網(wǎng)本操作系統(tǒng)

由于Atom D510嵌入式實(shí)驗(yàn)平臺提供了UBS接口,最簡單快捷的安裝方式是使用U盤安裝。首先,下載U盤鏡像制作工具Win32DiskImager.exe和MeeGo上網(wǎng)本鏡像文件;其次,制作 MeeGo上網(wǎng)本系統(tǒng)啟動 U盤;最后,用該U盤重啟實(shí)驗(yàn)平臺,進(jìn)入MeeGo上網(wǎng)本系統(tǒng)安裝界面進(jìn)行安裝。

(2)安裝 OpenSSH sever

①安裝OpenSSH sever。從主機(jī)Qt Creator向遠(yuǎn)程實(shí)體設(shè)備部署程序時(shí),需要進(jìn)行文件拷貝,因此需要在實(shí)體設(shè)備上安裝OpenSSH服務(wù)。

②啟動SSH服務(wù):

③將OpenSSH加入初始化序列中,開機(jī)自動啟動:

(3)安裝 gdbserver

如果進(jìn)行遠(yuǎn)程調(diào)試應(yīng)用程序,需要安裝gdbsever。

(4)配置實(shí)際設(shè)備連接

打 開 Qt Creator, 選 擇 Tools→Options→Projects→MeeGo Device Configurations。點(diǎn)擊“添加”按鈕,添加一個(gè)程序運(yùn)行的實(shí)際設(shè)備。設(shè)置Device type為Real Device、Authentication type 為 Password、Username 為 root、Password為meego。SSH使用默認(rèn)端口號22,Gdb Server使用默認(rèn)端口號10000(如果該端口被占用可使用其他端口)。

除此之外,如果開發(fā)主機(jī)與實(shí)際設(shè)備使用交叉網(wǎng)線進(jìn)行通信,則兩者的IP地址必須配置在同一網(wǎng)段內(nèi)。如果使用局域網(wǎng)進(jìn)行通信,則開發(fā)主機(jī)與實(shí)際設(shè)備接入同一局域網(wǎng)即可。

2.3 QEMU虛擬機(jī)下搭建開發(fā)環(huán)境

在QEMU虛擬機(jī)下搭建開發(fā)環(huán)境,需要安裝MeeGo運(yùn)行時(shí)(即運(yùn)行在QEMU中的MeeGo操作系統(tǒng)鏡像)。安裝配置QEMU運(yùn)行時(shí)需要4個(gè)步驟,如圖5所示。

圖5 安裝配置QEMU運(yùn)行時(shí)流程圖

(1)安裝MeeGo運(yùn)行時(shí)

如果運(yùn)行時(shí)安裝成功,則執(zhí)行下述指令:

(2)在 Qt Creator中配置 MeeGo仿真器

打 開 Qt Creator, 選 擇 Tools→Options→Projects→MeeGo Device Configurations。點(diǎn)擊“添加”按鈕,為仿真器添加一個(gè)runtime(運(yùn)行時(shí))。設(shè)置 Device type為 MeeGo Emulator、Authentication type 為 Password、Username 為 root、Password為meego。SSH使用默認(rèn)端口號為6666。Gdb Server使用默認(rèn)端口號為13619(如果該端口被占用可使用其他端口)。

(3)啟動MeeGo運(yùn)行時(shí)

如果運(yùn)行時(shí)不能正常啟動,可能有兩個(gè)原因:①開發(fā)主機(jī)BIOS禁用了Virtualization Technology,進(jìn)入主機(jī)BIOS開啟Virtualization Technology即可解決問題;②開發(fā)主機(jī)沒有加載KVM模塊。

對于Intel處理器,執(zhí)行$sudo modprobe kvm_intel指令可加載KVM模塊

對于AMD處理器,執(zhí)行$sudo modprobe kvm_amd指令可加載KVM模塊

(4)用SSH登錄運(yùn)行在QEMU中的MeeGo鏡像

MADDE啟動QEMU時(shí),完成了從主機(jī)6666端口到MeeGo鏡像SSH端口的重定向。目前MeeGo鏡像中有如下兩個(gè)帳號:①用戶名:meego 密碼:meego;②用戶名:root 密碼:meego。

3 應(yīng)用程序開發(fā)流程

(1)新建一個(gè)Qt工程。在Qt Creator開始界面,點(diǎn)擊右下角Creat Project按鈕,創(chuàng)建Qt工程。

(2)根據(jù)目標(biāo)設(shè)備選擇合適的應(yīng)用程序模板。開發(fā)MeeGo上網(wǎng)本應(yīng)用程序,需要選擇Qt C++Program工程中的Mobile Qt Application模板。

(3)使用工程向?qū)В鸩皆O(shè)置工程的名稱、路徑、Qt版本信息、程序類信息、工程管理信息。程序類信息包括:類的名稱、基類、頭文件、源文件和Form文件。工程管理信息列出了工程的路徑和工程中所有的文件。

(4)編寫相應(yīng)的應(yīng)用程序代碼,設(shè)置應(yīng)用程序運(yùn)行環(huán)境。如果目標(biāo)設(shè)備為MeeGo虛擬機(jī),則將Device configuration設(shè)置成meego emulator;否則將其設(shè)置為實(shí)體設(shè)備。設(shè)置完成后,依次點(diǎn)擊編譯和運(yùn)行按鈕,應(yīng)用程序即可部署到目標(biāo)設(shè)備上并運(yùn)行。

4 應(yīng)用程序集的設(shè)計(jì)與開發(fā)

4.1 總體設(shè)計(jì)方案

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

4.2 設(shè)計(jì)

(1)主操作界面的設(shè)計(jì)與實(shí)現(xiàn)

主操作界面使用OpenGL繪制了具有3D特效、可旋轉(zhuǎn)縮放的六面體。六面體上下兩個(gè)面的紋理設(shè)置為MeeGo的LOGO圖片,前后左右4個(gè)面分別代表了辦公模塊、通信模塊、娛樂模塊和地圖模塊。通過鼠標(biāo)雙擊,即可進(jìn)入相應(yīng)的子模塊。主操作界面的立體和展開示意圖如圖7所示。

進(jìn)入子模塊后,主操作界面切換為子模塊的操作界面。兩個(gè)模塊的主操作界面的結(jié)構(gòu)完全相同,只是六面體每個(gè)面的功能不同。以辦公模塊為例,其上下兩個(gè)面的功能為返回主操作界面,前后左右4個(gè)面分別代表了文本編輯程序、表格處理程序、圖片瀏覽程序和保留的擴(kuò)展程序接口。

六面體的每個(gè)面均使用OpenGL逆時(shí)針正向繪制。六面體通過加載相應(yīng)的紋理代表不同的模塊或者應(yīng)用程序。首先加載用來生成紋理的圖片,然后生成紋理,最后加載紋理[4]。在繪制面之前調(diào)用glLoadName()函數(shù),使用名字棧為六面體的面設(shè)置名字。通過調(diào)用facceAtPosition()私有函數(shù)確定光標(biāo)下的面。程序使用面的名字和shift_flag變量來實(shí)現(xiàn)主操作界面和子模塊操作界面的相互切換。

(2)子模塊的設(shè)計(jì)與實(shí)現(xiàn)

辦公模塊設(shè)計(jì)實(shí)現(xiàn)了圖片瀏覽程序、文本編輯程序、表格處理程序;通信模塊設(shè)計(jì)實(shí)現(xiàn)了新浪微博客戶端和局域網(wǎng)通信程序;娛樂模塊設(shè)計(jì)實(shí)現(xiàn)了連連看游戲、貪吃蛇游戲和拼圖游戲;地圖模塊設(shè)計(jì)實(shí)現(xiàn)了北京地鐵線路查詢程序和Google在線地圖程序。

在此只介紹地圖模塊中的北京地鐵線路查詢程序。該程序涵蓋了北京地鐵七條干線,并實(shí)現(xiàn)了任意兩個(gè)站點(diǎn)之間的最短路徑查詢和動態(tài)顯示。該程序使用圖存儲地鐵線路信息。地鐵線路圖中共有115個(gè)站點(diǎn),每個(gè)站點(diǎn)分配了唯一的ID標(biāo)識為圖中的一個(gè)頂點(diǎn)。如果兩個(gè)站點(diǎn)直接相連,則將這兩個(gè)站點(diǎn)之間弧的權(quán)值設(shè)置為1,否則設(shè)置為10 000,表示這兩個(gè)站點(diǎn)沒有直接相連。程序使用著名的弗洛伊德最短路徑算法,通過圖的權(quán)值矩陣求任意兩個(gè)站點(diǎn)之間的最短路徑。通過定時(shí)器和變換畫刷的顏色來實(shí)現(xiàn)查詢結(jié)果的動態(tài)顯示,每0.7 s更新一次地圖,如果用戶正在進(jìn)行線路查詢,則變換畫刷的顏色閃動線路上站點(diǎn)。

4.3 應(yīng)用程序設(shè)計(jì)舉例

以Google在線地圖為例,本應(yīng)用程序使用MeeGo Qt域的Qt WebKit進(jìn)行開發(fā),總體的開發(fā)流程與本文第3節(jié)“應(yīng)用程序開發(fā)流程”相同。在此,只敘述程序代碼的編寫。

(1)為了使用 Qt WebKit,需要在工程的.pro文件中添加QT+=webkit,并在相應(yīng)頭文件中添加 #include<QwebView>。

(2)新建一個(gè)QWebView類的控件對象:

(3)調(diào)用該控件對象的setUrl函數(shù),設(shè)置其顯示內(nèi)容為Google在線地圖:

(4)設(shè)置控件的窗口名字并將其顯示:

本文論述了MeeGo嵌入式操作系統(tǒng)的運(yùn)行機(jī)制和應(yīng)用程序的開發(fā)流程,以及在Linux平臺上搭建MeeGo應(yīng)用程序開發(fā)環(huán)境和使用Qt Creator開發(fā)應(yīng)用程序集的方法和步驟。

[1]英特爾開源技術(shù)中心.MeeGoTM開源項(xiàng)目白皮書[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.

猜你喜歡
程序設(shè)置環(huán)境
長期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
中隊(duì)崗位該如何設(shè)置
一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
孕期遠(yuǎn)離容易致畸的環(huán)境
試論我國未決羈押程序的立法完善
環(huán)境
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
主站蜘蛛池模板: 日本人妻丰满熟妇区| 欧美一区国产| 午夜福利网址| 又黄又湿又爽的视频| 毛片视频网| 成人日韩精品| 国产综合日韩另类一区二区| 91麻豆精品视频| 日韩第九页| 久久亚洲天堂| 国产一级二级在线观看| 亚洲天堂视频在线观看| 国产在线91在线电影| 国产欧美在线观看精品一区污| 婷婷伊人久久| 久一在线视频| 亚洲人免费视频| 日本中文字幕久久网站| 国产黄色免费看| 色哟哟国产精品| 国产一级视频久久| 欧美精品在线免费| 日韩欧美国产成人| 久久青草免费91观看| 福利小视频在线播放| 亚洲一级毛片| 中国一级毛片免费观看| 黄色在线网| 在线观看91香蕉国产免费| 国产精品妖精视频| 婷婷亚洲综合五月天在线| 69av在线| 午夜欧美理论2019理论| 精品人妻系列无码专区久久| 国产在线观看第二页| 国产精品免费电影| 伊人久综合| 国产麻豆精品久久一二三| 国产美女自慰在线观看| 在线看片中文字幕| 99精品视频播放| 国产精品三级专区| 欧美中文字幕无线码视频| 国产特级毛片| 中文国产成人精品久久| 国产亚洲第一页| 国产成人做受免费视频| 亚洲最大福利视频网| 青青操视频免费观看| 久久一色本道亚洲| 日本欧美成人免费| 亚洲高清无码久久久| 亚洲v日韩v欧美在线观看| 日韩A级毛片一区二区三区| 亚洲AⅤ无码国产精品| 国产在线观看99| 无码'专区第一页| 国产在线专区| 影音先锋亚洲无码| 制服丝袜国产精品| 日韩黄色在线| 国产精品永久不卡免费视频| 成人在线不卡视频| 97国产成人无码精品久久久| 91色国产在线| 97人妻精品专区久久久久| 波多野结衣一区二区三区四区视频| 欧美日韩国产在线播放| a毛片在线免费观看| 中文字幕乱妇无码AV在线| 亚洲色图欧美| 好紧太爽了视频免费无码| 白浆免费视频国产精品视频| 成人在线视频一区| 亚洲色图欧美视频| 四虎AV麻豆| 国产欧美日本在线观看| 免费a在线观看播放| 综合色88| 亚洲精品你懂的| 在线a网站| 亚洲伊人天堂|