res目录存放安卓项目的各种资源文件,比如layouyt存放界面布局文件,values目录下则存放各种XML格式的资源文件,例如字符串文件:string.xml;颜色资源文件:colors.xml;尺寸资源文件:dimens.xml。drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi这4个子目录则分别用于存放低分辨率、中分辨率、高分辨率、超高分辨率的4种图片文件。
src目录只是一个普通的、保存Java源文件的目录。
AndroidManifest.xml文件是Android项目的系统清单文件,它用于控制Android应用的名称、图标、访问权限等整体属性。除此之外Android应用的Activity、Service、ContentProvider、BroadcastRecevier这4大组件都需要在该文件中配置。
build.xml文件是Android为该项目提供的一个Ant生成文件。通过该生成文件,开发者可以通过Ant来生成、安装Android项目。
AndroidManifest.xml清单文件是每个Android项目所必需的,它是整个Android应用的全局描述文件。AndroidManifest.xml文件说明了该应用的名称、所使用的图标以及包含的组件等。
AndroidManifest.xml清单文件通常可以包含如下信息:
应用程序的包名,该包名将会作为该应用的唯一标识。
应用程序所包含的组件,如Activity、Service、BroadcastReceiver和ContentProvider等。
应用程序兼容的最低版本。
应用程序使用系统所需的权限声明。
其他程序访问该程序所需的权限声明。
AndroidManifest.xml文件示例:
<?xml version="1.0" encoding="GBK"?>
<!-- 指定该安卓应用的包名,该包名可以用于唯一地表示该应用 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.crazyit.helloworld"
android:versionCode="1"
android:versionName="1.0">
<!-- 指定Android应用标签、图标 -->
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
<!-- 定义Android应用的一个组件:Activity,该Activity的类为HelloWorld,并指定该Activity的标签 -->
<activity android:name="HelloWorld" android:label="@string/app_name">
<intent-filter>
<!-- 指定该Activity是程序的入口 -->
<action android:name="android.intent.action.MAIN" />
<!-- 指定加载该应用时运行该Activity -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<!-- 声明该应用本身需要发短信的权限 -->
<uses-permission android:name="android.perimission.SEND_SMS" />
</manifest>
安卓程序的四大组件:Activity/Service/BroadcastReceiver/ContentProvider
Activity:安卓应用中负责与用户交互的组件,相当于Swing中的JFrame。setContentView(View)方法
Service:和Activity类似,但是运行于后台,一般不和用户交互,没有图形用户界面
BroadcastReceiver:广播消息接收器,系统级监听器,重写onReceive(Context,Intent)方法,注册方式有两种
ContentProvider/ContentResolver:不同应用之间交换数据
Intent是安卓应用内不同组件之间通信的载体。
安卓应用程序签名:1.确定发布者的身份,是应用的唯一性标识;2.确保应用的完整性,签名会对应用包中的每个文件进行处理,保证程序包中的文件不会被替换。