Bimmer7 Android教程 入门系列之:Manifest介绍(二)

来源:互联网 发布:外网端口telnet不通 编辑:程序博客网 时间:2024/05/20 17:39
前面我们讲了AndroidManifest.xml的一些基本用法,希望大家对这个重要文件已经有了一些认识,虽然它很重要,但真正写起app来只要开始设置好了,后面我们大部分时间都不用去管它。下面我们把上一节留下没说的几个点再说一下。


首先,先看在上一篇文章里出现的代码:

    <application        android:icon="@drawable/logo"        android:label="@string/app_name"        android:theme="@style/AppTheme" >    ......

看完上一篇文章我们都知道这三句话设置了我们app的icon,label和theme这三个属性,那么后面的赋值语句是什么意思呢?为什么是“@xxx/yyy"的格式?我们可以认为@后紧跟的是安卓标签名,/后面的是前面标签下叫那个名字的值。比如”@xxx/yyy"意思就是所有xxx标签下的名字叫yyy的这个属性的值。我们看下面这张截图,某个android project的文件结构,res文件夹下是这个project的所需的资源文件,包括各种图片、字符串、界面的布局设置等等,其他的比如src文件夹下存的是java源代码,gen文件夹下是res里的资源文件产生的让java能访问到的code,后面我们讲layout的时候会具体讲到。



回到刚刚的问题上来,看这个截图,在values文件夹下有这么几个文件,一般colors.xml放的是自己定义的颜色,dimens.xml放的是各种size的大小具体值,strings.xml放的是string,styles放的就是layout的style文件,类似与css。我们看看strings.xml吧.

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">CustomExampleAppName</string></resources>

可以看到string标签下一个叫"app_name"的string的值是“CustomExampleAppName”,对应于最上面的代码,这样我们就把“CustomExampleAppName”赋值给了label。其他的情况同理。唯一特别的是所有图片放到drawable文件夹下,那么这些图片自动具有drawable标签,名字叫就是它们的文件名(不包括扩展名)。

上节遗留的第二个问题,就是在AndroidManifest.xml里,activity的标签下,有个intent-filter标签。我们先看什么是intent。Intent在android里是一个class,它的主要作用是创建一个app的核心组件(activity,services,broadcast receivers)。这些核心组件要先对这些Intent声明自己自己的一些属性,比如某个activity是属于A种类的,如果你这个Intent想找B种类的activity就不要找它了。这个intent-filter标签下的属性就是干这个的。这里举个简单的例子帮助大家理解一下。

<activity    android:name="MainActivity"    android:configChanges="orientation|screenSize|screenLayout"    >    <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />    </intent-filter></activity>

最常见的应该就是这两个了,一个是action, 这里设置成了android.intent.action.MAIN,意思是这个activity是一个主要进入点,不需要intent的其他信息就可以直接start。

另一个是category,一般设成CATEGORY_DEFAULT,这样才能在java程序中用startActivity()调用。这里设成LAUNCHER是说这个app启动的时候就执行这个activity。具体其他的设置请参考安卓官方文档。


其实如果app不需要和别的app交互,这个文件用到的并不多,但这些基本的知识也要知道,以后需要什么可以再查安卓的文档。

0 0
原创粉丝点击