天天看點

Android項目的簡單介紹1.src檔案夾2.res檔案夾3.gen檔案夾4. Android4.4w檔案夾5.Android Dependencies和Android Private Libraries的介紹6.assets檔案夾7.bin檔案夾8.libs檔案夾9. AndroidManifest.xml檔案夾

首先在eclipse中建立一個HelloAndroid的項目,目錄工程如下圖所示:

Android項目的簡單介紹1.src檔案夾2.res檔案夾3.gen檔案夾4. Android4.4w檔案夾5.Android Dependencies和Android Private Libraries的介紹6.assets檔案夾7.bin檔案夾8.libs檔案夾9. AndroidManifest.xml檔案夾

1.src檔案夾

這裡是存放android項目的源代碼的。通常我們會在下面建立好多包,用來規範的管理我們的代碼。src下面的java代碼會被編譯成.class位元組碼檔案,其他的原樣保留。

2.res檔案夾

res是Android項目的資源檔案夾,它的下面有很多資源檔案夾。

Android項目的簡單介紹1.src檔案夾2.res檔案夾3.gen檔案夾4. Android4.4w檔案夾5.Android Dependencies和Android Private Libraries的介紹6.assets檔案夾7.bin檔案夾8.libs檔案夾9. AndroidManifest.xml檔案夾

這裡的圖檔會被自動進行無損壓縮優化,使得在保證圖檔品質的同時減小圖檔占用的記憶體。

drawable-xxxx目錄分别對應不同的螢幕分辨率:

drawable-ldpi 低分辨率(240*320左右)

drawable-mdpi 中等分辨率(320*480左右)

drawable-hdpi 高分辨率(480*800左右)

drawable-xhdpi 超高分辨率(720p)

drawable-xxhdpi 極高分辨率(1080p及以上)

通常将不同分辨率的圖檔檔案放到對應的drawable-xxxx目錄下,将XML檔案放到drawable目錄下。Android系統會根據裝置螢幕的分辨率智能地加載對應檔案夾下的圖檔資源,這是Android系統對多螢幕的支援。這幾個目錄中的資源會被收錄到R.java檔案的drawable内部類中。

layout目錄是Android項目的布局檔案,用來存放界面布局的XML檔案的,所有要被Activity、Fragment、Adapter加載的布局檔案都放在這裡。這裡面的布局檔案會被自動收錄到R.java檔案中的layout内部類裡。menu目錄下是XML檔案形式配置的菜單。在檔案中可以通過MenuInflater加載菜單檔案。這裡的檔案會自動收錄到R.java檔案的menu内部類中。 values目錄可以存放很多類型的資源檔案:

  • array.xml 定義數組
  • colors.xml 定義color drawable和顔色的字元串值(color string values)。使用Resource.getDrawable()和Resources.getColor()分别獲得這些資源。
  • dimens.xml 定義尺寸值(dimension value)。使用Resources.getDimension()獲得這些資源。
  • strings.xml 定義字元串(string)值。使用Resources.getString()或者Resources.getText()擷取這些資源。getText()會保留在UI字元串上應用的豐富的文本樣式。
  • styles.xml 定義樣式(style)對象。
  • attrs.xml 定義自定義的元件屬性。

values目錄下這些檔案的名字可以任意取,通常使用上面描述的這些約定俗稱的名字,可以一眼看出檔案的作用,但是檔案内部的标簽将決定該資源在R.java檔案中的哪個内部類裡面。例如,使用<color></color>标簽,則該标簽描述的資源将在R.java的color類下,在布局檔案中通過@color/XXX來找到對應的顔色,其中XXX是顔色的名稱;在java程式中通過R.color來找到對應顔色的ID。

menu目錄下是XML檔案形式配置的菜單。在檔案中可以通過MenuInflater加載菜單檔案。這裡的檔案會自動收錄到R.java檔案的menu内部類中。

3.gen檔案夾

