日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]這是為《程序員》4月期寫的文章,是在《雙重驚喜——Windows Phone Developer Tools初體驗(yàn)》的基礎(chǔ)上增加了一些內(nèi)容,包括WebBrowser空間、MediaPlayer空間,還有

這是為《程序員》4月期寫的文章,是在《雙重驚喜——Windows Phone Developer Tools初體驗(yàn)》的基礎(chǔ)上增加了一些內(nèi)容,包括WebBrowser空間、MediaPlayer空間,還有一個(gè)非常簡單的XNA程序。希望對(duì)Windows Phone開發(fā)有興趣的朋友有一些幫助。

Windows Phone開發(fā)工具在MIX 2010上火熱登場了。Windows Mobile開發(fā)者們壓抑許久的熱情終于爆發(fā)出來,對(duì)于Windows Phone的華麗轉(zhuǎn)身,開發(fā)者們褒貶不一,有人對(duì)Silverlight、 XNA等新技術(shù)充滿期待,有人對(duì)放棄以前版本兼容性、不支持C++開發(fā)滿腹怨言。

無論如何,Windows Phone為我們帶來了新的用戶體驗(yàn)、新的開發(fā)工具,總比讓開發(fā)者守著Windows Mobile的老面孔,一起慢慢變老,要好吧?下面,就讓我們看看Windows Phone開發(fā)工具會(huì)為開發(fā)者們帶來哪些驚喜,呃,或者驚訝。

Windows Phone開發(fā)工具的社區(qū)預(yù)覽版(CTP)可以在MSDN上下載。其中包括Visual Studio 2010 Express for Windows Phone, Windows Phone模擬器, Silverlight for Windows Phone和XNA 4.0 Game Studio。目前,Windows Phone開發(fā)工具只能安裝在Windows 7和Vista SP2上,還需要顯卡支持DirectX 10。

打開VS 2010后,我的感覺喜憂參半,喜的是Windows Phone提供了兩種不同的開發(fā)平臺(tái):Silverlight for Windows Phone和XNA 4.0,憂的是,以前Windows Mobile的C++和.NET Compact Framework都用不上了。所以,以前的Windows Mobile程序員也要經(jīng)歷一個(gè)痛苦的轉(zhuǎn)型過程。

接下來,我們就看看Windows Phone帶來的雙重驚喜吧!

Silverlight for Windows Phone

Silverlight for Windows Phone險(xiǎn)些淪為一個(gè)笑話,Windows Mobile程序員在抱怨,Symbian上的Silverlight都出來了,Windows Mobile上的Silverlight在哪里?這次,Silverlight for Windows Phone來了,而且所有Windows Phone上的應(yīng)用必須用Silverlight來寫。

Silverlight最大的優(yōu)勢(shì)在于與Expression Blend的無縫整合,可以快速設(shè)計(jì)出非常漂亮的用戶界面,將程序員從繁瑣的UI開發(fā)中解放出來。而且Silverlight for Windows Phone不再是Silverlight的子集,而是支持Silverlight的全部功能。這樣的好處是,已有的Silverlight程序很容易移植到Windows Phone手機(jī)上。

在程序菜單的XNA Game Studio 4.0下打開VS 2010,創(chuàng)建一個(gè)新工程,在Visual C#下找到三個(gè)模板,選擇”Windows Phone Application”。

 

 

不知道Phone List Application是啥,看起來Windows Phone的界面會(huì)以List為主了。點(diǎn)擊OK后,會(huì)直接進(jìn)入IDE的主界面:

 

 

似曾相識(shí),左邊是工具欄,可以拖拽控件到UI設(shè)計(jì)器上,與XAML界面對(duì)應(yīng)。根據(jù)示例程序,我準(zhǔn)備編寫一個(gè)瀏覽器和媒體播放器,首先是從Toolbox中將MediaElement和WebBrowser控件拖拽到UI設(shè)計(jì)器上。

 

 

為了播放多媒體文件,我們還要在Solution Explorer里將wmv文件添加到工程里。做法和Windows Mobile工程一致,選擇Content類型,wmv文件會(huì)和工程一起發(fā)布。

接下來就是編寫代碼了。MediaElement組件需要設(shè)置Source屬性,然后調(diào)用Play方法。而WebBrowser選擇Navigate方法來訪問指定網(wǎng)站。

private void button1_Click(object sender, RoutedEventArgs e)

