目录结构:java
1,java目录:保存java或kotlin源文件android
2,res目录:保存Android项目的各类资源文件。好比layout子目录存放界面布局文件,values子目录存放各类XML格式的资源文件,如字符串资源文件strings.xml、颜色资源文件colors.xml、尺寸资源文件dimens.xml;drawable子目录存放XML文件定义的Drawable资源,如drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi、drawable-xxhdpi等子目录分别用于存放低分辨率、中分辨率、高分辨率、超高分辨率、超超高分辨率的5种图片文件。app
与drawable子目录对应的还有一个mipmap子目录,这两个子目录都用于存放各类Drawable资源。其区别在于:mipmap子目录用于保存应用程序启动图标及系统保留的Drawable资源;而drawable子目录则用于保存与项目相关的各类Drawable资源。ide
Android按照约定,将不一样的资源放在不一样的文件夹内,这样能够方便的让AAPT工具来扫描这些资源,并为它们生成对应的资源清单类:R.java工具
R是AAPT工具根据Android项目中的资源文件自动生成的一个java类,能够把它理解成Android应用的资源字典。布局
AAPT生成R.java文件的规则主要是以下两条:spa
1.每类资源都对应于R类的一个内部类。好比全部界面布局资源都对应于layout内部类;全部字符串资源对应于string内部类;全部标识符资源对应于id内部类。code
2.每一个具体的资源项都对应于内部类的一个public static final int 类型的字段。例如,布局文件中用到了id为show的标识符,所以R.id类里就包含了这个字段;因为mipmap-xxx文件夹里包含了ic_launcher.png图片,所以R.mipmap类里就包含了ic_launcher字段。xml
例1:/res/value/strings.xml文件。blog
1 <resources> 2 <string name="app_name">My Application</string> 3 </resources>
AAPT扫描后生成相似以下R.java文件。
1 //对应于一份资源 2 public static final class string{ 3 //对应于一个资源项 4 public static final int app_name=0x7f040000; 5 //..... 6 }
1.在java代码中引用
R.string.app_name
2.在XML文件中使用
@资源对应的内部类的类名/资源项的名称
@string/app_name
例2:
android:id="@+id/ok"
1.java代码中引用:
findViewById();
2.其余XML文件中获取该组件,@id/ok
3,AndroidManifest.xml文件是Android项目所必需的,是整个Android应用的系统清单文件【全局描述文件】,它用于控制Android应用的名称、图标、组件、访问权限等总体属性。除此以外,Android应用的Active、Service、ContentProvider、BroadcastReceiver这4大组件都须要在该文件中配置。
一般包含以下信息:
1.应用程序的报名,该包名将会做为该应用的惟一标识。
2.应用程序所包含的组件,如Activity、Service、BroadcastReceiver和ContentProvider等。
3.应用程序兼容的最低版本。
4.应用程序使用系统所需的权限声明
5.其余程序访问该程序所需的权限声明
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.myapplication"> <!--指定该Android应用的包名,用于惟一标识该应用--> 4 5 <!--指定应用的图标、标签、圆图标、主题等等--> 6 <application 7 android:allowBackup="true" 8 android:icon="@mipmap/ic_launcher" 9 android:label="@string/app_name" 10 android:roundIcon="@mipmap/ic_launcher_round" 11 android:supportsRtl="true" 12 android:theme="@style/AppTheme"> 13 14 <!--定义应用的一个组件:Activity,该Activity的类为MainActivity--> 15 <activity android:name=".MainActivity"> 16 <intent-filter> 17 18 <!--指定该Activity是程序的入口--> 19 <action android:name="android.intent.action.MAIN" /> 20 21 <!--指定加载该应用时运行该Activity--> 22 <category android:name="android.intent.category.LAUNCHER" /> 23 </intent-filter> 24 </activity> 25 </application> 26 27 </manifest>