目錄結構: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>