{

textBlockListTitle.Text = textBox1.Text;

if (Convert.ToBoolean(checkBox1.IsChecked))

{

webBrowser1.Visibility = Visibility.Collapsed;

mediaElement1.Visibility = Visibility.Visible;

// play Video

mediaElement1.Source = new Uri("Wildlife.wmv", UriKind.Relative);

mediaElement1.Position = TimeSpan.FromMilliseconds(0);

mediaElement1.Play();

}

else

{

mediaElement1.Visibility = Visibility.Collapsed;

webBrowser1.Visibility = Visibility.Visible;

// Browser

webBrowser1.Navigate(new Uri(textBox1.Text, UriKind.Absolute));

}

}

 

 

代碼編輯完成后,選擇Windows Phone Emulator作為目標(biāo)設(shè)備。直接按F5,Windows Phone Emulator會(huì)被啟動(dòng)。

Silverlight for Windows Phone類庫中增加了很多Phone獨(dú)有的功能。Microsoft.Phone的命名空間下,包括Phone、電話本、電子郵件、Camera、Bing地圖、Marketplace、瀏覽器和搜索等功能。Microsoft.Device.Sensors中包括各種各樣的傳感器,其中包括重力感應(yīng)。Silverlight中還包括了Location和Push Notification等獨(dú)有功能。

我的程序運(yùn)行起來就是下面這個(gè)樣子。程序帶有強(qiáng)烈的Zune風(fēng)格,不但有標(biāo)題,而且還有明顯的Block List Title。另外就是輸入法,帶有明顯iPhone的痕跡,不過對(duì)電容屏的支持看來不是問題了。

我還沒有仔細(xì)看Windows Phone Emulator的實(shí)現(xiàn)機(jī)制,不過從啟動(dòng)速度來看,絕對(duì)不是把整個(gè)Windows Phone放在模擬器里執(zhí)行了。原來Windows Device Emulator那個(gè)基于三星2410的小身板估計(jì)也跑不起來。反正也是Managed Code,估計(jì)又是JIT編譯那套?;秀遍g,仿佛回到了Pocket PC 2002的年代。

 

[!--empirenews.page--]

 

Windows Phone新界面

既然把Windows Phone Emulator起來了,我們就順便參觀下Windows Phone的新界面吧。點(diǎn)左邊的Back鍵,會(huì)將應(yīng)用程序的Debugger斷掉,不知道程序是否退出了。點(diǎn)中間的Win Button,會(huì)回到主界面。

不過主界面上只有IE一個(gè)圖標(biāo)。Windows Phone模擬器中還沒有包括其他的系統(tǒng)功能,比如電話、電子郵件、搜索等。模擬器也沒有辦法模擬重力感應(yīng)、Location定位服務(wù)。希望到Windows Phone開發(fā)工具正式發(fā)布時(shí),這些系統(tǒng)功能都可以被支持。

 

 

IE的用戶體驗(yàn)非常好,一開始新手發(fā)蒙,沒找到地址欄,后邊就非常順利了。無論是頁面縮放時(shí)的平滑動(dòng)畫,還是輸入時(shí)切換到適當(dāng)大小的設(shè)計(jì),都非常順手。特別是Multi-Tab的設(shè)計(jì),感覺非常舒服。特意試了Google Map,顯示一切正常。智能手機(jī)時(shí)代,有一個(gè)好的瀏覽器,其實(shí)就成功了一半。

哦,還有一點(diǎn),我在Windows Phone Emulator里沒有做任何配置,就可以上網(wǎng)了。

XNA 4.0

在移動(dòng)開發(fā)界,XNA還不是一個(gè)響亮的名字,但是在游戲開發(fā)界,Xbox 360上的XNA則是泰山北斗級(jí)的開發(fā)技術(shù)。XNA不僅僅是一個(gè).NET的游戲開發(fā)平臺(tái),還包括了很多支持Xbox Live服務(wù)的功能,比如,Avatars技術(shù)支持在游戲中顯示用戶設(shè)計(jì)的形象。希望這項(xiàng)技術(shù)能夠和同名電影一樣,改變移動(dòng)游戲開發(fā)的歷史。

Windows Phone支持的是XNA 4.0,與Zune HD上的XNA 3.1有啥區(qū)別?支持3D游戲!目前我們看到的這個(gè)XNA 4.0預(yù)覽版只支持Windows Phone開發(fā),不支持Windows和Xbox 360的游戲開發(fā)。

