在此我們新建了一個helloworld的項目,先看一些目錄結構:
這么多的文件夾和文件中,我們重點關注是res目錄、src目錄、AndroidManifest.xml文件:
一、res目錄主要是用來存放android項目的各種資源文件,res就是resource單詞的縮寫。該目錄幾乎存放了android應用所用的全部資源,包括:圖片資源、字符串資源、顏色資源、尺寸資源,以及布局文件等。不同的文件存放在不同的目錄當中,在res目錄下面又有下一級目錄:
1、layout目錄主要是存放布局文件,比如主界面布局文件main.xml就在這里面。我們在頁面中加入一個textview控件:
1
|
<textview android:id=
"@+id/show_helloworld"
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:text=
"@string/hello_world"
></textview>
|
2、menu目錄主要是存放菜單文件,現在在android開發中使用菜單不是很頻繁,比如手機很多軟件在點擊菜單按鈕是彈出來的對話框的布局就是放在這個目錄當中。
3、valus目錄主要是存放一些數值,比如字符串資源存放在strings.xml中:
1
2
3
4
5
|
<resources>
<string name=
"app_name"
>HelloWorld</string>
<string name=
"action_settings"
>Settings</string>
<string name=
"hello_world"
>Hello world!</string>
</resources>
|
顏色資源存放中colors.xml中:
1
2
3
4
|
<resources>
<color name=
"LightOrange"
>#ff8B7355</color>
<color name=
"LightWhite"
>#ffC6E2FF</color>
</resources>
|
尺寸資源放在dimens.xml文件中:
1
2
3
4
|
<resources>
<dimen name=
"activity_horizontal_margin"
>16dp</dimen>
<dimen name=
"activity_vertical_margin"
>16dp</dimen>
</resources>
|
主題樣式存放在styles.xml中:
1
|
<!-- Application theme. --><style name=
"AppTheme"
parent=
"AppBaseTheme"
type=
"text/css"
><!-- All customizations that are NOT specific to a particular API-level can go here. --></style>
|
4、圖片資源:由於圖片資源要考慮到不同分辨率的圖片,所以就要把不同的圖片放到不同的文件目錄中,系統會根據手機分辨率去調用適合的分辨率圖片資源。drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi這四個目錄分辨存放低分辨率、中等分辨、高分辨率、超高分辨率的圖片資源。在實際項目中,我們一般會自己新建一個drawable目錄用於存放控件在不同狀態實現的不同效果,比如按下、選中、松開等狀態。大家可以在實際項目中操作一下。
二、src目錄只是一個普通的、存放Java資源文件的目錄。一般我們會建很多的包,不同包名下存放不同的java文件,比如:服務、廣播、活動等我們區別放。之前的博客手寫簽名系統系列,我們就做了很詳細的區分:
這樣可以使項目的架構更加的清晰,無論是后期維護還是前期的開發都更加的方便了。養成這個習慣是非常有必要的。
三、AndroidManifest.xml文件:這是android項目的系統清單文件,也是整個android應用的全局描述文件。清單文件說明了android應用的名稱、所使用的圖標以及包含的組件等,主要包括:
1、應用程序的包名,該包名將會作為該android應用的唯一標識。
2、應用程序包含的組件,如activity、server、broadcastreceier、contentprovider等,這個就告訴我們在新建一個類繼承這些組件時,我們要在清單文件中進行注冊一下,否則應用程序在執行時會報錯,無法找到相應的類。
3、應用程序兼容的最低版本。
4、應用程序使用系統所要獲取的權限,比如你要向sd卡中寫入文件就要加入:
1
2
|
<!--添加讀取sd卡的權限 -->
<uses-permission android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
></uses-permission>
|
值得注意的是,相應的權限沒有獲取,在應用程序執行時會報錯或者不執行。android中權限很多,這里就不一一列出了。
5、其他應用程序訪問該程序所需要的權限。
項目中除了res、src以及清單文件,我們簡單了解一些其他的文件目錄:
1、gen目錄:保存自動生成的、位於android項目包下的R.java文件。
2、bin:存放自動生成的二進制文件、資源打包文件以及dalvik虛擬機的可執行文件等。
3、libs:存放引用的一些java包,比如第三方的java包。