Android Application的目錄結構

目錄結構: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>
相關文章
相關標籤/搜索