MonoDroid學習筆記(二)—— 讓你的App在你的手機上跑起來

在上一篇文章裏我們已經成功的在模擬器中運行了我們的Hello World程序,在這裏我先糾正之前的一個錯誤。之前我以爲MonoDroid只能創建2.2以上版本的程序,所以當時我讓大家只下載Android SDK 2.2版本,但事實上MonoDroid可以支持的最低版本是1.6,可以在項目的屬性中進行設置。首先在解決方案資源管理器中你的項目名上右鍵,然後點擊屬性,VS就會打開項目屬性窗口,然後在Minimum Android to Target下拉框中選擇相應的版本即可。如下圖:

 

    接下來的問題很自然就是,既然我們的程序可以在模擬器中運行,那到底能不能在我們實際的手機中運行呢?這纔是最關鍵的。首先我們先看看項目部署完以後生成了什麼東西。打開你的項目所在的文件夾,bin/Debug/目錄,可以看到,生成了一個dll,mdb,pdb和兩個apk,既然有apk,那就有戲,我把手機通過usb連到我的pc以後,把這兩個apk都拷到了我的手機sd 卡中,先運行文件名不帶-Signed的apk,結果報錯,再試試帶-Signed的,安裝成功,心情興奮加激動,馬上打開程序,結果報錯,無法運行。看了一下apk文件的大小,大概是100多K,估計是沒有把Mono的運行時一併打包安裝造成的,遂馬上尋找解決方案。通過與官網的技術人員溝通得知,解決此問題有兩種方案:

    一,將C:/Program Files/MSBuild/Novell/Mono.Android.DebugRuntime-debug.apk和C:/Program Files/MSBuild/Novell/platforms/下對應你手機Android版本的文件夾下的Mono.Android.Platform.apk這兩個文件一起拷到你的手機並安裝。

    二,使用Release版本來生成你的程序。

    顯然,如果用第一種方法的話,我們做一個Hello World程序需要三個安裝文件是極爲不妥的,再加上運行時和平臺這兩個apk都在14M大小左右,所以可以否定第一種方法了。那我們就採用第二種方法,生成Release版本,注意在項目屬性中,Linking需要選擇 “Sdk Assemblies only”,Use Shared Runtime必須不勾選,如下圖:

 

    生成後在Release文件中也會有兩個apk,只拷貝文件名帶-Signed的apk到你的手機進行安裝,然後運行,OK,你的Hello World終於可以在你的手機運行了淘寶特賣

    由Release生成的apk大小爲4M+,不得不說也是一個巨無霸了,畢竟這只是一個簡單的Hello World程序而已,MonoDroid程序繼承了.net程序需要運行平臺的這個缺點,只是從.net framework變成了mono runtime而已。如果認爲使用MonoDroid開發的程序大得無法接受,那麼現在放棄還來得及~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章