好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

用C#开发了一个Android 浏览器APP

用C#开发了一个Android 浏览器APP

我有罪啊,我用了一下午时间,终于无师自学,用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=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 " );

             };

         }

     }

}

界面设计是可视化的,所见即所得的,比 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=367259&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群一起探讨交流!

本人也是新手有任何建议、意见、需要代码的可与我本人联系 :QQ交流群:72133568, 27236303,74965947, 16592133, 204725117, 204724518 

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于用C#开发了一个Android 浏览器APP的详细内容...

  阅读:59次