- Android進階實踐
- 藺華 時允田
- 2154字
- 2018-12-30 05:23:40
1.3 Android基礎知識
作為一個優秀的開發框架,和其他開發工具一樣,Android有自己的特點和優勢,本節我們就對此進行介紹,讓讀者感受到Android特有的氣質并掌握學好它的方法。
1.3.1 Android豐富的特性
Android是Google公司推出的手機開發平臺。與iPhone相似,Android采用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網功能,用戶能夠在手機上查看電子郵件、搜索網址和觀看視頻節目等,比iPhone等其他手機更強調搜索功能,界面更強大,可以說是一種融入全部Web應用的單一平臺。
Android的主要特性如下:
應用框架可以重復使用,其組件也可以更換。
Dalvik虛擬機針對移動設備進行了優化。
優化的圖形能力支持2D、3D圖形(OpenGL ES 1.0)。
集成了基于開源WebKit引擎的瀏覽器。
SQLite作為結構化數據存儲。
多媒體支持多種音頻、視頻格式。
GSM Telephony(hardware dependent)。
支持藍牙、3G和WiFi。
支持照相機、GPS、指南針和加速度儀等傳感器硬件。
豐富的開發環境,包括模擬機、調試工具、內存運行檢測及為Eclipse IDE所寫的插件。
1.3.2 Android組織結構及應用框架
Android采用了軟件堆的架構,主要分為三個部分:操作系統、中間軟件和應用程序。底層以Linux內核為基礎,只提供基本功能。其他的應用軟件則由各公司自行開發,以Java作為編程語言。另外,為了推廣此技術,Google聯合30多家移動公司集資成立了手機開發聯盟組織。
1.Android平臺構成
Android是一個平臺,主要包括Linux微內核、中間件(SQLite等)、關鍵應用(電話本、郵件、短消息、GoogleMap、瀏覽器等)、提供的Java框架及Android中的JVM。
2.Android特點之關鍵類
View視圖類,ContentProviders(應用交互管理類)、ResourceManager(非編碼資源管理類)、NotificationManager(通告管理類)、ActivityManager(生命周期管理類)。
3.Android特點之界面開發
這一塊主要討論了Android的界面開發機制,可以將組件的初始化抽取出來放到配置文件中,組件更新用編碼方式來處理。
4.應用構成
Android的應用一般由四個關鍵部分構成:Activity、IntentReceiver、Service、ContentProvider。
Activity是必要部分,Activity每個應用都必須得有,Activity代表一個應用的具體的界面管理類,其本身并不顯示。
IntentReceiver可使應用對外部事件做出響應。例如,應用正在執行的時候突然有來電,這個時候可使用IntentReceiver做出處理使應用更健壯可靠。
Service Android應用的生命周期是由Android系統來決定的,不由具體應用的線程左右。如果應用要求在沒有界面顯示的情況下也能正常運行(要求有后臺線程,而后臺線程是不會被系統回收的,直到線程結束),這個時候就需要用到Service。所以服務一般都是和線程聯系在一起的。
ContentProvider封裝了很多Android當中的上下文環境,包括SQLite,使得在不同應用之間交互成為可能。
5.Android特點之布局管理
FrameLayout:左上角只顯示一個組件。
LinearLayout:線性布局管理器,分為水平和垂直兩種,只能進行單行布局。
TableLayout:任意行和列的表格布局管理器。其中TableRow代表一行,TableRow的每一個視圖組件代表一個單元格。
AbsoluteLayout:絕對布局管理器,坐標軸的方式,左上角是(0,0)點,往右X坐標遞增,往下Y坐標遞增。
RelativeLayout:相對布局管理器,具有一定的靈活性的視圖組件,它由視圖之間或與上層組件的相對位置來確定下一個組件的位置。
6.Activity交互
Intent其實就是用來在Activity之間做交互用的,需要說明的是,Intent有個意圖說明,值得用戶深究,舉個簡單的例子,有種Intent叫Intent.ACTION_CALL,可直接撥打電話。
7.SharedPreferences
SharedPreferences是Android平臺上一個輕量級的存儲類,主要用于保存一些常用的配置。它類似于過去Windows系統上的ini配置文件,但是它分為多種權限,可以全局共享訪問,最終以XML方式來保存,效率不如Intent,但是由于可以共享,所以可以在Acitivity之間交互。其效率比SQLite要高。
SQLite也就是數據庫,這種方式不推薦使用,因為影響效率,如果是在不同應用之間交互或是在需要永久存儲的情況下,可以考慮SQLite。
8.Android特點之生命周期
理解Android生命周期非常重要,每一個Android應用都是以一個進程的方式運行的,其生命周期不由自身控制,而是由系統根據運行的應用的一些特征來決定的。所以理解好Android生命周期對你的應用什么時候會被系統回收很重要。
理解好生命周期可提高應用的健壯性。例如,應用的初始化應該放到onCreate方法中,應用暫停的時候應重寫onPause方法來保存當前應用的操作結果。
9.SQLite
SQLite是Android中提供的內置數據庫,據說比MySQL更輕巧。SQLite也是開源產品。數據庫的操作方式主要有以下幾種:
SQL語句直接操作,插入、更新、刪除都可以直接寫SQL語句,調用execSQL()就可以。
查詢需要使用rawQuery()來完成,查詢結果返回一個可滾動的結果集。
Cursor在對Cursor操作前,需要將其游標移動到第一位,每取一個結果向下移一位。
學習小貼士
Android實際開發經驗分享:
● 自定義組件的顯示問題。在寫自定義視圖的時候經常要對視圖的X、Y坐標進行調整,以達到預期的理想位置??梢詫⒚總€組件的X、Y坐標值畫到組件旁邊,這樣很直觀,一看就知道該怎樣調整。
● 使用Log來打印日志和進行調試。
● 使用LogCat視圖。在showView中有LogCat視圖,LogCat視圖會顯示一些Android仿真器打印出的堆棧信息,對應用的調試非常有幫助,另外Log打印的日志也在這邊顯示。
● 使用Emulator Control視圖。Emulator Control可以完成一些簡單的設備操作,如模擬來電、短消息。
● 活用tools目錄下的工具。該目錄在Android SDK中都有提供,通過這些工具可以操作Android仿真器,如創建一個虛擬SD卡,將系統中的文件移動到虛擬SD中,Android都提供了相應的工具,相關命令可以上網查閱。
1.3.3 學習Android必備知識
1.Java基礎知識
J2SE:Java基礎類[lang包、IO包、util包(集合框架)、面向對象、多線程、網絡編程]。
2.J2EE知識
如果你想進行Android客戶端應用程序的開發,這部分知識是必備的。顯然,Android客戶端只做數據的請求、展現,所需的數據在服務器端。
技能點:Tomcat(Weblogic)、XML解析、JSON解析、JSP/Servlet;了解SSH。
3.Linux、C語言知識
如果深入研究Android底層,有必要學習一下這一部分的知識,以便于你的后續發展。