安卓学习 之 概述(一)
一 、Android 系統架構
Android 大致可以分為四層架構,五塊區域。
1.Linux 內核層
Android 系統是基于 Linux 2.6 內核的,這一層為 Android 設備的各種硬件提供了底層的驅動,如顯示驅動、音頻驅動、照相機驅動、藍牙驅動、Wi-Fi 驅動、電源管理等。
2.系統運行庫層
這一層通過一些 C/C++庫來為 Android 系統提供了主要的特性支持。如
- SQLite 庫提供了數據庫的支持
- OpenGL|ES 庫提供了 3D 繪圖的支持
- Webkit庫提供了瀏覽器內核的支持等。
同樣在這一層還有 Android 運行時庫,它主要提供了一些核心庫,能夠允許開發者使用 Java 語言來編寫 Android 應用。另外 Android 運行時庫中還包含了 Dalvik 虛擬機, 它使得每一個 Android 應用都能運行在獨立的進程當中,并且擁有一個自己的 Dalvik 虛擬機實例。相較于 Java 虛擬機,Dalvik 是專門為移動設備定制的,它針對手機內存、
CPU 性能有限等情況做了優化處理。
3.應用框架層
這一層主要提供了構建應用程序時可能用到的各種 API,Android 自帶的一些核心應用就是使用這些API完成的,開發者也可以通過使用這些API 來構建自己的應用程序。
4.應用層
所有安裝在手機上的應用程序都是屬于這一層的,比如系統自帶的聯系人、短信等程序,或者是你從 Google Play 上下載的小游戲,當然還包括你自己開發的程序。
二、安卓的目錄結構
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 版本。
三、安卓的目錄結構
所有以drawable 開頭的文件夾都是用來放圖片的,所有以 values 開頭的文件夾都是用來放字符串的,
layout 文件夾是用來放布局文件的,menu 文件夾是用來放菜單文件的。
之所以有這么多 drawable 開頭的文件夾,其實主要是為了讓程序能夠兼容更多的設備。在制作程序的時候最好能夠給同一張圖片提供幾個不同分辨率的副本,分別放 在這些文件夾下,然后當程序運行的時候會自動根據當前運行設備分辨率的高低選擇加載哪 個文件夾下的圖片。當然這只是理想情況,更多的時候美工只會提供給我們一份圖片,這時你就把所有圖片都放在 drawable-hdpi 文件夾下就好了。
四、Android 的日志工具 LogCat
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 高一級。
總結
以上是生活随笔為你收集整理的安卓学习 之 概述(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 容器学习 之 管理Volumn(十七)
- 下一篇: 安卓学习 之 Activity(二)