導讀
最近想重新複習、整理下以前的筆記,也方便下剛學習Android的同學們或從eclipse轉Android Studio的同志們,作以下文章提供學習0.0
看圖以簡析爲準,有新增內容
Eclipse 項目結構:
Eclipse 項目結構圖:
==注意:==
- 如果同學們發現有些目錄沒有,那是因爲需要自己創建的
Eclipse 工程目錄結構簡析:
src:java源代碼存放目錄
gen:系統自動生成的文件目錄
R.java 中記錄了項目中各種資源ID
assets:資源文件目錄,不會在R文件註冊,文件會原封不動的保存到apk包中
libs 工程依賴庫目錄(jar包),會被添加到android depend 目錄下
res:系統資源目錄,所有文件都會在R文件生成資源ID
res/anim/ (自創建文件)
存放定義漸變動畫的XML文件
res/animator/ (自創建文件)
- 存放定義屬性動畫的XML文件
drawable:存放應用程序的圖片 (自創建文件)
- h high 高分辨率
- l low 低分辨率
- m middle 中間分辨率
- x 特大分辨率
- xx 超大分辨率
layout:界面佈局目錄
res/raw/ (自創建文件)
- 該目錄用於存放應用使用到的原始文件,如音效文件等。編譯軟件時,這些數據不會被編譯,不會在R文件註冊,文件會原封不動的保存到apk包中(raw與assert調用方式不同)
- 要使用原始 InputStream 打開這些資源,請使用資源 ID(即 R.raw.filename)調用Resources.openRawResource()。
- 但是,如需訪問原始文件名和文件層次結構,則可以考慮將某些資源保存在 assets/ 目錄下(而不是 res/raw/)。assets/ 中的文件沒有資源 ID,因此您只能使用 AssetManager 讀取這些文件。
res/values/:專門存放應用使用到的各種類型數據目錄。不同類型的數據存放在不同的文件中.
- strings.xml 定義字符串和數值
- arrays.xml 定義數組
- colors.xml定義顏色和顏色字串數值
- dimens.xml 定義尺寸數據
- styles.xml 定義樣式。(可自定義一個新的.xml文件,專門放我們自定義的style)
- attrs.xml 自定義控件屬性設計(自定義)
res/xml/ (自創建文件)
- 在Activity中使用getResources().getXML()讀取該目錄下的XML資源文件
- preference.xml PreferenceActivity或PreferenceActivity的佈局文件
- 可以在運行時通過調用 Resources.getXML() 讀取的任意 XML 文件。各種 XML 配置文件(如可搜索配置)都必須保存在此處。
AndroidManifest.xml:清單文件(程序入口文件),在軟件安裝的時候被讀取
- Android中的四大組件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在該文件中註冊,程序所需的權限也需要在此文件中聲明,例如:電話、短信、互聯網、訪問SD卡
proguard-project.txt: 項目混淆文件, 保護代碼
project.properties:項目環境配置文件,讀取該項目使用Android版本號.早期版本名爲:default.properties
bin:二進制文件,包括class、資源文件、dex、apk等
proguard.cfg:用來混淆代碼的配置文件,防止別人反編譯
Android Studio 項目結構:
Android Studio 項目結構圖:
==注意:==
- res目錄,所有以drawable開頭的文件夾用來放圖片,以mipmap開頭的放應用圖標,以value開頭的放字符串、樣式、顏色等配置的,以layout開頭的放佈局文件
- 由於Android Studio 沒有提供drawable-xxx,建議自己創建這些文件夾,一般都放在drawable-xxhdpi文件夾下即可
- .9圖只能放在drawable目錄下
Android Studio 工程目錄結構簡析:
├─.gradle 系統自動生成的gradle目錄(不用關心)
├─.idea 系統自動生成的關於AS的環境配置目錄.包括版權,字典,jar包信息,項目名稱,編譯信息等等
│ .gitignore git忽略文件列表
│ build.gradle 項目全局的Gradle構建腳本
│ gradle.properties 全局的Gradle配置文件,這裏配置的屬性會影響到項目中所有的gradle編譯版本
│ gradlew 用於在命令行界面中執行gradle命令(只能在Linux或Mac中使用)
│ gradlew.bat 用於在命令行界面中執行gradle命令(只能在Windows中使用)
│ local.properties 本地屬性文件,用於指定本地Android sdk路徑
│ MyApplication.iml IntelliJ IDEA項目自動生成的文件.(不用關心)
│ settings.gradle 用於指定項目中所有引入的模塊.(不用關心)
│
├─app moudle 目錄,項目的代碼,資源等內容都放這裏
│ │ .gitignore git忽略文件列表
│ │ app.iml IntelliJ IDEA項目自動生成的文件(不用關心)
│ │ build.gradle 當前Module的Gradle編譯文件
│ │ proguard-rules.pro proguard混淆文件
│ │
│ ├─build 系統自動生成的當前moudle的編譯目錄,相當於Eclipse中默認Java工程的bin目錄.編譯生成的apk在此目錄
│ ├─libs jar依賴包存放目錄
│ └─src java源代碼存放目錄
│ ├─androidTest 用於編寫Android測試用例的
│ │ └─java
│ │ └─zs
│ │ └─xmx
│ │ └─myapplication
│ │ ApplicationTest.java
│ │
│ ├─test 用於編寫Unit測試用例的
│ │
│ └─main 主目錄(存放java文件,資源,清單文件)
│ │ AndroidManifest.xml 清單文件,用於給應用程序添加權限聲明
│ │
│ ├─java java源碼目錄
│ │ └─zs
│ │ └─xmx
│ │ └─myapplication
│ │ MainActivity.java
│ │
│ └─res 資源文件目錄
│ ├─drawable 圖片資源.9圖片只能放到drawable目錄下,建議自己創建如下mipmap-xxx文件,一般都放在drawable-xxhdpi文件夾下即可
│ │
│ ├─layout 界面佈局目錄
│ │ activity_main.xml
│ │
│ ├─menu menu菜單xml文件
│ │ menu_main.xml
│ │
│ ├─mipmap-hdpi 高分辨率圖標
│ │ ic_launcher.png
│ │
│ ├─mipmap-mdpi 中間分辨率圖標
│ │ ic_launcher.png
│ │
│ ├─mipmap-xhdpi 特大分辨率圖標
│ │ ic_launcher.png
│ │
│ ├─mipmap-xxhdpi 超大分辨率圖標
│ │ ic_launcher.png
│ │
│ ├─values 專門存放應用使用到的各種類型數據目錄。不同類型的數據存放在不同的文件中.
│ │ strings.xml 定義字符串和數值
│ │ arrays.xml 定義數組
│ │ colors.xml定義顏色和顏色字串數值
│ │ dimens.xml 定義尺寸數據
│ │ styles.xml 定義樣式。
│ │ attrs.xml 自定義控件屬性設計(自定義)
│ │
│ │
│ └─values-w820dp
│ dimens.xml
│
├─build 系統自動生成項目空間的編譯目錄
└─gradle gradle 目錄,包含了gradle wrapper的配置文件
└─wrapper gradle wrapper可以看作是對gradle的封裝,它可以使得在沒有安裝gradle的電腦上也可以使用Gradle進行構建.(不用關心)
gradle-wrapper.jar gradle 下載的jar包緩存,具體在 .gradle\caches\modules-2\files-2.1目錄
gradle-wrapper.properties 聲明瞭gradle的目錄與下載路徑以及當前項目使用的gradle版本
補充 : 需要自己建立的文件夾
main/assets/
main/aidl/
main/jni/ -->放置c代碼
main/jniLibs/ -->放置so庫
main/res/raw/-->放原始文件
main/res/anim/-->放漸變動畫XML文件
main/res/animator/-->放屬性動畫XML文件
main/res/xml/ --> xml資源文件
可參照Eclipse結構簡析
SDK工程目錄結構:
SDK工程目錄結構圖:
SDK工程目錄簡析:
add-ons: 附加組件,放在一個額外的工具.google api,提供google地圖的jar包
build-tools: 編譯工具,谷歌sdk升級後採用的目錄
docs: 文檔目錄.開發文檔.
extras: 附加工具
support: 提供向下兼容的jar包.和額外的驅動,攝像頭驅動,手機驅動
platform: 開發平臺
platform tools: 開發的工具
sample: 實例代碼
source: 源代碼
system-image: 系統鏡像
tools目錄: 開發工具