Silverlight for Windows Phone是典型的事件驅(qū)動(dòng)型應(yīng)用程序。而XNA是由時(shí)間驅(qū)動(dòng)的應(yīng)用程序,這也是游戲開發(fā)技術(shù)的典型特點(diǎn)。每隔固定時(shí)間,系統(tǒng)會(huì)觸發(fā)Update事件,使程序得以更新。

不那么多廢話了,創(chuàng)建個(gè)XNA 4.0的新工程吧!

 

 

選擇Windows Phone Game就好了。IDE環(huán)境下沒有界面編輯器,需要程序員通過代碼來實(shí)現(xiàn)UI。XNA程序的結(jié)構(gòu)非常簡單,程序員只需要實(shí)現(xiàn)幾個(gè)簡單的方法,就可以實(shí)現(xiàn)一個(gè)簡單的XNA程序了。這些方法包括Initialize初始化方法、LoadContent加載文件、Update更新內(nèi)容和Draw繪制等方法。下面是示例代碼片段:

protected override void LoadContent()

{

// Create a new SpriteBatch, which can be used to draw textures.

spriteBatch = new SpriteBatch(GraphicsDevice);

texture1 = Content.Load("winphone");

texture2 = Content.Load("winphone");

soundEffect = Content.Load("Windows Ding");

spritePosition1.X = 0;

spritePosition1.Y = 0;

spritePosition2.X = graphics.GraphicsDevice.Viewport.Width - texture1.Width;

spritePosition2.Y = graphics.GraphicsDevice.Viewport.Height - texture1.Height;

sprite1Height = texture1.Bounds.Height;

sprite1Width = texture1.Bounds.Width;

sprite2Height = texture2.Bounds.Height;

sprite2Width = texture2.Bounds.Width;

}

LoadContent方法中使用Content.Load方法來加載資源文件,這些文件也是作為資源被加載到XNA程序中的。

protected override void Update(GameTime gameTime)

{

// Allows the game to exit

if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

this.Exit();

// Move the sprite around.

UpdateSprite(gameTime, ref spritePosition1, ref spriteSpeed1);

UpdateSprite(gameTime, ref spritePosition2, ref spriteSpeed2);

CheckForCollision();

base.Update(gameTime);

}

Update方法負(fù)責(zé)更新元素的位置,進(jìn)行碰撞檢測(cè)。如果后退鍵被按下,則退出程序。

protected override void Draw(GameTime gameTime)

{

GraphicsDevice.Clear(Color.CornflowerBlue);

// TODO: Add your drawing code here

// Draw the sprite.

spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);

spriteBatch.Draw(texture1, spritePosition1, Color.White);

spriteBatch.End();

spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.Opaque);

spriteBatch.Draw(texture2, spritePosition2, Color.AliceBlue);

spriteBatch.End();

base.Draw(gameTime);

}

Draw方法對(duì)更新后的元素進(jìn)行繪制。

我們的第一個(gè)XNA程序會(huì)顯示兩張圖片,這兩張圖片會(huì)在屏幕中運(yùn)行,運(yùn)行到邊緣時(shí),會(huì)反彈回來。

 

[!--empirenews.page--]

 

寫在最后

Windows Phone開發(fā)工具不是完美無缺的,比如Visual Studio啟動(dòng)調(diào)試程序的時(shí)間比較長,希望這是模擬器的問題,在Windows Phone設(shè)備上不是這樣。

寫完這篇文章,心中最多的還是感慨,我們不應(yīng)該將Windows Phone視作Windows Mobile的升級(jí)了,這是一個(gè)全新的手機(jī)操作系統(tǒng)。Windows Phone的功能可能沒有Windows Mobile豐富,但是他贏得喝彩,靠的只有四個(gè)字——用戶體驗(yàn)。

鳳凰涅磐,Windows Phone的路還很長,但是我們這些緊緊追隨的開發(fā)者們,要得不就是對(duì)未來的一絲憧憬嗎。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在能源數(shù)字化轉(zhuǎn)型加速推進(jìn)的背景下,電力鴻蒙操作系統(tǒng)憑借其分布式架構(gòu)、統(tǒng)一通信標(biāo)準(zhǔn)和跨設(shè)備協(xié)同能力,成為構(gòu)建智能電網(wǎng)和能源互聯(lián)網(wǎng)的核心技術(shù)底座。對(duì)于開發(fā)者而言,選擇合適的工具鏈不僅能提升開發(fā)效率,還能保障系統(tǒng)穩(wěn)定性與安全性...

