在Visual Studio 2010/2012/2013/2015上使用C#開發Android/IOS安裝包和操作步驟
官方學習文件:http://developer.xamarin.com/guides/android/getting_started/
官方學習例子:http://developer.xamarin.com/samples/android/all/
Xamarin 配置手冊和離線包下載
http://pan.baidu.com/s/1eQ3qw8a
具體操作:
安裝前提條件(在這裡演示通過的是vs2013+up4)
1、 安裝Visual Studio 2013,安裝過程省略,我這裡安裝的windows10 + vs2013 with update 4。
2、 安裝Java SDK,按照Next一步步安裝,此處省略,如下圖:
3、 安裝Android SDK:因為線上安裝的訪問google存在問題,而且速度慢,這裡採用離線安裝包,拷貝Android SDK到指定目錄
我這裡拷貝到C:\Program Files (x86) 如下圖:
4、 安裝Android NDK:這裡拷貝Android NDK離線包,如下圖:
這裡指定拷貝到C:\Program Files (x86) 如下圖:
5、 安裝Xamarin,按照Next一步步安裝(安裝時注意選擇你的VS版本)。
環境配置
1. 配置JDK
開啟【我的電腦】屬性-【高階系統設定】-【環境變數】如下圖:
1) 第一“JAVA_HOME”:JAVA_HOME的內容是jdk安裝目錄。如小編安裝的位置C:\Program Files (x86)\Java\jdk1.7.0_60,並且後邊不帶分號,如下圖:
2) 第二,檢查CLASSPATH,這是一個jar包的呼叫。.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(前面有點號和分號,後邊結尾也有分號。或者可以寫成“.;%JAVA_HOME%\lib”如圖所示,一樣的效果。如下圖:
3) 第三檢查“PATH"變數是否正確,PATH變數很簡單,就是jdk的bin目錄的意思。%JAVA_HOME%\bin;
4) 安裝了JDK的話,正常CMD下輸入JAVAC時一定可以成功的。就會有如下資訊提示
2. 破解Xamarin
1) 破解Android:複製
mandroid.exe 到 %PROGRAMFILES(x86)%\MSBuild\Xamarin\Android
在cmd命令裡切換到%PROGRAMFILES(x86)%\MSBuild\Xamarin\Android目錄下執行以下命令進行註冊:
mandroid.exe --activate --activation-name=b4a --activation-phone=b4a --activation-company=b4a --activation-code=b4a --activation-email=b4a
詳細步驟如下:
回車後如圖:
在游標後面輸入上面的一串字元:
然後回車就完成註冊了
2) 檢查是否註冊成功
執行命令:mandroid.exe --entitlements > "%temp%"\mfa.txt
再執行命令:type "%temp%"\mfa.txt
注意:如果出現類似於 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx MonoAndroid Priority2015-08-26T05:52:36"的形式則表明註冊成功。
3)破解iOS:複製 mtouch.exe 到 %PROGRAMFILES(x86)%\MSBuild\Xamarin\iOS
在cmd命令裡切換到%PROGRAMFILES(x86)%\MSBuild\Xamarin\iOS目錄下執行以下命令進行註冊:
mtouch.exe --activate --activation-name=b4a --activation-phone=b4a --activation-company=b4a --activation-code=b4a --activation-email=b4a
3. 更新Android SDK
開啟SDK Manager,如下圖:
我這裡離線包,版本23.0.5,如果發現如下platform-tools有更新,可以更新一下
注意:
u 繼續更新SDK下圖中的這些Android X.X.X都是不同版本的android系統開發包,你想進行哪個版本的開發,就下載哪個,高版本相容低版本,也就是你開發一個API 10版本的App,高版本系統的也可以執行。所以你至少應該有最新版本和一個使用比較廣泛的低版本,比如API 8
u 消除SDK更新時的“https://dl-ssl.google.com refused”異常:更新的時候,國內無法連線google 伺服器,可以使用代理,FreeGate就行
解決辦法是:將https://修改為http://
修改方法是:如下圖,在Android SDK Manager->Tools-Options...選項介面,
將“Force https://… sources to be fetched using http://…”勾選!
如果還有錯,可以在檔案(C:\Windows\System32\drivers\etc\hosts)中,新增如下幾行:
203.208.46.146 www.google.com
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com
4. 配置VS2013的SDK和NDK路徑
開啟VS2013的【工具】-【選項】,如下圖:
好了,這個時候你就可以開始開發了。安裝好android模擬器,就可以連線模擬器除錯了
開發例子
開啟VS2013,建立一個VS2013的Android的專案,如下圖:
Ø 點選Android模擬器,配置模擬器,如下圖:
點【建立】
這裡新建模擬器AVD
啟動模擬器,如下圖:
啟動後如下圖:
點【Launch】後,點選後如下圖:
正在啟動。。。。
等待啟動完畢後效果如下:
Ø 在VS2013按F5開始啟動安卓應用,第一次會把安卓應用安裝到模擬器中,如下圖:
模擬器Genymotion安裝
由於android SDK提供的模擬器是在是巨慢無比,太差勁了,所以不得不找一個替代品。基於Virtual Box的GenyMotion絕對是最佳選擇,執行速度非常流暢,不過目前只支援Android4.1.1、4.2.2。
在官網:http://www.genymotion.com/註冊好賬號,並下載安裝GenyMotion,目前最新版本為1.3.0。
安裝之前需要你的電腦上已經安裝Virtual Box(目前最新版為4.3.2),不過我發現我安裝了Virtual Box 4.3.2的情況下GenyMotion無法啟動,所以後來又換成官方推薦的4.2.12,從https://www.virtualbox.org/wiki/Download_Old_Builds_4_2下載。
安裝完成之後:
· 通過”Settings”按鈕:設定好Android SDK路徑,並勾選”When a virtual devices starts, connect it automatically to ADB”,”ADB from Android Developer Tools successfully found”。
· 通過“Add”按鈕
· 新增裝置,然後需要登入
· 如果所選的裝置映象沒有下載,則需要線上下載某個裝置的vbox映象,一般映象大小為200M。
· 通過嚮導提示新增虛擬機器,輸入名稱如“lwme Nexus S - 4.2.2 - with Google Apps - API 17 - 480x800”,再等待虛擬機器建立好
· 通過“Play”按鈕執行虛擬機器
虛擬機器啟動之後,VS的Xamarin.Android工具欄會列出裝置的名稱,選擇這個裝置就可以在GenyMotion模擬器上除錯Android應用程式了。
Ø genymotion常見問題解答
必須支援OpenGL
1、出現"Unable to load VirtualBox engine"提示,之後無迴應。
答:
1、請至C:\Users\USER\AppData\Local\Genymobile,尋找一名為Genymotion的記事本txt檔案。開啟後會看到密密麻麻的一大串,Ctrl+F搜尋" found in settings "往後一點,會看到一個路徑,接著請按照上面的路徑重新安裝即可。
2、看看網上鄰居里面是否有安裝vbox時建立的連線,預設的名字一般為“VirtualBox Host-Only Network”,看看這個連線是否被禁用,如果禁用的話也會有這樣的提示。
3、看看系統的使用者名稱是不是中文的,如果是中文改成英文的,解除安裝後重新安裝。
4、看看是不是安裝的時候開了防毒軟體,如果開了,退出防毒軟體,解除安裝後重新安裝。
VisualGDB除錯Android
1. 安裝VisualGDB,破解版本
² 安裝VisualGDB-4.2r4-trial.msi
² 將Crack下的VisualGDB.exe覆蓋安裝目錄下的檔案,安裝路徑預設為C:\\Program Files\\Sysprogs\\VisualGDB
2. 下載並安裝VisualGDB, 安裝完成後,在Visual Studio的目錄中可以看到Android選項:
附帶
Vbox和Vmware兩款產品都支援3D加速,但有不小區別。那就是對OpenGL和DirectX的支援不一樣,vmware不支援OpenGL的加速只能通過cpu模擬,而vbox兩者均可以通過顯示卡加速。因此Ubuntu的compiz效果在vmware中是不能使用的,而vbox卻可以,想體驗compiz的請繞行vmware。再來說DirectX,vbox:dxdiag,dx7介面報錯,dx8,dx9介面正常。3dmark06,報不支援pixel shader 2.0。vmware:dxdiag,dx7-9介面正常,3dmark06,正常,和host差100多分。 實際使用中,vmware中有些3D遊戲不能執行。
常見問題,如果出現“程式“Mono”已退出,返回值為 0 (0x0)。”,你可以嘗試這麼設定
工作原理
Android應用程式會被編譯為IL程式碼,啟動時再進行JIT編譯(動態編譯),釋出程式的時候會包含一個mono runtime。而iOS則是直接通過AOT編譯(靜態編譯)為ARM彙編程式碼.C#程式碼直接編譯成ARM CPU的機器碼. 因此效能將與原生模式開發的應用程式相比, 沒有不同甚至更好. 而在Android 系統上, 由於Xamarin 不使用Android的Dalvik 虛擬機器器, 改為採用CLR, 經測試其效能更甚於原生的應用程式.
Xamarin 配置手冊和離線包下載
http://pan.baidu.com/s/1eQ3qw8a
學習資料:http://xamarin.csdn.net/module/btc/xamarin/blog
轉發自:http://www.shaoqun.com/a/105700.aspx