过去几个月里,我开发了一款应用,这不仅仅是我的个人作品更是服务于我目前雇主Telefonica的客户,借此来提高客户的满意度。
刚开始需求很简单,就是采集数据并发送到邮件。但将应用从window sphone移植到android对于我来说就很有挑战了。
我明白要上手android开发要花时间,我也找了很多能让我更快上手的资料。之前我也知道Xamarin,而且也有一年期限的andriod使用权(可能以后还要搞ios)
一些windows phone开发的同道中人可能会开始不满了。先别着急,我能理解。我当然也会一如既往的热爱Windows Phone开发,它也是我的首选。但从个人发展的角度-这是个很好的机会,它能让我在工作当中提高我的开发技能。这是个很好的开始
回到主题。
在这篇博文发布的同时,我已经开了一个新版块介绍利用Xamarin框架开发andrioid应用。使用框架的好处使我能用C#去开发其它平台的应用,这能大大降低开发的难度。
如果直接转去做另一个平台的开发,你需要了解平台的架构,如若不然,你可能很快就迷失了方向。每个平台都有自己的界面设置规则,保存机制等等。这些我会在后续的博文中说明。
需要移植的windows phone应用中有个Pivot对象,我就直接把它放到android里。虽然外观有点区别,当功能类似,都是通过触摸header或是滑动界面来查看各个子项。
如何实现这个功能,我得先好好研究一下android-以后我会贴出来跟大家分享
主要内容如下:
Xamarin安装使用初步(本文)
活动和视图
安卓应用状态
切片
隐藏显示安卓键盘
焦点控制
使用SQLite数据库保存数据
使用Intents发送邮件或保存日历项
从通讯录中获取联系方式
List集合和适配器
创建SplashScreen
更多… (我会同步更新内容列表链接)
安装Xamarin
装Xamarin很简单-不过需要花些时间。从这里下载IDE。安装中会询问你的开发平台(这里就选安卓)然后会下载很多开发包,像是java和Andriod的SDK(安卓是基于java的)
上述截图展示了Xamarin的开始界面。界面左边是最近的工作项目列表,中间是有关Xamarin的新闻,最右边是应用的预览
Xamarin开发环境和VS很像,你可以按照自己喜好做很多的设置。点击‘New’ button来生成一个新的项目
Xamarin会自动生成一个.slh文件。新工程下会产生如下代码:
using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; namespace gettingstarted { [Activity (Label = "gettingstarted", MainLauncher = true)] public class MainActivity : Activity { int count = 1; protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById<Button> (Resource.Id.myButton); button.Click += delegate { button.Text = string.Format ("{0} clicks!", count++); }; } } }
上面这些代码会搭建出一个基本的安卓应用框架。
安卓系统主要通过活动来运行这就好比C#工程中操作生成文件的相关代码。Xamarin在应用启动前会自动生成添加项目名称标签和加载器属性的活动
想在应用上显示内容,需要在代码中添加Layout或是创建视图。这正是SetContentView()方法要干的事。如果没有这些,应用会正常启动但没有任何内容显示。在示例代码中,创建了一个带有按钮的视图:
<?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" /> </LinearLayout>
这有一个和C#工程不同的地方。这里需要使用FindViewById<T>()方法来查找Button以便设置其可见性。一旦设置好了可见性,就能针对button委派相关事件了.
点击按钮后,文本会根据点击的次数做出相应的改变。
想要更深入的理解安卓应用开发框架,我强烈建议阅读相关文档。对我来说,下面这些资源很有帮助:
此外还有很多有用的资源,但对于初学者上面四个足矣。我会在以后的博文中持续更新上述主题的相关资源链接.
对于从Windows Phone平台过来的开发们,StackOverflow和Xamarin Android forums会是你们的好帮手.
敬请期待我的下篇博文!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务