Android四大组件:Activity、Service、Broadcast Receiver、Content Provider。
Activity
是Android程序与用户交互的窗口,从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。
Service
就是剥离了界面的Activity,它们在很多Android的概念方面比较接近,都是封装一个完整的功能逻辑,通常都是后台长时间运行,接受上层指令,完成相关事务的模块。定义好需要接受的Intent,提供同步或异步的接口,在上层绑定了它后,通过这些接口(很多时候都是RPC的...)进行通信。
Broadcast Receiver
接收一种或者多种Intent跳转做触发事件,接受相关消息,做一些简单的处理,转换成一条Notification,统一了Android的事件广播模式。
Content Provider
提供第三方应用数据的访问方案。可以派生ContentProvider类,对外提供数据,像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的接口模型,大大简化了上层应用,对数据的整合提供了更方便的途径。
Android 五大布局: FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。
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里面可以具体定义每一个元素。