博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity、window、view一些知识点
阅读量:4165 次
发布时间:2019-05-26

本文共 1719 字,大约阅读时间需要 5 分钟。

参考自书籍《Android移动开发》

Android进程的优先级从高到低依次是前台进程、可见进程、服务进程、后台进程和空进程。

在这里插入图片描述

  1. 前台进程:是Android系统中最重要的进程,是与用户正在进行交互的进程。其重要性最高。 一般满足以下情况可视为前台进程:

a、进程正在最前端运行一个与用户交互的Activity[Activity的onResume()方法被调用]

b、进程中有一个正在运行的BroadcastReceiver[BroadcastReceiver.onReceive()方法正在被执行]
c、进程中有一个Service,并且在Service的某个回调函数内正有执行的代码。

  1. 可见进程:是指部分程序界面能够被用户看见,却不在前台与用户交互,不影响界面事件的进程。 一般满足以下情况可视为可见进程:

a、有一个非前台但是仍然可对用户可见的Activity[Activity的onPause方法被调用]。例如前台Activity是一个对话框,上一个Activity还是部分可见的,即上一个Activity所属进程为可见进程。

b、具有一个绑定到可见Activity的Service.

  1. 服务进程是指包含已启动服务的进程。•没有用户界面•在后台长期运行

  2. 后台进程:后台程序运行着对用户不可见的Activity[Activity的onStop方法被调用],这些进程对用户体验没有直接的影响。

Android系统中一般存在数量较多的后台进程,在系统资源紧张时,系统将优先清除用户较长时间没有见到的后台进程。

  1. 空进程是不包含任何活跃组件的进程,系统可能随时关闭这些进程。

在这里插入图片描述

Activity的四种状态:

在这里插入图片描述
  一般我们会在onStop方法保存当前数据和当前的UI状态,而同时在onPause方法保存重要的数据。
  onPause方法在Android系统中要求执行的时间是“短暂”的,因为要马上启动一个Activity,所以onPause方法中不能有太多的处理。
在这里插入图片描述
用户界面基础
  View在Android中可以理解为视图。它占据屏幕上的一块矩形区域,负责提供组件绘制和事件处理的方法。View类是所有widgets组件的基类,例如,TextView(文本框)、EditText(编辑框)和Button(按钮)等都是widgets组件。
  View类位于android.view包中;文本框组件TextView是View类的子类,位于Android.widget包中。
  ViewGroup在Android中可以理解为容器。ViewGroup类继承自View类,它是View类的扩展,是用来容纳其他组件的容器,但是由于ViewGroup是一个抽象类,所以在实际应用中通常总是使用它的子类作为容器的,例如布局容器。
  在Android中,所有的UI界面都是有View类和ViewGroup类及其子类组合而成的。在ViewGroup类中,除了可以包含普通的View类外,还可以再次包含ViewGroup类。实际上,这使用了Composite(组合)设计模式。UI组件的层次结构如下:
在这里插入图片描述

Padding和Margins

  Padding表示在View的顶部、底部、左侧和右侧的填充像素,它也被称为内边距。它设置的是内容与View边缘的距离。Padding将占用View的部分高度和宽度。
  Margins表示组件的顶部、底部、左侧和右侧的空白区域,称为外边距。它设置的是组件与父容器的距离。Margins不占用View组件的宽度和高度。为组件设置外边距后,该组件将远离父容器指定的距离,如果还有相邻组件,那么也将远离其相邻组件指定距离。
  关于Padding和Margins的区别如下图:
在这里插入图片描述
px、dp和sp
  px(Pixels,像素):每个px对应屏幕上的一个点。例如1024x720分辨率
  dp(设置独立像素):一种基于屏幕密度的抽象单位,也可以使用dip。在每英寸160点的显示器上,1dp=1px。但随着屏幕密度的改变,dp与px的换算也会发送变化。
  sp(比例像素):主要处理字体的大小,可以根据用户字体大小首选项进行缩放。

转载地址:http://rmoxi.baihongyu.com/

你可能感兴趣的文章
extern"C"的使用
查看>>
使用nm命令获取linux的可执行文件里或动态库中的所有函数名称
查看>>
关于free命令 内存的详细介绍以及如何手动释放内存
查看>>
Linux使用free命令buff/cache过高
查看>>
如何定义结构体变量及如何使用
查看>>
c语言中 有无bool 这个变量
查看>>
SVN错误:cannot show diff because of inconsistent of newline in the file 的解决方法
查看>>
回调函数的使用总结(非常重要)
查看>>
头文件.H使用注意事项总结
查看>>
无论是static还是非static的局部变量,每个线程都是私有的,其他线程不会对其进行干扰。
查看>>
linux下守护进程启动一个新应用进程的区别system、open和execl (execl在Ubuntu和linux执行的区别)
查看>>
memcpy使用函数注意(如果格式不一样如:memcpy(&A[0],(char *)&B,4))
查看>>
一个结构体的双指针和一个结构体的数组指针使用例子(都可以)
查看>>
多个.C和.H文件的相互调用以及变量的跨文件使用
查看>>
转:Linux 各种BCD时间与Unix时间戳格式转换
查看>>
串口阻塞和非阻塞
查看>>
共用体位域的高低位
查看>>
linux的添加网关 查看网关等信息
查看>>
浅谈C++类中的公有和私有
查看>>
std::string用法总结
查看>>