版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、Android項目目錄結(jié)構(gòu)有了前面兩章的基礎,現(xiàn)在我們再來打開上一章建立的HelloAndroid項目,分析其項目目錄結(jié)構(gòu),對Android項目進一步的深入了解。首先啟動Eclipse,展開"Package Explorer"導航器中的"HelloAndroid"項目,如圖3-1所示。與一般的Java項目一樣,src文件夾是項目的所有包及源文件(.java),res文件夾中則包含了項目中的所有資源,比如:程序圖標(drawable)、布局文件(layout)、常量(values)等。下面來介紹其他Java項目中沒有的的gen文件夾中的R.java文件和每
2、個Android項目都必須有的AndroidManfest.xml文件。R.java是在建立項目時自動生成的,這個文件是只讀模式,不能更改,R.java文件是定義該項目所有資源的索引文件。先來看看HelloAndroid項目的R.java文件,如代碼清單3-1所示。代碼清單3-1 R.java1. package com.yarin.Android.HelloAndroid; 2. 3. public final class R 4. public
3、static final class attr 5. 6. public static final class drawable 7. public static final int icon=0x7f020000; 8.
4、 9. public static final class layout 10. public static final int main=0x7f030000; 11. 12. &
5、#160;public static final class string 13. public static final int app_name=0x7f040001; 14. public static final int hello=0x7f0
6、40000; 15. 16. 可以看到這里定義了很多常量,仔細一看就發(fā)現(xiàn)這些常量的名字都與res文件夾中的文件名相同,這再次證明R.java文件中所存儲的是該項目所有資源的索引。有了這個文件,在程序中使用資源將變得更加方便,可以很快地找到要使用的資源,由于這個文件不能被手動編輯,所以當我們在項目中加入了新的資源時,只需要刷新一下該項目,R.java文件便自動生成了所有資源的索引。AndroidManfest.xml文件則包含了該項目中所使用的Activity、Service、Receiver,我們先來打開He
7、lloAndroid項目中的AndroidManfest.xml文件,如代碼清單3-2所示。代碼清單3-2 AndroidManfest.xml1. <?xml version="1.0" encoding="utf-8"?> 2. <manifest xmlns:android="3. package="com.yarin.Android.HelloAndroid" 4.
8、 android:versionCode="1" 5. android:versionName="1.0"> 6. <application android:icon="drawable/icon" android:label="string/app_name"> 7. &
9、#160; <activity android:name=".HelloAndroid" 8. android:label="string/app_name"> 9.
10、160; <intent-filter> 10. <action android:name="ent.action.MAIN" /> 11.
11、60; <category android:name="ent.category.LAUNCHER" /> 12. </intent-filter> 13. &
12、#160;</activity> 14. </application> 15. <uses-sdk android:minSdkVersion="5" /> 16. </manifest> 代碼清單3-2中intent-filters描述了Activity啟動的位置和時間。每當一個Activity(或者操作系統(tǒng))要執(zhí)行一個操作時,它將創(chuàng)建出一個Intent的對象,這個Int
13、ent對象能承載的信息可描述你想做什么,你想處理什么數(shù)據(jù),數(shù)據(jù)的類型,以及一些其他信息。而Android則會和每個Application所暴露的intent-filter的數(shù)據(jù)進行比較,找到最合適Activity來處理調(diào)用者所指定的數(shù)據(jù)和操作。下面我們來仔細分析AndroidManfest.xml文件,如表3-1所示。表3-1 AndroidManfest.xml分析manifest根節(jié)點,描述了package中所有的內(nèi)容xmlns:android包含命名空間的聲明。xmlns:android=http:/schemas.Android中各種標準屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)Pa
14、ckage聲明應用程序包application包含package中application級別組件聲明的根節(jié)點。此元素也可包含application的一些全局和默認的屬性,如標簽、icon、主題、必要的權(quán)限,等等。一個manifest能包含零個或一個此元素(不能大余一個)android:icon應用程序圖標android:label應用程序名字Activity用來與用戶交互的主要工具。Activity是用戶打開一個應用程序的初始頁面,大部分被使用到的其他頁面也由不同的activity所實現(xiàn),并聲明在另外的activity標記中。注意,每一個activity必須有一個<activity>
15、;標記對應,無論它給外部使用或是只用于自己的package中。如果一個activity沒有對應的標記,你將不能運行它。另外,為了支持運行時查找Activity,可包含一個或多個<intent-filter>元素來描述activity所支持的操作android:name應用程序默認啟動的activityintent-filter聲明了指定的一組組件支持的Intent值,從而形成了IntentFilter。除了能在此元素下指定不同類型的值,屬性也能放在這里來描述一個操作所需的唯一的標簽、icon和其他信息action組件支持的Intent actioncategory組件支持的Inte
16、nt Category。這里指定了應用程序默認啟動的activityuses-sdk該應用程序所使用的sdk版本相關(guān)下面我們看看資源文件中一些常量的定義,如String.xml,如代碼清單3-3所示。代碼清單3-3 String.xml1. <?xml version="1.0" encoding="utf-8"?> 2. <resources> 3. <string name="hello">Hell
17、o World, HelloAndroid!</string> 4. <string name="app_name">HelloAndroid</string> 5. </resources> 這個文件很簡單,就定義了兩個字符串資源,與R.java中對應的索引如代碼清單3-4所示。代碼清單3-4 R.java中的String類1. public static final class
18、;string 2. public static final int app_name=0x7f040001; 3. public static final int hello=0x7f040000; 4. 在程序中裝載并使用這個字符串資源如代碼清單3-5。代碼清單3-5 String資源的使用1. Resources r = th
19、is.getContext().getResources(); 2. String appname= (String) r.getString(R.string.app_name); 3. String hello= (String) r.getString(R.string.hello); 基本上可以定義出項目中所有使用的常量,例如顏色。所以,可根據(jù)需對資源常量進行定義。下面是定義了顏色的常量colors.xml,如代碼清單3-6所示。代碼清單3-6 colors.xml1. <?xml
20、60;version="1.0" encoding="utf-8"?> 2. <resources> 3. <color name="status_idle">#cccccc</color> 4. <color name="status_done">#637a47</color> 5.
21、 <color name="status_sync">#cc9900</color> 6. <color name="status_error">#ac4444</color> 7. </resources> 現(xiàn)在我們來分析HelloAndroid項目的布局文件(layout),首先我們打開res->layout->main.xml文件,如代
22、碼清單3-7所示。代碼清單3-7 main.xml1. <?xml version="1.0" encoding="utf-8"?> 2. <LinearLayout xmlns:android="3. android:orientation="vertical" 4. android:layout_width="fill_parent"
23、60;5. android:layout_height="fill_parent" 6. > 7. <TextView 8. android:layout_width="fill_parent" 9. android:layout_height="wrap_cont
24、ent" 10. android:text="string/hello" 11. /> 12. </LinearLayout> 代碼清單3-7中,有以下幾個布局和參數(shù)。< LinearLayout>:線性版面配置,在這個標簽中,所有元件都是按由上到下的排隊排成的。android:orientation:表示這個介質(zhì)的版面配置方式是從上到下垂直地排列其內(nèi)部的視圖。android:orien
25、tation:表示這里是水平排列android:layout_width:定義當前視圖在屏幕上所占的寬度,fill_parent即填充整個屏幕。android:layout_height:定義當前視圖在屏幕上所占的高度,fill_parent即填充整個屏幕。wrap_content:隨著文字欄位的不同而改變這個視圖的寬度或高度。layout_weight 用于給一個線性布局中的多個視圖的重要度賦值。所有視圖都有l(wèi)ayout_weight 值,默認為零,即需要顯示多大的視圖就占據(jù)多大的屏幕空間。如果值大于零,則將父視圖中的可用空間分割,分割大小具體取決于每一個視圖的layout_weight 值
26、和該值在當前屏幕布局的整體 layout_weight 值,以及在其他視圖屏幕布局的layout_weight 值中所占的比例。在這里,布局中設置了一個TextView,用來配置文本標簽Widget,其中設置的屬性android:layout_width為整個屏幕的寬度,android:layout_height可以根據(jù)文字來改變高度,而android:text則設置了這個TextView要顯示的文字內(nèi)容,這里引用了string中的hello字符串,即String.xml文件中的hello所代表的字符串資源。hello字符串的內(nèi)容"Hello World, HelloAndroid!
27、"這就是我們在HelloAndroid項目運行時看到的字符串。最后,我們來分析HelloAndroid項目的主程序文件HelloAndroid.java,如代碼清單3-8所示。代碼清單3-8 HelloAndroid.java1. package com.yarin.Android.HelloAndroid; 2. 3. import android.app.Activity; 4. import android.os.Bundle; 5. 6. public class HelloAndroid extends Activity 7. 8. 9. public void onCreate(Bundle savedInstanceState) 10.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- PLC控制技術(shù)考試模擬題(含答案)
- 養(yǎng)老院環(huán)境保護管理制度
- 交通安全教育課件
- 《打造學習型團隊》課件
- 2024年新能源項目投資委托居間合同范本3篇
- 教育合同范本
- 2024年度特殊工種委托招聘與職業(yè)安全防護用品供應合同3篇
- 臨床靜脈留置針護理及并發(fā)癥
- 2024年度綠色有機食材供應合作協(xié)議2篇
- 2024天津出租車租賃車輛安全性能檢測合同3篇
- 2024年儲能白皮書
- 美團代運營合同模板
- DZ∕T 0173-2022 大地電磁測深法技術(shù)規(guī)程(正式版)
- 氣管插管術(shù)評分標準
- 《土木工程測量(第2版)》習題解答
- 2024年時事政治熱點題庫單選題200道及答案【易錯題】
- EPLAN 電氣設計基礎與應用 第2版 課件全套 第1-10章 EPLAN P8概述- 報表生成
- 全國養(yǎng)老護理職業(yè)技能大賽養(yǎng)老護理員賽項考試題庫-上(單選題)
- 博士期間科研規(guī)劃
- 倉管員年度述職報告總結(jié)
- 初中英語七選五經(jīng)典5篇(附帶答案)
評論
0/150
提交評論