試用 Xamarin, 使用C#來寫 Android / iOS App

前一陣子想要試試看有沒有開發 App 的快速方式,同時公司內部都是使用 C# 作為開發工具,在廣告上看到了 Xamarin 這套可以架設在 Visual Stduio 的開發套件,所以花了一點時間來嘗試一下,看看能不能用最少的代價來把部分資源轉到 App 上。

這個套件都可以在 http://xamarin.com/ 網站上抓取,相關的安裝程序依照網站上的文件應該都可以順利完成,不過我也是屬於開發 APP 菜鳥,所以也花了大量的時間在嘗試,應該都可以很簡單的環境建立起來。

不過在建立 iOS 的環境就有點棘手,它還是必須要透過 Apple 的開發工具去把產生安裝檔,首先公司內部沒有Mac 電腦,要先想辦法弄一個可以執行環境起來,設定好 App 開發套件,然後跟 xamarin 的開發環境兩台電腦做連結,這樣才可以編譯後傳到 Mac 上面的 iOS 模擬器執行。

在 Android 就簡單許多,不過讓人困擾的是它的 Android for Windows 模擬器效能很差,簡單的套個物件上去來執行,通常需要等個一兩分鐘才能在模擬器看到成果,當然如果你的電腦強一點,或者可以自己換個效能好一點的模擬器,可以改善這個問題。

不過我最大的期望是能夠像 Visual Studio 一樣能夠拖拉元件進程式來使用,但很不幸的,Android 能拖拉 Xamarin 的原件來使用,但受限於 iOS 開發環境,仍然需要靠指令的方式來建置 UI,這一點就跟我的期待差別很大。

依照我找到的文件說明,這幾個不同平台的 App 仍需要個別去處理 UI 介面,但可以共用一些程式庫或處理資料的邏輯,我想這個才是最大的賣點吧。

在1個月後的測試期間終了,我還是沒有選擇付費繼續來使用,對我的目的而言還希望這個套件能夠更加的聰明一點,使得開發工作能夠盡量地貼近之前的 Windows 軟體開發一樣。

 

解決 Android 平板無法直接寫入外部 SDCard 問題

最近買了第三台 Android 平板,選擇了剛剛出來的全志 A31 四核 CPU 的解決方案,說實話買這台是因為C/P值比較高,但是剛出來的產品問題真的很多,尤其是很多軟體無法直接寫入外接的 SDCard 更讓人困擾。

 

這台艾諾Novo9 剛買來就發生啟動器(Launcher)常常卡住,經過幾十秒沒有反應就只好重開,最後選擇換用 GO Launcher HD,但無法寫入的問題依然存在,換用了 20130313V1 的韌體也沒有解決,開始在網路上找是不是有其他人也有遇到,直到我找到這篇文章,在其他的版本及機型也有遇到相同的情況,所以依照文章所說的去變更設定檔案的內容即可。

 

刷入 20130313新的測試韌體後,到 Google Play 安裝 Root browser,使用該工具編輯 /system/etc/permissions/platform.xml,找到 WRITE_EXTERNAL_STORAGE 這一段後,在  <group gid=”sdcard_rw” /> 這行後面插入 <group gid=”media_rw” /> 就完成修改了,重新開機應該就可以正常的使用 external SD card。

 

以上作業看起來是要已經被 rooted 的裝置才可更新喔。

 

至於發生的原因看起來是從 Android 3.2 版之後,External SD Card 擁有權限(Owner)是設定給 media_rw而不是 sdcard_rw,使用sdcard_rw 群組的權限卻只能讀取 External SDCard 就只能唯讀,就只能透過PC接USB連線才可以寫入到 SD Card 。

參考 : http://forum.xda-developers.com/showpost.php?p=20869996&postcount=7