標籤:
閑來無事,利用c#程式設計語言開發Android瀏覽器。
首先,安裝 VS2010、安裝 Android SDK、配置 AVD(android) 模擬器。
調試的時候開啟 ADV(android 模擬器) 在裡面你自己添加一個機器的型號,設定好解析度,記憶體大小,SD卡,啟動之後,就可以調試了!
調試產生的程式碼是不能發布到真實的機器上的,因為 android 實際程式在真實機器中啟動並執行時候會進行驗證,這個在 netbeans 或 eclipse 裡面叫 key.store
所以發布的時候,要用 netbeans 或 eclipse 裡面一個叫 keytools的工具,產生一個 key.store的檔案
使用格式如下:
D:\Progra~1\Java\jdk1.7.0_11\jre\bin\keytool -genkey -v -keystore xxx-release-key.keystore -alias xxxkeystore -keyalg RSA -keysize 2048 -validity 20000
您的名字與姓氏是什麼?
[Unknown]: huangzhi
您的組織單位名稱是什麼?
[Unknown]: bwsyq co.ltd
您的組織名稱是什麼?
[Unknown]: bwsyq java develop group
您所在的城市或地區名稱是什麼?
[Unknown]: hang zhou
您所在的省/市/自治區名稱是什麼?
[Unknown]: hang zhou
該單位的雙字母國家/區域碼是什麼?
[Unknown]: 86
CN=huangzhi, OU=bwsyq co.ltd, O=bwsyq java develop group, L=hang zhou, ST=hang z
hou, C=86是否正確?
這樣之後或要求你輸入密碼,這時候就會產生一個 xxx-release-key.keystore 的驗證密碼檔案 別名叫: xxxkeystore
不論是 vs2010 還是 netbeans 還是 eclipse 在release的時候都會要求你輸入密碼,密碼驗證通過之後就會產生真正的發布安裝檔案 xxx.APK ,這個就是可以在真實機器上安裝啟動並執行 APP了!
例如: http://pan.baidu.com/share/link?shareid=367259&uk=201606611
這時後還不要高興,這樣編譯的程式還只能運行一般的 APP ,如果要使用google 地圖API ,你還要從 key.store中取出 MD5 密碼
keytool -list -v -alias xxxkeystore -keystore xxx-release-key.keystore
通過這個 keytools的命令去取
然後到 http://www.google.com/glm/mmap google 地圖網站擷取一個根據 MD5產生的 地圖 key
才能在你發布的程式中使用 google 地圖 API
當然了,還有很多,比如如何註冊,使用 admob 如何在你的應用中增加google 移動廣告賺錢,等等,有興趣的可以加入我們的QQ群一起探討交流!
開始開發:建立 android application
產生代碼如下:Activity1.cs 代碼如下:
using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; using Android.Webkit; namespace hz.android.test{ [Activity (Label = "hz.android.test", MainLauncher = true)] public class Activity1 : Activity { int count = 1; protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.Main); Button button = FindViewById<Button> (Resource.Id.myButton); WebView webView = FindViewById<WebView> (Resource.Id.webView1); button.Click += delegate { button.Text = string.Format ("{0} clicks!", count++); webView.LoadUrl("http://blog.csdn.net/tengyunjiawu_com/article/details/8565766"); }; } }}
介面設計是可視化的,所見即所得 (WYSIWYG)的,比 netneans 和 eclipse 強多了,還有很多各種各樣的控制項!
圖1
使用netneans 和 eclipse 來自己寫 axml檔案,這個能拖拉好之後自動產生:
layout/Main.axml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/myButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <WebView android:layout_width="fill_parent" android:layout_height="220.7dp" android:id="@+id/webView1" android:layout_marginBottom="50.0dp" /> <EditText android:inputType="textEmailAddress" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/editText1" android:text="[email protected] QQ:99923309" android:linksClickable="true" /> <DatePicker android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/datePicker1" /> <CheckedTextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/checkedTextView1" /> </LinearLayout>
Resource.designer.cs 這個相當於 netbeans 或 java 開發 Android時自動產生的R.java 類代碼:
//------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // Runtime Version:4.0.30319.239 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------ namespace hz.android.test{ public partial class Resource { public partial class Attribute { private Attribute() { } } public partial class Drawable { // aapt resource value: 0x7f020000 public const int Icon = 2130837504; // aapt resource value: 0x7f020001 public const int lbs = 2130837505; private Drawable() { } } public partial class Id { // aapt resource value: 0x7f050004 public const int checkedTextView1 = 2131034116; // aapt resource value: 0x7f050003 public const int datePicker1 = 2131034115; // aapt resource value: 0x7f050002 public const int editText1 = 2131034114; // aapt resource value: 0x7f050000 public const int myButton = 2131034112; // aapt resource value: 0x7f050001 public const int webView1 = 2131034113; private Id() { } } public partial class Layout { // aapt resource value: 0x7f030000 public const int Main = 2130903040; private Layout() { } } public partial class String { // aapt resource value: 0x7f040001 public const int app_name = 2130968577; // aapt resource value: 0x7f040000 public const int hello = 2130968576; private String() { } } }}
調試的時候開啟 ADV(android 模擬器) 在裡面你自己添加一個機器的型號,設定好解析度,記憶體大小,SD卡,啟動之後,就可以調試了!
調試產生的程式碼是不能發布到真實的機器上的,因為 android 實際程式在真實機器中啟動並執行時候會進行驗證,這個在 netbeans 或 eclipse 裡面叫 key.store
所以發布的時候,要用 netbeans 或 eclipse 裡面一個叫 keytools的工具,產生一個 key.store的檔案
使用格式如下:
D:\Progra~1\Java\jdk1.7.0_11\jre\bin\keytool -genkey -v -keystore xxx-release-key.keystore -alias xxxkeystore -keyalg RSA -keysize 2048 -validity 20000
您的名字與姓氏是什麼?
[Unknown]: huangzhi
您的組織單位名稱是什麼?
[Unknown]: bwsyq co.ltd
您的組織名稱是什麼?
[Unknown]: bwsyq java develop group
您所在的城市或地區名稱是什麼?
[Unknown]: hang zhou
您所在的省/市/自治區名稱是什麼?
[Unknown]: hang zhou
該單位的雙字母國家/區域碼是什麼?
[Unknown]: 86
CN=huangzhi, OU=bwsyq co.ltd, O=bwsyq java develop group, L=hang zhou, ST=hang z
hou, C=86是否正確?
這樣之後或要求你輸入密碼,這時候就會產生一個 xxx-release-key.keystore 的驗證密碼檔案 別名叫: xxxkeystore
不論是 vs2010 還是 netbeans 還是 eclipse 在release的時候都會要求你輸入密碼,密碼驗證通過之後就會產生真正的發布安裝檔案 xxx.APK ,這個就是可以在真實機器上安裝啟動並執行 APP了!
例如: http://pan.baidu.com/share/link?shareid=367259&uk=201606611
真機(在三星、摩托羅拉、HTC 上均測試通過)效果如下:
瀏覽器介面產生apk檔案。
end
使用c#開發的第一款APP的Android瀏覽器(創世紀篇)