zoukankan      html  css  js  c++  java
  • mono for android学习过程系列教程(2)

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

    在大多数情况下,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

  • 相关阅读:
    几种数据结构的查找、删除、插入的时间复杂度(数组 链表 二叉查找树 平衡二叉查找树 哈希表)
    java 多线程的状态迁移 常用线程方法分析
    JVM内存分区
    详解 Java I/O 与装饰者模式
    详解 java 异常
    ExecutorService 线程池详解
    CG group
    VIM 配置python
    Q35+uefi or bios+legacy // PCI | PCIE
    硬盘接口协议
  • 原文地址:https://www.cnblogs.com/gao3705512/p/3650707.html
Copyright © 2011-2022 走看看