我有罪啊,我用了一下午時間,終於無師自學,用C#開發了俺的第一個Android 瀏覽器APP,我對不起java 社區啊(附開發過程講解)
開發流程:
安裝 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=383627&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");
};
}
}
}
界面設計是可視化的,所見即所得的,比 netneans 和 eclipse 強多了,還有很多各種各樣的控件!

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="bwsyq@bwsyq.com 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=383627&uk=201606611
真機(在三星、摩托羅拉、HTC 上均測試通過)效果如下:

上面按鈕點擊后效果:

這時后還不要高興,這樣編譯的程序還只能運行一般的 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群一起探討交流!
下載地址:http://pan.baidu.com/share/link?shareid=383627&uk=201606611
本人也是新手有任何建議、意見、需要代碼的可與我本人聯系 :QQ交流群:72133568, 27236303,74965947, 16592133, 204725117, 204724518
