主要内容:
1.Activity的基本启动流程
2.Activity与布局文件之间的关系
3.如何在Activity当中获取代表控件对象
Activity启动基本流程(以后有能力了再分析下源码)
如上图所示:
1.AndroidManifest.xml:当一个应用程序启动的时候,Android OS会去读取这个app的AndroidManifest.xml文件(这个文件包括了这个应用程序的全部组件,activity也是这些组件之一,activity也是在这个文件中注册的。),在AndroidManifest.xml可能有多个Activity,在Android OS读取过AndroidManifest.xml后就会启动一个默认的Activity。通常这个默认的activity就是MainActivity
2.MainActivity:在启动默认的activity后,就会创建一个MainActivity类,这个类就会自动调用其中的方法onCreate(),这个onCreate()方法就会读取activity_main.xml文件来决定这个默认的activity该如何在界面上显示(setContentView).
3.整个流程都是由Android OS来工作的。也就是app framework的工作。
Activity与布局文件(activity_main.xml)的关系
举个例子:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:background="#FF0000"
android:textSize="40sp"
android:text="@string/Shanl" />
</RelativeLayout>
这个activity中有两个控件,一个RelativeLayout,一个TextView,TextView在RelativeLayout中,如下图:
android:layout_width="wrap_content" //控件的宽度
android:layout_height="wrap_content" //空间的长度
android:layout_centerVertical="true" //控件是否垂直居中
android:layout_centerHorizontal="true" //控件是否水平居中
android:background="#FF0000" //控件的背景
android:textSize="40sp" //控件的大小
android:text="@string/Shanl" //控件显示的内容
fill_parent 就是让控件宽或者高占全屏。
wrap_content是让控件的高或宽仅仅把控件里的内容包裹住,而不是全屏。
如何在Activity当中获取代表控件对象
通过findViewById,使用如下: