![微軟Silverlight嵌入式開(kāi)發(fā)實(shí)例詳解_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/9/80fe9aff-0c3d-4d07-a699-9191bfb88215/80fe9aff-0c3d-4d07-a699-9191bfb882151.gif)
![微軟Silverlight嵌入式開(kāi)發(fā)實(shí)例詳解_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/9/80fe9aff-0c3d-4d07-a699-9191bfb88215/80fe9aff-0c3d-4d07-a699-9191bfb882152.gif)
![微軟Silverlight嵌入式開(kāi)發(fā)實(shí)例詳解_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/9/80fe9aff-0c3d-4d07-a699-9191bfb88215/80fe9aff-0c3d-4d07-a699-9191bfb882153.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微軟 Silverlight嵌入式開(kāi)發(fā)實(shí)例詳解在這里我們將介紹 Silverlight for Embedded(SE) 在 Windows 嵌入式系統(tǒng)上開(kāi)發(fā)絢麗界面,希望對(duì)大家有所幫助。本文將為大家講述銀光在嵌入式方面的應(yīng)用,希望通過(guò)本文能為大家打開(kāi)一個(gè)更加絢麗的 Silverlight 新界面。這文章寫給對(duì)使用 Silverlight for Embedded(SE) 在 Windows 嵌入式系統(tǒng)上開(kāi)發(fā)絢麗界面感興趣的朋友。要求讀者有一定的 Win32 基礎(chǔ), C+ 基礎(chǔ),雖然 SE 是基于 COM 的,但是不需要你了解太多有關(guān) COM 的知識(shí),但是知道COM的原理會(huì)幫助你更好的理解SE
2、,另外如果有接觸過(guò)Silverlight/WPF會(huì)更好。這里有一篇文章幫你從全局來(lái)了解SE:微軟最新嵌入式界面開(kāi)發(fā)技術(shù)首先看一下我已經(jīng)跑起來(lái)的應(yīng)用程序的效果(我沒(méi)有自己去做XAML ,而是使用上次去微軟培訓(xùn)時(shí) Samples提供的 ),這些圖是從模擬器截取下來(lái)的,看起來(lái)效果不是太好,后面我有解釋為什么,我放到 NVIDIA Tegra 上面跑起來(lái)效果很好 (動(dòng)畫(huà)的幀率在四五十左右 ),這么好的板子沒(méi)道理不好。1.What is SE? Why COM based?看到 iPhone、Android 的 UX 不錯(cuò),市場(chǎng)也漸漸的流入到對(duì)方手里,微軟問(wèn)自己:我要拿點(diǎn)什么與他們對(duì)抗呢?既然我一向平臺(tái)
3、做的不錯(cuò),那我就拿出一個(gè)UX開(kāi)發(fā)平臺(tái)吧!這樣一個(gè)在WindowsEmbedded上的UX開(kāi)發(fā)平臺(tái) (SE)誕生了。SE 是使用C+ 本地代碼編寫的。(本地代碼表示不是執(zhí)行在托管層之上的,所以你無(wú)法使用像C#這樣的托管語(yǔ)言開(kāi)發(fā)。)SE 依賴于 Embedded XAML Runtime (EXR) Framework ,而非依賴于 .Net CF 或者瀏覽器。 不要跟 Silverlight for Windows Mobile 等技術(shù)混淆。除此之外我們還知道SE 是基于 COM (Component Object Model) 的。為啥微軟又搞出COM 技術(shù)來(lái),而不是基于.Net 技術(shù)呢 ?桌
4、面系統(tǒng)上我們看到非常多的技術(shù)是基于.Net 技術(shù),比如,XNA Framework 最初構(gòu)建于 .Net Framework 2.0 之上,另外還加入了一些專注于游戲開(kāi)發(fā)的類庫(kù),以達(dá)到很高的代碼重用。代碼執(zhí)行在通用語(yǔ)言運(yùn)行時(shí)(Common Language Runtime)之上。在這樣的平臺(tái)上開(kāi)發(fā)游戲,你只需要關(guān)系游戲本身的邏輯,還不需要擔(dān)心跨微軟平臺(tái)的問(wèn)題。那么微軟 SE 為什么沒(méi)有基于 .Net?我認(rèn)為還是運(yùn)行時(shí)效率問(wèn)題。 CE 設(shè)備 (將來(lái)也許在 Windows Phone 上支持這個(gè)技術(shù) )多是 CPU 主頻不到 500MHz 、RAM 不到 256M 的設(shè)備,考慮到這點(diǎn)微軟還是選擇了
5、基于 COM 技術(shù)。雖然 COM 還是損耗了很多運(yùn)行時(shí)效率,但是它帶來(lái)的好處也是明顯的:減少了開(kāi)發(fā)時(shí)間和開(kāi)發(fā)錯(cuò)誤。另外可以說(shuō)微軟的技術(shù)很大部分是構(gòu)架在 COM 技術(shù)上的:IE、Media Player 等應(yīng)用的擴(kuò)展,DirectX中無(wú)處不 COM, DirectShow 的 Graph Manager、Filter 、Pin 是 COM 組件 2.SE 技術(shù)的本質(zhì)是什么 ?傳統(tǒng)界面開(kāi)發(fā)流程中負(fù)責(zé)UI 的 Designer 和負(fù)責(zé) Code 的 Developer 的工作混雜在一起, 如果你從事過(guò)這樣的開(kāi)發(fā),相信你能了解到其中的痛苦:開(kāi)發(fā)緩慢,開(kāi)發(fā)流程不能很好的并行, Designer 和 De
6、veloper 各自的成果不能很好的重用 那么 SE 就采用 XAML 作為 Designer 和 Developer 之間銜接的關(guān)鍵, 比較好的分開(kāi)了他們之間的工作。其實(shí)并沒(méi)有完全的分開(kāi), WPF 會(huì)更好的實(shí)現(xiàn)這個(gè)理想。 SE 底層使用 DirectDraw 或者 OpenGL ES的驅(qū)動(dòng)來(lái)實(shí)現(xiàn)硬件加速(先思考一下如何使用到硬件加速)。也就是說(shuō)如果你采用SE 開(kāi)發(fā)的Application沒(méi)有這些硬件加速支持,那就可憐了。與 SE 相比,微軟內(nèi)部還有個(gè)更輕量級(jí)的界面開(kāi)發(fā)技術(shù),叫做Confetti ,它的升級(jí)版叫做ConfettiPlus。它們的出現(xiàn)是解決沒(méi)有較好的硬件加速支持下的用戶界面(很好
7、的圖形硬件加速代表著要不少 Money)。Confetti 也是采用 XAML 很好的分割開(kāi) Designer 和 Developer 的工作,布局、圖形、動(dòng)畫(huà)基本在 XAML 中定義 (與 SE 的一個(gè)區(qū)別在于 Confetti 在 XAML 中只能定義簡(jiǎn)單的動(dòng)畫(huà),復(fù)雜一點(diǎn)的動(dòng)畫(huà)需要在 Code 中實(shí)現(xiàn) ),Designer 和 Developer 之間定義好接口 (interation points)之后工作基本上能很好的分開(kāi)了。 (因?yàn)楦p量級(jí), Designer 和 Developer 工作還是沒(méi)有 SE、 WPF 分開(kāi)的充分。 )題外話:Windows Mobile 6.5 的界面即
8、是基于 ConfettiPlus 開(kāi)發(fā)出來(lái)的,如果你能拿到 Windows Mobile 的源碼,那么 ConfettiPlus 的源碼在 private/shellw/confetti/core 目錄下?;?ConfettiPlus 編寫的 Application 依賴于 Confetti Rendering Engine,從字面意思也能知道,它的職責(zé)主要是呈現(xiàn) (Render)。這個(gè) Engine 低下會(huì)依賴 GWES 組件和 DDRAW 。還記得我的文章嗎?這篇文章提到定制 Today 工作主要分為 3 部分:注冊(cè)表配置 (包括兩部分: Today 整體配置部分,比如整體布局、 所要使
9、用的 CPR 文件等;數(shù)據(jù)源配置,比如配置按鍵的布局等 )、CPR 文件 (基于 XML) 編寫。再與這里介紹到的 ConfettiPlus 結(jié)合起來(lái),不知道你是否能夠明白 Windows Mobile 6.5 UI 的內(nèi)部運(yùn)行機(jī)制?這種開(kāi)發(fā)模型可并不是微軟發(fā)明的,微軟發(fā)明了它自己的基于Android 開(kāi)發(fā),你會(huì)發(fā)現(xiàn)采用Java 開(kāi)發(fā)的 Android ApplicationXML 的 XAML 。如果你從事也很好的采用這種方式來(lái)分開(kāi),而且更成熟一點(diǎn),為什么這么說(shuō)?請(qǐng)看:Android 也是采用基于 XML 文件的可變化的UI 開(kāi)發(fā)模型,一個(gè)簡(jiǎn)單的 XML 布局實(shí)例代碼如下:1.xml ver
10、sion= 1.0encoding=utf-8?2.這樣的 XML 文件你會(huì)經(jīng)常在 /res/layout 下看到。另外 Android 開(kāi)發(fā)工具 (ADT 插件 )會(huì)根據(jù) XML 文件幫你生成好一些如下代碼:6.publicfinalclassR 7.publicstaticfinalclassattr 8. ;9.publicstaticfinalclass drawable 10.publicstaticfinalint icon=0x7f020000;11. ;12.publicstaticfinalclass layout 13.publicstaticfinalint main=0
11、x7f030000;14. ;15.publicstaticfinalclassstring16.publicstaticfinalint app_name=0x7f040000;17. ;18. ;這些代碼生成在R.java 文件中,你本身的代碼需要通過(guò)這個(gè)R 類來(lái)使用 XML 資源。是不是很方便?這是目前SE 不能辦到的,但是相信未來(lái)微軟會(huì)搞出來(lái)類似的一套。另外一個(gè)國(guó)外朋友已經(jīng)幫我們寫好一個(gè)實(shí)現(xiàn)類似功能的SE 開(kāi)發(fā)插件: XAML2CPP ,我會(huì)在后面介紹到。通過(guò)上面的介紹相信你已經(jīng)簡(jiǎn)單了解了 SE 的本質(zhì),如果廣義上來(lái)看, UI( 用戶看的到的部分 )其實(shí)也可以看做是程序的數(shù)據(jù), SE
12、的本質(zhì)是利用 XML( 也可以是其它存放數(shù)據(jù)的媒介 )來(lái)分開(kāi)程序的數(shù)據(jù)和代碼。3.環(huán)境搭建安裝順序:(1). Visual Studio 2005(VS08 不可以,因?yàn)镃E 6.0 是在 VS08 之前出來(lái)的 )(2). Visual Studio 2005 SP1(3). Windows Embedded CE 6.0CE 6.0 的 Key 可以獲得一個(gè)180 天試用版的,在這里:想看系統(tǒng)源碼的朋友記得把Shared Source選上。(4). Windows Embedded CE 6.0 SP1在這里下載:&displaylang=en(5). Windows Embedded CE
13、 6.0 R2在這里下載:(6). Windows Embedded CE 6.0 R2 各月補(bǔ)丁ARM 處理器有關(guān)的補(bǔ)丁大概有這些,從網(wǎng)上應(yīng)該都能搜到:WinCEPB60-081231-Product-Update-Rollup-Armv4I.msiWinCEPB60-090131-2009M01-Armv4I.msiWinCEPB60-090228-2009M02-Armv4I.msiWinCEPB60-090331-2009M03-Armv4I.msiWinCEPB60-090430-2009M04-Armv4I.msiWinCEPB60-090531-2009M05-Armv4I.ms
14、i(7). Windows Embedded CE 6.0 R3在這里下載:eee3556fe46(8). Windows Embedded CE 6.0 R3 各月補(bǔ)丁 (這個(gè)可以先不管 )下一步就可以打開(kāi) Visual Studio 2005 創(chuàng)建一個(gè) OS Design Project,定制過(guò)程比較簡(jiǎn)單,你可以參考馬寧老師的文章:特別提醒的是:如果你想在定制的系統(tǒng)上跑起來(lái)SE based Application 的話一定記得選中目錄下的 Silverlight for Windows EmbeddedCore,或者直接加上SYSGEN:SYSGEN_XAML_RUNTIME。前面提高如何
15、使用到圖形硬件加速,你只需添加一個(gè)SYSGEN :SYSGEN_XAML_RUNTIME_DDRAW即可使用自帶的DirectDraw rendering plug-in 來(lái)實(shí)現(xiàn)圖形硬件加速,當(dāng)然你也可以使用OpenGL ES 加速,后面會(huì)提到。4.應(yīng)用程序整體流程介紹(1).實(shí)現(xiàn)我們需要通過(guò)Expression Blend 生成好我們需要的XAML、Pictures 等文件, XAML文件里面定義了控件、動(dòng)畫(huà)、布局等UI 元素。(2).然后我們新建一個(gè)Win32 智能設(shè)備項(xiàng)目工程(如果你需要ATL 庫(kù)的支持, 也可以選擇ATL智能設(shè)備項(xiàng)目工程 ),選擇 Alchemy SDK ,如果選擇其它CE SDK 的話,需要自己包含頭文件和Lib庫(kù)。將第 (1) 步得到的XAML等文件導(dǎo)入到項(xiàng)目的資源(rc)文件里面。特別提醒:很久前我使用XamlRuntime.h 頭文件時(shí)發(fā)現(xiàn)它少包含了pwinuse
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二星章申請(qǐng)書(shū)
- 經(jīng)理層聘任協(xié)議書(shū)(2篇)
- 湖北省華大新高考聯(lián)盟2024-2025學(xué)年高三上學(xué)期11月測(cè)評(píng)物理試題(解析版)
- 我的入隊(duì)申請(qǐng)書(shū)
- Module3練習(xí)(單元測(cè)試)英語(yǔ)四年級(jí)下冊(cè)-外研版(一起)(含答案)
- 2025年中國(guó)隔離欄行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資前景展望報(bào)告
- 嘻哈社團(tuán)申請(qǐng)書(shū)
- 電動(dòng)機(jī)控制系統(tǒng)的實(shí)時(shí)監(jiān)測(cè)與健康管理研究
- 知識(shí)產(chǎn)權(quán)風(fēng)險(xiǎn)防控體系構(gòu)建與實(shí)施
- 現(xiàn)代人生活節(jié)奏與亞健康狀況的關(guān)聯(lián)性分析
- 2024年區(qū)塊鏈應(yīng)用操作員職業(yè)技能競(jìng)賽理論參考試題庫(kù)(含答案)
- (部編版)統(tǒng)編版小學(xué)語(yǔ)文教材目錄(一至六年級(jí)上冊(cè)下冊(cè)齊全)
- 高空作業(yè)車日常施工方案
- GB/T 44265-2024電力儲(chǔ)能電站鈉離子電池技術(shù)規(guī)范
- 二《風(fēng)景談》公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)中職語(yǔ)文高教版(2023-2024)基礎(chǔ)模塊上冊(cè)
- 材料力學(xué)之材料疲勞分析算法:S-N曲線法:疲勞分析案例研究與項(xiàng)目實(shí)踐.Tex.header
- 教學(xué)工作獎(jiǎng)勵(lì)辦法
- 2024(新高考2卷)英語(yǔ)試題詳解解析 課件
- 天津2024年天津市規(guī)劃和自然資源局所屬事業(yè)單位招聘筆試歷年典型考題及考點(diǎn)附答案解析
- 2024-2029年中國(guó)肌電生物反饋儀行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)一套
評(píng)論
0/150
提交評(píng)論