我正在使用Xamarin的跨平台架構—Xamarin.Android回憶錄

來源:互聯網
上載者:User

標籤:android   style   blog   http   java   color   

一、緣起

在自己給別家公司做兼職外包的時候,已經明確知道外包的活不是那麼好乾的,一般在經曆了初期熱血澎湃的激情後,逐漸冷淡,憤怒,再冷淡,再憤怒…,聽上去好像高潮迭起,但令人尷尬的是,這高潮迭起我們都不想要,以至於最後都想草草結束,一走了之。但當我們把Android行動裝置 App委託第三方開發後,還是未能料到產品會如此粗糙,在不能確定這產品要到何時才能與觀眾見面時,我們果斷終止了戀愛。

於是接下來可選的方案有限,初期採用好評如潮的phonegap開發後,其介面的流暢速度,尤其以下滑捲動速度最讓人不能接受,就像待嫁新娘一樣,姍姍來遲不說,你拉她往前走,她卻要在原地停頓一下,再走一點,非常不情願,那既然不能在你情我願的情況下共同生活,我只能轉身留給她越來越模糊的背影…

最後,不得已,選擇了我到現在還算比較滿意的,比較強健的Xamarin.Android。一定要強調的是,使用Xamarin.Android開發的應用體積確實要比java開發出來的要大很多,基本演算法是:2.9M的必備包+2.8M處理器相容包(如果你不打算相容X86架構的移動處理器,那麼不用此包也行)=5.7M,就說你的應用剛開始就有5.7M的體型,但是我觀察了很多熱門常規應用(非遊戲,遊戲包一般都很大),都已經10幾M,20多M,30多M,所以目前體積對我來說,不是太大問題。

二、當前

我們開發的是一款幼兒園的移動產品,這是我們目前產品的結構,我這裡使用的Xamarin.Studio(XS),當然也可以使用VS2012之類的

下面看看前端展示層的具體結構

接下來的這個就是公用庫,也即PCL庫

關於PCL庫,多說一些,PCL庫也分為多個版本,每個版本適配的目標不一樣,比如,我使用的PCL-78 就是下面這個模樣

我建議使用這個最新的版本,一些成熟的類庫,比如NewtonSoft.Json,還有SQLite的.NET PCL版本都能夠使用。PCL類庫聽上去很美,當然實際上也不錯,不過也有一些注意問題,比如WebRequest,不同的平台支援的WebRequest不太一樣,某些屬性用法還不一樣,比如AddRange,添加Range頭的重要性不言而喻,在wp8平台是這樣使用:

protected override System.Net.HttpWebRequest BeginRequest()        {            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);            request.AllowReadStreamBuffering = false;            request.AllowWriteStreamBuffering = false;            if (this.existsFileLength > 0)                request.Headers["Range"] = string.Format("bytes={0}-", this.existsFileLength);            request.Method = "GET";            return request;        }

而在Xamarin.Android中是這樣的:

protected override System.Net.HttpWebRequest BeginRequest ()        {            HttpWebRequest request = (HttpWebRequest)WebRequest.Create (uriString);            request.AllowReadStreamBuffering = false;            request.AllowWriteStreamBuffering = false;            if (this.existsFileLength > 0)                request.AddRange (this.existsFileLength);            request.Method = "GET";            return request;        }

今天先寫到這裡,後面再慢慢介紹整個開發過程以及注意事項。

三、打針

我想每個開發人員應該都很清楚,如果要開發完成一款完整的產品,需要很多腦力和精力的,如果想一蹴而就,似乎不太可能。想要在Xamarin平台上開發的朋友,瞭解一點英文是必要的,因為可能會經常去 bing.com 搜尋外國資料,我相信這一點絕大部分朋友都沒有問題。

忍受煩躁也是必須要具備的,對於一個新的東西,一些時候可能查了半天都沒有解決,可能會上火,壓制自己的火氣或者在無人區發泄火氣,並清楚的告訴自己,解決了一個又一個小問題,就離成功又進了一步。

如果真要想開發出一款產品,一定是需要實踐的,老是看文章,不動手是不行的,也許有頂尖聰明的人(我也相信有)是能過目不忘或者能夠看幾遍就會的,但如果你自己評估自己,得到的結論自己不是頂尖聰明的,還是需要動手的。

四、沒圖你說個JB

鑒於看文章時,經常看到有人說“沒圖你說個JB”,我還是要貼上我們產品移動端的圖,是android版本的。

五、源碼呢

源碼肯定是沒有的,因為這是一個用於商業的產品,是不合適給出源碼的。不過我以後的文章中關鍵的一些源碼還是會給出的,便於理解。

六、真實產品

如果想體驗一下產品,可以用手機訪問 m.kankanbaobei.com 下載android版本的應用

體驗帳號:

老師:16856785678 密碼:123456

家長:19856785678 密碼:123456

完畢。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.