天天看點

安卓應用程式結構

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.確定應用的完整性,簽名會對應用包中的每個檔案進行處理,保證程式包中的檔案不會被替換。