这一次,我倾尽所有,换你一世陪伴。
Android App组件架构,通常就是我们所说的四大组件,指的就是Activity、BroadCastReciever、ContentProvider、Service,它们是组成一个Android App的最基本元素。
四大组件详解
1. Activity
Activity是Android程序与用户交互的窗口,从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。
(说白了就是每个软件启动开,那个展示在屏幕上的界面就是个Activity)
2. BroadCastReciever
BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。
在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等。
3. ContentProvider
提供第三方应用数据的访问方案。可以派生ContentProvider类,对外提供数据,像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的接口模型,大大简化了上层应用,对数据的整合提供了更方便的途径。(像读取短信或者联系人,可以通过ContentProvider)
4. Service
就是剥离了界面的Activity,它们在很多Android的概念方面比较接近,都是封装一个完整的功能逻辑,通常都是后台长时间运行,接受上层指令,完成相关事务的模块。定义好需要接受的Intent,提供同步或异步的接口,在上层绑定了它后,通过这些接口(很多时候都是RPC的…)进行通信。(像QQ音乐等一系列音乐播放器后台运行)
五大布局详解
FrameLayout(框架布局)
所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。
LinearLayout(线性布局)
每一个LinearLayout里面又可分为
垂直布局(android:orientation="vertical"
)
水平布局(android:orientation="horizontal"
)
当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下
水平布局时,只有一行,每一个元素依次向右排列。
AbsoluteLayout(绝对布局)
绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。
RelativeLayout(相对布局)
相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:
相对于某一个元素:android:layout_below
android:layout_toLeftOf
相对于父元素的地方android:layout_alignParentLeft
android:layout_alignParentRigh
TableLayout(表格布局)
每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素。
每一个布局都有自己适合的方式,这五个布局元素可以相互嵌套应用,做出美观的界面。