該檔案夾下面有個R.java檔案,R.java是在建立項目時自動生成的,這個檔案是隻讀模式的,不能更改。R.java檔案中定義了一個類——R,R類中包含很多靜态類,且靜态類的名字都與res中的一個名字對應,即R類定義該項目所有資源的索引。

Android項目的簡單介紹1.src檔案夾2.res檔案夾3.gen檔案夾4. Android4.4w檔案夾5.Android Dependencies和Android Private Libraries的介紹6.assets檔案夾7.bin檔案夾8.libs檔案夾9. AndroidManifest.xml檔案夾
Android項目的簡單介紹1.src檔案夾2.res檔案夾3.gen檔案夾4. Android4.4w檔案夾5.Android Dependencies和Android Private Libraries的介紹6.assets檔案夾7.bin檔案夾8.libs檔案夾9. AndroidManifest.xml檔案夾

從上往下看,array類儲存數組的資源索引,drawable:儲存圖檔索引,id:儲存布局檔案中控件id,layout:儲存布局檔案的索引,string:儲存字元串資源的索引。

注意,

R.java

這個類是儲存着目前項目中工程師定義的資源索引,而

android.R.java

,是儲存着android内部預定義好的資源索引。通過R.java我們可以很快地查找我們需要的資源,另外編繹器也會檢查R.java清單中的資源是否被使用到,沒有被使用到的資源不會編繹進軟體中,這樣可以減少應用在手機占用的空間。

4. Android4.4w檔案夾

Android項目的簡單介紹1.src檔案夾2.res檔案夾3.gen檔案夾4. Android4.4w檔案夾5.Android Dependencies和Android Private Libraries的介紹6.assets檔案夾7.bin檔案夾8.libs檔案夾9. AndroidManifest.xml檔案夾

該檔案夾下包含android.jar檔案,這是一個Java 歸檔檔案,其中包含建構應用程式所需的所有的Android SDK 庫(如Views、Controls)和APIs。通過android.jar将自己的應用程式綁定到Android SDK和Android Emulator,這允許你使用所有Android的庫和包,且使你的應用程式在适當的環境中調試。

例如在我們的HelloAndroid項目中就有如下代碼:

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
           

這裡四行代碼就是從android.jar導入包。

5.Android Dependencies和Android Private Libraries的介紹

Android項目的簡單介紹1.src檔案夾2.res檔案夾3.gen檔案夾4. Android4.4w檔案夾5.Android Dependencies和Android Private Libraries的介紹6.assets檔案夾7.bin檔案夾8.libs檔案夾9. AndroidManifest.xml檔案夾

點我

6.assets檔案夾

assets檔案夾主要儲存原始的檔案格式,比如我需要在代碼中通路加載一個html檔案,或者一個txt文檔,那麼就需要把html檔案和txt文檔儲存到assets檔案下。

該檔案夾下通常會存放一些資源檔案,例如mp3/視訊檔案等等。

這個檔案被稱為原生檔案夾,意思就是存放在這裡的檔案在打包成安裝包時,會原樣打包,不進行壓縮等各種處理。這和res檔案夾下的檔案是不一樣的,res下的資源檔案會進行壓縮處理的。主要的目的,實際上還是為了節約空間。

7.bin檔案夾

存放自動生成的二進制檔案、資源打封包件以及Dalvik虛拟機的可執行檔案等。

8.libs檔案夾

存放引用的一些java包,比如第三方的java包。

9. AndroidManifest.xml檔案夾

項目的總配置檔案,記錄應用中所使用的各種元件。這個檔案列出了應用程式所提供的功能,在這個檔案中,你可以指定應用程式使用到的服務(如電話服務、網際網路服務、短信服務、GPS服務等等)。另外當你新添加一個Activity的時候,也需要在這個檔案中進行相應配置,隻有配置好後,才能調用此Activity。AndroidManifest.xml将包含如下設定:application permissions、Activities、intent filters等。

程式的啟動一般是Program類中的Main負責啟動第一個程式界面,而在android程式中則是使用配置檔案來配置入口的Activity界面。下面是

AndroidManifest.xml

 配置檔案中的代碼:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloandroid"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
           

點我