關(guān)鍵字: 電力鴻蒙 開發(fā)工具

電力鴻蒙(OpenHarmony for Power)憑借其分布式軟總線、輕量化內(nèi)核及電力行業(yè)深度適配能力,成為構(gòu)建智能電網(wǎng)、新能源管理、綜合能源服務(wù)等場景的核心技術(shù)底座。開發(fā)者通過掌握其官方開發(fā)工具DevEco Stu...

關(guān)鍵字: 電力鴻蒙 開發(fā)工具

在能源互聯(lián)網(wǎng)與新型電力系統(tǒng)建設(shè)的背景下,電力鴻蒙(OpenHarmony for Power)作為面向電力行業(yè)的物聯(lián)操作系統(tǒng),通過分布式軟總線、輕量化設(shè)備管理等技術(shù),重構(gòu)了電力設(shè)備的開發(fā)范式。其開發(fā)工具鏈以DevEco...

關(guān)鍵字: 電力鴻蒙 開發(fā)工具

將您的樹莓派Pico變成帶有觸摸屏界面的USB-HID設(shè)備!在這個(gè)項(xiàng)目中,我們將在Arduino IDE中設(shè)置編程環(huán)境,為3.5”Pico Touch LCD屏蔽配置庫,測(cè)試基本功能,創(chuàng)建簡單的按鈕(用于復(fù)制和粘貼),顯...

關(guān)鍵字: 樹莓派 觸摸屏 LCD Windows

這是一個(gè)演示,展示了我正在開發(fā)的自定義gpt,并在r/arduino上發(fā)布了一系列關(guān)于它的內(nèi)容。它可以很容易地與您的任何項(xiàng)目在您的標(biāo)準(zhǔn)工作。/ Arduino文件夾。它是多平臺(tái)的,所以無論你運(yùn)行的是Windows、mac...

關(guān)鍵字: Windows macOS Linux Arduino項(xiàng)目管理器

在這里,我們?cè)谙喈?dāng)舊的Latte Panda V1單板計(jì)算機(jī)上啟動(dòng)了Batocera,該計(jì)算機(jī)于2015年發(fā)布,擁有英特爾Atom x5-Z8350四核處理器和4GB DDR3L RAM。這個(gè)處理器在當(dāng)時(shí)對(duì)于SBC來說是...

關(guān)鍵字: 單板計(jì)算機(jī) Windows x86處理器

拉斯維加斯2025年1月8日 /美通社/ -- CES 2025,黑芝麻智能攜旗下華山系列、武當(dāng)系列芯片參展,并帶來與產(chǎn)業(yè)鏈伙伴的合作新進(jìn)展。1月8日,黑芝麻智能與汽車嵌入式互聯(lián)軟件產(chǎn)品和解決方案供應(yīng)商Elektrobi...

關(guān)鍵字: 智能汽車 CLASSIC CORE 開發(fā)工具

Amazon Q Developer是首個(gè)基于生成式AI的助手,旨在加速Windows.NET、VMware和大型機(jī)工作負(fù)載的遷移和現(xiàn)代化,縮短轉(zhuǎn)型時(shí)間并降低成本 北京2024年12月23日 /美通社/ -- ...

關(guān)鍵字: DEVELOPER 亞馬遜 NET Windows

Linux上的大多數(shù)軟件都是開源的,開發(fā)者在全球范圍內(nèi)對(duì)其進(jìn)行了維護(hù),并為之作出了貢獻(xiàn)。這就意味著,用戶可以在更大程度上,獲得更大的自由度,更多的選擇。而且,在 Windows中,很多先進(jìn)的特性和專門的軟件都是需要許可的...

關(guān)鍵字: Linux Windows

就系統(tǒng)級(jí)設(shè)計(jì)而言,開發(fā)工具的重要性不亞于為您的應(yīng)用找到合適的方案。安森美 (onsemi) 提供豐富全面的工具和軟件,助您輕松掌控設(shè)計(jì)過程。我們的工具致力于幫助您找到合適的產(chǎn)品,并在整個(gè)設(shè)計(jì)周期的產(chǎn)品選型、測(cè)試和分析等環(huán)...

關(guān)鍵字: 開發(fā)工具 仿真工具
關(guān)閉