使用 Xamarin 开发 Android 应用 已翻译 100%

oschina 投递于 2014/01/16 22:18 (共 7 段, 翻译完成于 01-17)
阅读 10110
收藏 43
4
加载中

过去几个月里,我开发了一款应用,这不仅仅是我的个人作品更是服务于我目前雇主Telefonica的客户,借此来提高客户的满意度。

刚开始需求很简单,就是采集数据并发送到邮件。但将应用从window sphone移植到android对于我来说就很有挑战了。

我明白要上手android开发要花时间,我也找了很多能让我更快上手的资料。之前我也知道Xamarin,而且也有一年期限的andriod使用权(可能以后还要搞ios)

petert
petert
翻译于 2014/01/17 09:56
1

一些windows phone开发的同道中人可能会开始不满了。先别着急,我能理解。我当然也会一如既往的热爱Windows Phone开发,它也是我的首选。但从个人发展的角度-这是个很好的机会,它能让我在工作当中提高我的开发技能。这是个很好的开始

回到主题。

在这篇博文发布的同时,我已经开了一个新版块介绍利用Xamarin框架开发andrioid应用。使用框架的好处使我能用C#去开发其它平台的应用,这能大大降低开发的难度。

petert
petert
翻译于 2014/01/17 10:07
1

如果直接转去做另一个平台的开发,你需要了解平台的架构,如若不然,你可能很快就迷失了方向。每个平台都有自己的界面设置规则,保存机制等等。这些我会在后续的博文中说明。

需要移植的windows phone应用中有个Pivot对象,我就直接把它放到android里。虽然外观有点区别,当功能类似,都是通过触摸header或是滑动界面来查看各个子项。

如何实现这个功能,我得先好好研究一下android-以后我会贴出来跟大家分享

主要内容如下:

  • Xamarin安装使用初步(本文)

  • 设置Android调试部署机

  • 资源(界面,字符串,等)

  • 活动和视图

  • 安卓应用状态

  • 切片

  • 隐藏显示安卓键盘

  • 焦点控制

  • 使用SQLite数据库保存数据

  • 使用Intents发送邮件或保存日历项

  • 从通讯录中获取联系方式

  • List集合和适配器

  • 创建SplashScreen

  • 更多… (我会同步更新内容列表链接)

petert
petert
翻译于 2014/01/17 10:47
1

安装Xamarin

装Xamarin很简单-不过需要花些时间。从这里下载IDE。安装中会询问你的开发平台(这里就选安卓)然后会下载很多开发包,像是java和Andriod的SDK(安卓是基于java的)

Screenshot (267)

上述截图展示了Xamarin的开始界面。界面左边是最近的工作项目列表,中间是有关Xamarin的新闻,最右边是应用的预览

petert
petert
翻译于 2014/01/17 10:49
1

Xamarin开发环境和VS很像,你可以按照自己喜好做很多的设置。点击‘New’ button来生成一个新的项目

Screenshot (270)

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在应用启动前会自动生成添加项目名称标签和加载器属性的活动

petert
petert
翻译于 2014/01/17 10:50
1

想在应用上显示内容,需要在代码中添加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委派相关事件了.

petert
petert
翻译于 2014/01/17 11:05
1

点击按钮后,文本会根据点击的次数做出相应的改变。

想要更深入的理解安卓应用开发框架,我强烈建议阅读相关文档。对我来说,下面这些资源很有帮助:

此外还有很多有用的资源,但对于初学者上面四个足矣。我会在以后的博文中持续更新上述主题的相关资源链接.

对于从Windows Phone平台过来的开发们,StackOverflowXamarin  Android forums会是你们的好帮手.

敬请期待我的下篇博文!

petert
petert
翻译于 2014/01/17 11:07
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(24)

榕树下_
榕树下_

我现在向往xamarin

xjemiya
xjemiya

引用来自“林默”的评论

怎么这么多喷子?

微软的东西一向喷子多,看开点就好了
林默
怎么这么多喷子?
树相马
树相马
其实里面还是掺杂了很多java的语言,你乐意?意识是纯C#是不能开发到高级功能的
榕树下_
榕树下_
卧槽,我宁愿去学一门语言。
iBoxDB
iBoxDB
从核心角度来看,Xamarin能把C#的真泛型编译为本地代码哪是一种技术突破,不要认为这很容易,像C++一样, Java一直都没引入真泛型,虚拟代码带反射能力的真泛型是很难的
你来人间一趟
你来人间一趟
不要去喷别人 ,每个你眼中的脑残可能是下一个低调的天才
HenryChan
HenryChan
貌似不是199刀,而是299刀
Minho
Minho

引用来自“fireflyc”的评论

注意看,你没有办法说清楚这个东西是什么。跨设备的移动应用是一个很诱人的想法,一般情况下都会提供一套Library对iOS、Android这些原生sdk进行封装,这样在这个library之上构建的应用就自然的具有了跨设备的特性。Xamarin的问题就在这里,它只是允许你用C#来开发android、iOS应用仅此而已。(它没有一个跨设备Library仅仅是C#糖果衣?)

android平台可以直接导出apk文件,ios平台也可以直接导出可以安装的文件。其实他就是一个编译器,对不同平台进行不同的编译!
otgo
otgo

引用来自“Raymin”的评论

舔微软的屁股长大的。

请把“股”字改为“眼”
返回顶部
顶部