接着上一讲继续开始写,今天介绍的是安卓的基本组成结构。

在大多数情况下,MONO FOR ANDROID的命名空间和Android的命名空间

是互相映射的。有时候需要大小写,非字母数字字符的用法以及名称进行修改,

以便支持CSharp(C#)语言的写法。

一般的应用程序,类似winform,有一个入口点去启动程序以及初始化相关

资源。而webform有一个默认的启动项。

在安卓开发中,虽然也有默认的入口点,但是安卓并不是我们Dotnet开发所认为

类似winform和webform类型的应用程序。安卓应用程序是由许多个核心组件

关联而成的。这样的结构能够使得安卓程序能够在不同程序之间保持流动性,比如我们

安卓手机发短信的时候可以在通讯录里面选取号码。这就是两个应用程序的交互。

大概的了解下结构就行,主要记住以下几点:

1、每一个安卓程序都必须运行在自己的进程中。

2、每个进程中安卓只会启动一个线程。如果需要使用更多的额外线程需要另外申明,比如后台下载图片之类的。

3、每一个安卓程序都运行在自己的Dalvik(相当于沙盒)虚拟机实例中。也就是说我不管如何捣腾安卓应用程序,不会影响其他应用程序的稳定性。

(但是实际上,在我们自己的安卓手机上如果一个安卓软件崩溃,很有可能导致安卓手机死机。但是在苹果中,才真正做到了这一点)

4、对每个应用程序进行保护,默认情况下,每个程序的数据有自己的仓库。系统会保护应用程序,仅使自己可以访问自己的仓库。

这些都是默认情况下的设置,如果有足够权限,还是可以修改程序设置的。

安卓程序一般是由四个安卓组件构建而成的。

活动,服务,内容提供器,广播接收器。

这里面的Activity就是一个活动。

今天我们就细说活动:

一个活动就是一个可以用来完成单个任务的用户界面组件。当安卓软件运行的时候,应用

程序所显示的或者你所交互的每个屏幕都是有一个或多个行为所启动的。从另一个层面讲,

活动组成了应用程序的表示层。它负责处理向用户显示信息的逻辑,显示控件并收集相关数据,

指导用户来完成所需要的其他活动。

一个应用程序可能由一个或者多个活动组成的。

在安卓程序中由两种方式来启动活动:在安卓的清单中标记好默认启动的活动。

第二种是在当前活动中启动新的一个活动。也就类似winform中一个窗体启动一个新的窗体。

一个活动也是类似我们webform里面一样有生命周期的概念,从活动组件创建到被销毁。

活动有三种状态,分别是:活动,暂停,停止等三种状态。举个例子,QQ软件聊天就是活动的状态,

QQ后台就是一种暂停状态,他的状态保存在内存中,而停止状态则是退出QQ软件的进程。

在活动生命周期中,类似webform的Page页面加载,需要加载很多事件。同样,活动中也是存在

事件的。OnCreate(),OnStart(),OnRestart(),OnStop(),OnDestroy()等等,还有一些就不列举了。

在真正写代码中,常用的两个事件是OnCreate()和OnPause()。

在每个活动中,都继承基类Activity类。这个OnCreate()方法主要用来定义应用程序的初始化。这个方法中,可以通过

使用基类的SetContentView()方法来定义向用户显示的第一个视图。

活动和视图的关系:

在程序中,每个活动可以显示一个单一的视图,或者是视图层次结构。不仅可以在OnCreate()方法中通过SetContentView()

设置视图,还可以在触发事件中启动其他活动来改变视图。

简单的来说如图:

启动活动的OnCreate()方法中的SetContentView()来显示Layout文件下的Main视图文件。

今天的基础知识就介绍到这里,以后将逐一介绍服务,内容提供器,广播接收器。安卓意图,绑定组件:安卓清单的作用。

转载请附带联系人Q-高卿   QQ1466358067

mono for android学习过程系列教程(2)的更多相关文章

  1. mono for android学习过程系列教程(1)

    直接进入主题,关于mono for android的学习,首先配置好环境,如何配置环境,度娘谷歌一大堆,记得使用破解版. 我自己是百度“黑马四期”传智播客的视频,里面有破解版开发环境的软件. 今天直接 ...

  2. mono for android学习过程系列教程(7)

    首先说个抱歉,这段时候由于个人原因未及时更新博客.故此今天先给大家来个小料. 以后会及时更新我自己的学习过程. 不多说,终于私人生活安定下来了,可以安心学习.直接进入主体: 今天咱们摒弃所有的前面的知 ...

  3. mono for android学习过程系列教程(3)

    服务 接着上一讲的内容,咱们继续来唠叨概念性的东西.服务,内容提供器,广播接收器等理论知识. 首先是服务,它不是一个可视化的组件或者视图.他是由我们开发人员来定义,可以一直一直运行 的工作单元.跟活动 ...

  4. mono for android学习过程系列教程(4)

    今天要讲的事情是构建安卓程序的UI界面. 首先给大家上点小点心,如图: 上面就是我们界面的设计模块,仔细看中间大块的下方,有一个Source,这就类似webform里面的设计和源代码界面. 在这个页面 ...

  5. mono for android学习过程系列教程(5)

    这一讲主要需要了解的安卓UI元素是Spinner.这个元素类似我们 winform和webform里面的下拉选项. 首先我们先建立一个新的项目,命名为SpinnerExample. 然后在Layout ...

  6. mono for android学习过程系列教程(6)

    接着上一讲,今天讲的是Button,CheckBox这二个安卓元素, 我们来看第一个Button这个控件,类似winform和webform里面一样,它也是 存在有触发事件的,我们新建初始化项目直接就 ...

  7. [转]Android Studio系列教程六--Gradle多渠道打包

    转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...

  8. 【Android进阶系列教程】前言

    起因 因为初学Android的时候还没有写博客的意识,现在Android的门是入了,正在进阶的道路上行走,但是就这一路也走了不少的弯路.我想,总得来说Android入门还是比较容易的,网络资源比较丰富 ...

  9. Android Studio系列教程六--Gradle多渠道打包

    Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzh ...

随机推荐

  1. setTimeout 的黑魔法

    setTimeout,前端工程师必定会打交道的一个函数.它看上去非常的简单,朴实.有着一个很不平凡的名字--定时器.让年少的我天真的以为自己可以操纵未来.却不知朴实之中隐含着惊天大密.我还记得我第一次 ...

  2. 13、零配置Struts2开发

    Convention 插件 从 Struts 2.1 开始, Struts 可以使用 Convention 插件来支持零配置: Convention 插件完全抛弃配置信息, 不仅不需要使用 strut ...

  3. [C#] C# 知识回顾 - 特性 Attribute

    C# 知识回顾 - 特性 Attribute [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5911289.html 目录 特性简介 使用特性 特性 ...

  4. PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)

    最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...

  5. 中国CIO最关心的八大问题(下)

    中国CIO最关心的八大问题(下) 从调研数据还可以看出,在企业级IT建设与投资上,CIO们并非是一群狂热的技术信徒,他们更多的是从企业发展阶段.信息化程度.技术成熟度.ROI等方面进行综合评估. 五. ...

  6. Mysql - 增删改

    因为项目原因, mysql用了两年了, 但是一直都未曾去总结过. 最近也是领导让总结项目, 才想起把mysql的使用小结一下. 一. Create 1. 单条插入, sql格式: insert int ...

  7. Linux设备管理(四)_从sysfs回到ktype

    sysfs是一个基于ramfs的文件系统,在2.6内核开始引入,用来导出内核对象(kernel object)的数据.属性到用户空间.与同样用于查看内核数据的proc不同,sysfs只关心具有层次结构 ...

  8. BZOJ 3110: [Zjoi2013]K大数查询 [树套树]

    3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 6050  Solved: 2007[Submit][Sta ...

  9. .NET面试题系列[5] - 垃圾回收:概念与策略

    面试出现频率:经常出现,但通常不会问的十分深入.通常来说,看完我这篇文章就足够应付面试了.面试时主要考察垃圾回收的基本概念,标记-压缩算法,以及对于微软的垃圾回收模板的理解.知道什么时候需要继承IDi ...

  10. WPF自定义控件第二 - 转盘按钮控件

    继之前那个控件,又做了一个原理差不多的控件.这个控件主要模仿百度贴吧WP版帖子浏览界面左下角那个弹出的按钮盘.希望对大家有帮助. 这个控件和之前的也差不多,为了不让大家白看,文章最后发干货. 由于这个 ...