2.2.2 Activity的常规配置
前端的HTML会把页面配置放在各个页面自己的.html文件中,Android的Activity则不同,它的配置都存放在一个名为AndroidManifest.xml的文件中,如图2-8所示。
图2-8 AndroidManifest.xml文件内容
在图2-8中,我们会着重介绍一下<application>标签的配置,这个标签主要包含Android端App的配置,也包含App中所有Activity的配置。
我们先介绍一下<application>标签的配置,也就是App全局的配置。比如allowBackup="true"这个属性,它主要是开启系统的默认备份功能。这是Android 2.2中引入的一个系统备份功能,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便用户通过adb backup和adb restore来备份和恢复应用数据。第三方应用开发者需要在应用的AndroidManifest.xml文件中配置allowBackup标志(默认为true),设置应用数据是否能够被备份或恢复。
android:icon="@mipmap/ic_launcher"这个属性是配置App在launcher界面的展示图标。Mipmap是一个图片存放的具体文件夹,图片的名字是ic_launcher(这里引入图片的时候是不加图片后缀名的)。
android:label=book其实调用的是String文件中的app_name变量,实际的写法是android:label="@string/app_name",只不过Android Studio为了方便用户查看就直接显示了book。其实在Android App编码过程中会专门有一个文件存储这些可能会被很多地方用到的键-值对,该文件的路径是res/values/strings.xml,如图2-9所示。
图2-9 strings.xml键-值对文件
android:roundIcon = "@mipmap/ic_launcher_round"是配置一个圆形图标,功能与android:icon="@mipmap/ic_launcher"类似,只不过在Android 8.0以上版本中会支持用户定义一个椭圆形的图标,并且在launcher中展示出来。
android:supportsRtl="true"属性是Android 4.2以后才有的,并且默认是false,主要功能是把从左到右的布局翻转成从右到左,其实这个属性类似前端属性中的direction: rtl。只不过direction是对特定的容器设置的,而android:supportsRtl="true"是面向整个App设置的。
android:theme="@style/AppTheme"属性的主要功能是选择一个App默认的主题样式,当然这个主题用户可以自定义,它有点类似前端的Bootstrap主题脚手架,可以选择一些预设的主题来丰富移动端的操作界面。
剩下的<Activity>标签以及里面的内容如代码清单2-7所示。第一行代码中的android: name=".MainActivity"声明一个叫作MainActivity的类,这里要记住每一个App中的Activity都需要在AndroidManifest.xml中声明,否则在我们编译App时会出现编译不通过的情况。
代码清单2-7 <Activity>标签配置
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
代码清单2-7中第3行的android.intent.action.MAIN是设置当前Activity作为整个App的入口。第4行的android.intent.category.LAUNCHER是设置当前应用程序优先级最高的Activity,通常与第4行配置项配合使用。所达成的效果就是,当用户点击手机界面的App图标时,手机会启动App中设置了android.intent.action.MAIN和android.intent.category.LAUNCHER的Activity。
至此Android的Activity的常规配置的介绍就结束了,2.2.3节将会介绍如何在Android页面中进行Activity跳转。