zoukankan      html  css  js  c++  java
  • Android starting 4四大组件之一Activity入门

    今天找到了一个Android自学的好资料,{Android学习指南},这是一个大侠的博客,很给力,很详细,个人觉得帮助很大,网址是:http://android.yaohuiji.com/about

    本文部分摘自大侠的博客哦,http://android.yaohuiji.com/archives/141,还有的摘自http://emmet1988.iteye.com/blog/1071985

    1.Android应用程序的四大组件

    Android应用程序是用Java语言编写的,编译后的java代码---包括应用程序要求的任何数据和资源文件,通过aapt(Android Asset Packaging Tool)工具捆绑成一个Android包,归档文件以.apk为后缀。这个文件就类似于塞班系统中我们可以安装的sis或sisx格式的文件一样,可以直接传到Android模拟器或者手机上,它是分发应用程序和安装到移动设备的中介或工具,一个.apk文件中的所有代码被认为ushi一个应用程序。

    aapt这个工具在SDK的tools目录下,查看、创建、更新与zip兼容的归档文件,也能将资源文件编译成二进制包。.apk文件,解压缩后,目录结构为:

    image

    如果想要更细致的了解aapt,我们可以运行XXXXX\android-sdk-windows\platform-tools目录下aapt.exe文件。

    在许多方面,每个android应用程序生活在它自己的世界中:

    1.默认情况下,每一个应用程序运行在自己的Linux进程中,当应用程序中的任何代码需要执行时,Android将启动进程;当它不再需要和系统资源被其他应用程序请求时,Android将进程关闭。

    2.每个应用程序都有他自己的JMjava虚拟机,因此应用程序代码独立与其他所有应用程序的代码运行。

    3.默认情况下,每一个应用程序分配一个唯一的Linux用户的ID。权限设置为每个应用程序的文件仅对用户和应用程序本身可见。

    四大组件是:Activity、Service、Broadcast receiver和Content provider

    今天只详细学习Activity:

    (1)一个活动表示一个可视化的用户界面,关注一个用户从事的事件。例如一个文本短信应用程序可能有一个活动,显示联系人的名单发送信息;第二个活动,写信息给选定的联系人;其他活动,可能重新查看就信息或更改设置。虽然他们一起工作形成一个整体的用户界面,但是每个活动是独立于其他活动的。每个都是作为一个Activity基类的子类实现。

    因为几乎所有的activities都是与用户交互的,所以activity类关注创建窗口,可以用setContentView(View)将自己的UI放到里面。然而活动通常以全屏的方式展示给用户,也可以以浮动窗口或嵌入在另一个活动中。有两个方法是几乎所有子类都要实现的:

    A. onCreate(Bundle):初始化活动,比如完成一些图形的绘制。最重要的是,在这个方法里通常将用布局资源(layout resource)调用setContentView(View)方法定义的你的UI。

    B. onPause():处理当离开你的活动时要做的事情。最重要的是,用户做的所有改变应该这里提交(通常用Content Provider保存数据)。

    (2)理解activity生命周期

    手机最重要的功能就是打电话,也就意味着电话来的时候,可能要把当前运行的程序暂停,如果电量不足的时候也可能随时要把现有的程序关闭;因此android程序和电脑的程序不同,具体到activity,它的生命周期不是自身控制的,而是有android系统控制的。

    在android中activity油四种基本状态:

    Running:位于屏幕最前端,此时处于可见状态,和用户可交互的状态。

    Paused:当activity被另一个透明的或者非全屏的activity覆盖时的状态叫Paused状态,虽然可见但是不能交互。

    Stop:当activity被另外一个activity所覆盖、界面不可见时处于stop状态。

    Killed:activity被系统杀死或者根本没启动时就是killed状态。

    image

    这个图可以很清楚的表示出activity得生命周期(借来的眨眼

    Activity栈:

    image

    正在运行的activity处在栈的最顶端,是running状态。

    当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。

    当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。

    譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。

    (未完待续……)

  • 相关阅读:
    【Java EE 学习 81】【CXF框架】【CXF整合Spring】
    【Java EE 学习 80 下】【调用WebService服务的四种方式】【WebService中的注解】
    【Java EE 学习 80 上】【WebService】
    【Java EE 学习 79 下】【动态SQL】【mybatis和spring的整合】
    【Java EE 学习 79 上】【mybatis 基本使用方法】
    【Java EE 学习 78 下】【数据采集系统第十天】【数据采集系统完成】
    【Java EE 学习 78 中】【数据采集系统第十天】【Spring远程调用】
    【Java EE 学习 78 上】【数据采集系统第十天】【Service使用Spring缓存模块】
    【Java EE 学习 77 下】【数据采集系统第九天】【使用spring实现答案水平分库】【未解决问题:分库查询问题】
    【Java EE 学习 77 上】【数据采集系统第九天】【通过AOP实现日志管理】【通过Spring石英调度动态生成日志表】【日志分表和查询】
  • 原文地址:https://www.cnblogs.com/lx09110718/p/2270979.html
Copyright © 2011-2022 走看看