第一行代碼1

四大組件

Android系統四大組件分別是活動(Activity)、服務(Service)、廣播接收器(Broadcast Receiver)和內容提供器(Content Provider)。其中活動是所有 Android應用程序的門面, 凡是在應用中你看得到的東西,都是放在活動中的。而服務就比較低調了,你無法看到 它,但它會一直在後臺默默地運行,即使用戶退出了應用,服務仍然是可以繼續運行的廣播接收器可以允許你的應用接收來自各處的廣播消息,比如電話、短信等,當然你的 應用同樣也可以向外發出廣播消息內容提供器則爲應用程序之間共享數據提供了可 能,比如你想要讀取系統電話簿中的聯繫人,就需要通過內容提供器來實現。 

目錄結構:

1. src

毫無疑問,src目錄是放置我們所有 Java代碼的地方,它在這裏的含義和普通 Java 項目下的 src目錄是完全一樣的,展開之後你將看到我們剛纔創建的 HelloWorldActivity 文件就在裏面。

2. gen

這個目錄裏的內容都是自動生成的,主要有一個 R.java文件,你在項目中添加的任 何資源都會在其中生成一個相應的資源 id。這個文件永遠不要手動去修改它。

3. assets

這個目錄用得不多,主要可以存放一些隨程序打包的文件,在你的程序運行時可以 動態讀取到這些文件的內容。另外,如果你的程序中使用到了 WebView 加載本地網頁 的功能,所有網頁相關的文件也都存放在這個目錄下。

4. bin

這個目錄你也不需要過多關注,它主要包含了一些在編譯時自動產生的文件。其中 會有一個你當前項目編譯好的安裝包,展開 bin 目錄你會看到 HelloWorld.apk,把這個 文件拷到手機上就可以直接安裝了。

5. libs

如果你的項目中使用到了第三方 Jar包,就需要把這些 Jar包都放在 libs目錄下,放 在這個目錄下的 Jar包都會被自動添加到構建路徑裏去。你可以展開上圖中 Android 4.0、Android Private Libraries、Android Dependencies這些庫,其中顯示的 Jar包都是已經被 添加到構建路徑裏的。

6. res

這個目錄下的內容就有點多了,簡單點說,就是你在項目中使用到的所有圖片、布 局、字符串等資源都要存放在這個目錄下,前面提到的 R.java中的內容也是根據這個目 錄下的文件自動生成的。當然這個目錄下還有很多的子目錄,圖片放在 drawable目錄下, 佈局放在 layout目錄下,字符串放在 values目錄下,所以你不用擔心會把整個 res目錄 弄得亂糟糟的。

7. AndroidManifest.xml

這是你整個 Android項目的配置文件,你在程序中定義的所有四大組件都需要在這 個文件裏註冊。另外還可以在這個文件中給應用程序添加權限聲明,也可以重新指定你 創建項目時指定的程序最低兼容版本和目標版本。由於這個文件以後會經常用到,我們 用到的時候再做詳細說明。

8. project.properties

這個文件非常地簡單,就是通過一行代碼指定了編譯程序時所使用的 SDK 版本。 我們的 HelloWorld項目使用的是 API 14,你也可以在這裏改成其他版本試一試。

這樣整個項目的目錄結構就都介紹完了,如果你還不能完全理解的話也很正常,畢竟裏 面有太多的東西你都還沒接觸過。不用擔心,這並不會影響到你後面的學習。相反,等你學 完整本書後再回來看這個目錄結構圖時,你會覺得特別地清晰和簡單。 接下來我們一起分析一下 HelloWorld 項目究竟是怎麼運行起來的吧。首先打開 AndroidManifest.xml文件,從中可以找到如下代碼: 
<activity     android:name="com.test.helloworld.HelloWorldActivity"     android:label="@string/app_name" >     <intent-filter>         <action android:name="android.intent.action.MAIN" />         <category android:name="android.intent.category.LAUNCHER" />     </intent-filter> </activity> 這段代碼表示對 HelloWorldActivity這個活動進行註冊,沒有在 AndroidManifest.xml裏 註冊的活動是不能使用的。其中 intent-filter 裏的兩行代碼非常重要,<action android:name= "android.intent.action.MAIN" />和<category android:name="android.intent.category.LAUNCHER" /> 表示 HelloWorldActivity 是這個項目的主活動,在手機上點擊應用圖標,首先啓動的就是這 個活動。 

 

onCreate()方法是一個活動被創建時必定要執 行的方法。Android程序的設計講究邏輯和視圖分離,因此是不推薦在活動中直接編寫界面的, 更加通用的一種做法是,在佈局文件中編寫界面,然後在活動中引入進來。因此在 onCreate()方法內調用了 setContentView()方法,就是這個方法給當前的活動引入了一 個 hello_world_layout佈局, Hello world就是在這裏定義的。

 

 

如何引用res目錄下的資源:(如strings.xml中的字符串)

1. 在代碼中通過 R.string.hello_world可以獲得該字符串的引用;

2. 在 XML中通過@string/hello_world可以獲得該字符串的引用。 

 

Android 中的日誌工具類 Log(android.util.Log)

1. Log.v() 這個方法用於打印那些最爲瑣碎的,意義最小的日誌信息。對應級別 verbose,是 Android日誌裏面級別最低的一種。

2. Log.d() 這個方法用於打印一些調試信息,這些信息對你調試程序和分析問題應該是有幫助 的。對應級別 debug,比 verbose高一級。

3. Log.i() 這個方法用於打印一些比較重要的數據,這些數據應該是你非常想看到的,可以幫 你分析用戶行爲的那種。對應級別 info,比 debug高一級。

4. Log.w() 這個方法用於打印一些警告信息,提示程序在這個地方可能會有潛在的風險,最好 去修復一下這些出現警告的地方。對應級別 warn,比 info高一級。

5.  Log.e() 這個方法用於打印程序中的錯誤信息,比如程序進入到了 catch 語句當中。當有錯 誤信息打印出來的時候,一般都代表你的程序出現嚴重問題了,必須儘快修復。對應級 別 error,比 warn高一級。 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章