C#开发Android应用-入门(一)

Xamarin 是由早期的Mono项目演变而来,原本是在Linux上执行C#程序的一个开放原始码项目。后来陆续发表支持iOS的Mono Touch framework以及Mono For Android Framework。因此它在市场上并不是一个新的产品。2011年,原本在Novell的Mono项目团队独立成立一家公司,正式将名称改为Xamarin。 
透过 C#亲和且功能齐全的语言特性,搭配.NET Framework 的 Base Class Library(BCL)的便利性,让开发人员能以最高的生产力开发行动装置应用程序。目前 Mono 支持 C# 5.0 的语言规范,开发人员可以用Lambda Expression、LINQ 甚至是 Async/Await 的异步处理。

Xamarin Studio是一个用C#语言开发跨平台应用的集成开发环境,它和iOS以及Android SDK紧密整合。

Xamarin还提供了for vs2010 vs2012的插件,这个是比较吸引人的地方。该插件可以很好地与微软的生态系统集成,可以在Mac OS机器的仿真器上进行远程调试和测试。在Mac OS上,因为iOS的现有限制,面向iOS的C#代码会通过AOT编译技术直接编译为ARM汇编代码。而在Android上,应用程序会转换为IL,启动时再进行JIT编译。

安装好Xamarin插件后,就可以自已熟悉的C#的语言开发Androd应用了,注册用户后就可免费学习、试用了,试用期满后,可重新注册用户继续学习试用。

Android应用程序的行为与交互更像是一组相关联的子应用程序,而不是一个严格意义上的单一实体。由多个核心组件关联而成,根据需要调用和实例化这些组件,这些组件之间独立工作,分四类组件:

  1. 活动
  2. 服务
  3. 内容提供器
  4. 广播接收器

1)活动,用来完成单个任务的用户界面组件。指定启动活动:MainLauncher
=true

活动:拥有两个基本操作:视图集合、活动类

活动三种状态:

活动:当活动下在设备上运行且位于屏幕前台时

暂停:当另一活动覆盖了当前活动时,此时没有屏幕焦点,但仍在运行

停止:窗口被隐藏了,进行销毁的最佳目标,以释放资源

当状态变化时,通过事件作出适当的响应,有:OnCreate()、OnStart()、OnRestart()、OnResume()、OnPause()、OnStop()及OnDestroy

如:

OnCreate():定义初始化活动,可通过基类Activity的SetContentView()方法来定义第一个视图,可选择各种资源,为控件分配事件处理程序的委托等

OnPause():当离开时,可关闭系统资源。

Button、ImageView、TextView继承于View类,layout是视图组

2)服务,可以运行的工作单元,没有可视化组件。如:邮件应用程序、周期进行更新等

3)内容提供器,如:MediaStore:设备上的媒体访问、Settings设置,CallLog提供电话打入打出等信息。

ContentResolver:对象处理与内容提供器的交互,充当数据存储的介质。

ContentProvider:定义了可在实现的提供器上执行的所有可能操作。

4)广播接收器,用于监听事件并作出响应的应用程序组件。与服务相似处,无任何用户界面组件。回调方法OnReceive()

Android清单,创建一个相互独立但又相互合作的应用程序了.

布局控件:LinearLayout: 对齐,水平或垂直、RelativeLayout相对、TableLayout:相当于表格,TablesRows

案例1-1:LinearLayout

<LinearLayoutxmlns: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"

/>

<Spinner

android:id ="@+id/widget27"

android:layout_width ="wrap_content"

android:layout_height ="wrap_content"
>

</Spinner>

</LinearLayout>

Orientation可改为水位方向:horizontal,此时调整前面的宽度为android:layout_width="200px"

主要代码为:

publicclassActivity1
:Activity

