目錄結構
1)src目錄爲源文件
2)gen目錄裏的R.java文件爲Eclipse自動生成文件,沒必要手動修改
3)Android Library,應用運行的Android庫
4)assets目錄,在這個目錄裏主要放置多媒體等一些文件
5)res目錄,這個目錄主要放置應用用到的資源文件。
drawable目錄,這個目錄裏邊主要放置應用到的圖片資源
layout目錄,主要放置用到的佈局文件。格式都是XML文件
values目錄,主要存放字符串(string.xml)、顏色(color.xml)、數組(arrays.xml)
6)AndroidManifest.xml,應用的配置文件。這個文件裏,必須聲明應用的名稱,應用所用到的Activity,Service,以及receiver等。 html
展開下,大體是這樣的: java
一個Android項目會包括java源文件,資源文件如圖片,基於xml的佈局文件等,第三方的jar包等。這些文件最終會被編譯成一個.apk文件即Android應用程序可執行文件Android package file, .apk文件能夠安裝在模擬設備或者真機上。 android
看一下前一篇咱們建立的HelloAndroid項目的結構圖: 數組
能夠看到Android項目主要包括: app
src/: 存放java源文件 工具
gen/: 存放由Android編譯工具生成的java源文件, 這些文件不能手動修改。如R.java就定義了一些常量,這些常量是對資源文件的索引,以便咱們很方便的引用這些資源文件。 佈局
assets/: 存放一些靜態文件並將會被一塊兒打包成.apk文件 優化
res/:存放資源文件 ui
res/drawable: 存放圖片如PNG,JPEG等 spa
res/drawable-ldpi/my_icon.png // 存放低分辨率的圖片 res/drawable-mdpi/my_icon.png // 存放中等分辨率的圖片 res/drawable-hdpi/my_icon.png // 存放高分辨率的圖片
res/layout: 存放基於xml的佈局文件
res/menu: 存放基於xml的菜單文件
res/values: 存放字符串等資源文件,如多語言的文件
bin/:存放編譯後的文件
bin/yourpackagename/classes/:存放java編譯後的.class文件
bin/classes.dex: class文件被轉換成針對Dalvik虛擬機優化的dex文件, 在Introducing Android中有說起。
bin/resources.ap_: 被壓縮的資源文件相似zip文件。
bin/yourapp.apk: Android應用程序可執行文件,其實它也是個壓縮的文件,包含了.dex文件,各類資源文件等。
AndroidManifest.xml是一個當前應用程序的組件清單,它列出了應用程序包含的各類activities,services,權限等, 下面看一下HelloAndroid項目中的AndroidManifest.xml文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="
http://schemas.android.com/apk/res/android"
package="com.benjamin.helloandroid"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloAndroid"
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>
|
能夠看到根元素manifest的定義, 首先聲明瞭命名空間,指定了包名。android:versionCode是Android應用程序的版本號,一個整形的數字,在應用程序升級的時候會進行比較是否決定要更新。android:versionName是你本身爲你應用程序定義一個版本代號,沒必要必定是數字,如」Tiger 2000」, 「System X」等。若是你的應用程序要發佈在Android Market的話,都須要指定android:versionCode和android:versionName這兩項。
android:icon表示你的應用程序顯示的圖標,"@drawable/icon」表示讀取res/drawable下面icon這個圖片,android:label表示應用程序的名稱,"@string/app_name」表示讀取res/values/strings.xml中app_name的值。activity的兩個屬性android:name和android:label分別表示這個activity的類名,activity的顯示名稱。intent-filter表示在什麼條件下這個activity會顯示。