{

int
count = 1;

protectedoverridevoid
OnCreate(Bundle bundle)

{

base.OnCreate(bundle);

SetContentView(Resource.Layout.Main);//初始化一个资源包

Button
button = FindViewById<Button>(Resource.Id.MyButton);//获取一个按钮

button.Click +=
delegate { button.Text =string.Format("{0}
clicks!", count++); };//添加一个事件

}

}

Activity是Android程序设计的核心,OnCreate函数是初始化一个资源包(Main),从该视图中获取一个按钮,并为其添加一个事件。

案例1-2:TableLayout

<TableLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<Spinner

android:id ="@+id/widget1"

android:layout_width="wrap_content"

android:layout_height ="wrap_content"

></Spinner>

<TableRow
>

<EditText

android:id
="@+id/widget29"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text
="你好呵"

android:textSize
="18sp"

/>

<Button

android:id="@+id/MyButton"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="TableLayoutBut"

/>

</TableRow>

</TableLayout>





C#开发Android应用-入门(一)

时间: 2024-11-02 23:33:30

C#开发Android应用-入门(一)的相关文章

Android基础入门教程——1.2 开发环境搭建

Android基础入门教程--1.2 开发环境搭建 现在主流的Android开发环境有: ①Eclipse + ADT + SDK ②Android Studio + SDK ③IntelliJ IDEA + SDK 现在国内大部分开发人员还是使用的Eclipse,而谷歌宣布不再更新ADT后,并且官网也去掉了集成Android开发环境的Eclipse下载链接,各种现象都表示开发者最后都终将过渡到Android Studio,当然这段过渡时间会很长,但如果你是刚学Android的话建议直接冲And

Android基础入门教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP

Android基础入门教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础入门教程 1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新版本的 ADT Bundle供大家下载! 2.直接使用打包好的Eclipse 32位版:adt-bundle-windows-x86-20140

[Android]_[初级]_[Android开发环境配置入门(Windows)]

场景: 1. 突然接到android的开发任务时如何配置android开发环境? 2. 现在的android studio是基于idea的,在我的电脑上运行奇慢和卡.而且有遗留eclipse项目,大部分教程都是基于eclipse的. 所以入门来说adt开发android程序比较适合. 3. 如果有深入研究的话,直接用其他ide配合build sdk开发也不是不行. 第一步. 配置ADT的Android开发环境. 注意1: 如果要下载所有的Android API,会耗费很大空间,所以选择比较特殊的

[转]Android OpenGL ES 开发教程 从入门到精通

本文转自:http://blog.csdn.net/mapdigit/article/details/7526556 Android OpenGL ES 简明开发教程 Android OpenGL ES 简明开发教程一:概述 Android OpenGL ES 简明开发教程二:构造OpenGL ES View Android OpenGL ES 简明开发教程三:3D绘图基本概念 Android OpenGL ES 简明开发教程四:3D 坐标变换 Android OpenGL ES 简明开发教程五

Android基础入门教程——1.2.2 使用Android Studio开发Android APP

Android基础入门教程--1.2.2 使用Android Studio开发Android APP 标签(): Android基础入门教程 写在前面 本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快捷键,小技巧等会再另一篇文章中详细地介绍! 1.下载Android Studio 官网下载:Android Studio for Window - 百度云下

带领新手快速开发Android App开发视频课程 安卓快速入门教程

第1章 课程介绍与项目准备如果你从事Android开发,那你一定要学习一些开发技巧和掌握一些开发逻辑,而很不巧,我这里全部都有,最开始我们介绍一下我们这个应用的整体组织架构,通过对各个平台的api进行一个简单的分析,以及说明一下我们的RxVolley的网络框架使用教程,在本章中,我们将分析整个项目的大致架构,同时,我们有规范性的部署我们的项目... 第2章 工具类封装与首页引导页开发项目最讲究的前期架构搭建,我们把标准的Log和SharedPreferences进行封装,同时开发我们的首页和引导

Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3

Android基础入门教程--8.1.3 Android中的13种Drawable小结 Part 3 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来把剩下的四种Drawable也学完,他们分别是: LayerDrawable,TransitionDrawable,LevelListDrawable和StateListDrawable, 依旧贴下13种Drawable的导图: 1.LayerDrawable 层图形对象,包含一个Drawable数组,然后按照数组对应的顺序来

Android基础入门教程——8.1.2 Android中的13种Drawable小结 Part 2

Android基础入门教程--8.1.2 Android中的13种Drawable小结 Part 2 标签(空格分隔): Android基础入门教程 本节引言: 本节我们继续来学习Android中的Drawable资源,上一节我们学习了: ColorDrawable:NinePatchDrawable: ShapeDrawable:GradientDrawable!这四个Drawable~ 而本节我们继续来学习接下来的五个Drawable,他们分别是: BitmapDrawable:Insert

Android基础入门教程——2.3.12 Date &amp; Time组件(下)

Android基础入门教程--2.3.12 Date & Time组件(下) 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来继续学习Android系统给我们提供的几个原生的Date & Time组件,他们分别是: DatePicker(日期选择器),TimePicker(时间选择器),CalendarView(日期视图),好吧, 其实一开始让我扣这几个玩意我是拒绝的,因为在我的印象里,他们是这样的: 简直把我丑哭了,有木有,终于知道为什么那么多人喜欢自定义这种类型的