本文關(guān)鍵字:android開發(fā)框架,android開發(fā),android培訓(xùn),Android系統(tǒng)下Java編程詳解
Android系統(tǒng)作為一個開放的系統(tǒng),它體積龐大,對于不同的開發(fā)者來說,其在開發(fā)過程中并不需要掌握整個Android系統(tǒng),只需要進行其中某一部分的開發(fā)。從功能上,將Android開發(fā)分為移植開發(fā)移動電話系統(tǒng)、Android應(yīng)用程序開發(fā),以及Android系統(tǒng)開發(fā)3種。
從商業(yè)模式的角度來講,移植開發(fā)移動電話系統(tǒng)和Android應(yīng)用程序開發(fā)是Android開發(fā)的主流。對于移植開發(fā)移動電話系統(tǒng)主要由移動電話的制造者來進行,其產(chǎn)品主要是Android手機;而公司、團體和個人一般進行對于Android應(yīng)用程序的開發(fā),產(chǎn)生各種各樣的Android應(yīng)用程序。
對于Android移植開發(fā)來講,其主要工作集中于Linux內(nèi)核中的相關(guān)設(shè)備驅(qū)動程序,以及Android本地框架中的硬件抽象層接口的開發(fā);對于Android應(yīng)用程序開發(fā),其開發(fā)的應(yīng)用程序與Android系統(tǒng)的第四個層次的應(yīng)用程序是一個層次的內(nèi)容;對于Android系統(tǒng)的開發(fā),涉及Android系統(tǒng)的各個層次,一般情況下是從底層到上層的整體開發(fā)。
Android開發(fā)框架包括基本的應(yīng)用功能開發(fā)、數(shù)據(jù)存儲、網(wǎng)絡(luò)訪問三大塊。
一、應(yīng)用方面
一般而言,一個標(biāo)準(zhǔn)的Android程序包括Activity、Broadcast Intent Receiver、Service、Content Provider 4部分:
1.Activity
Activity是在Android應(yīng)用開發(fā)中頻繁、基本的模塊。在Android中,Activity類中主要是與界面資源文件相關(guān)聯(lián)(res/layout目錄下的XML資源,也可以不含任何界面資源),包含控件的顯示設(shè)計、界面交互設(shè)計、事件的響應(yīng)設(shè)計及數(shù)據(jù)處理設(shè)計、導(dǎo)航設(shè)計等application設(shè)計的方方面面。
因此,Activity是手機上的一個界面,相當(dāng)于一個網(wǎng)頁,不同的是,每個Activity運行結(jié)束時都返回一個返回值,類似一個函數(shù)。Android系統(tǒng)會自動記錄從首頁到其他頁面的所有跳轉(zhuǎn)記錄并且自動將以前的Activity壓入系統(tǒng)堆棧,用戶可以通過編程的方式刪除歷史堆棧中的Activity Instance。
2.Broadcast Intent Receiver
Intent為不同的Activity間進行跳轉(zhuǎn)提供了機制,比如當(dāng)從A Activity跳轉(zhuǎn)到B Activity,使用Intent來實現(xiàn)如下:
Intent in = new Intent(A.this, B.class);
startActivity(in);
BroadcastReceiver還為各種不同的Android應(yīng)用程序間進行進程間的通信提供了可能。例如,當(dāng)電話呼入時,它可以通過BroadcastReceiver發(fā)布廣播消息。對于用戶而言,用戶是無法看到BroadcastReceiver事件的,它對用戶是不透明的,BroadcastReceiver通過NotificationManager通知用戶這些事件發(fā)生了,它既可以在資源AndroidManifest.xml中注冊,也可以在代碼中通過Context.registerReceiver()進行注冊,注冊以后,當(dāng)事件來臨時,即使程序沒有啟動,系統(tǒng)也會在需要的時候自動啟動此應(yīng)用程序;另外,各應(yīng)用程序很方便地通過Context.sendBroadcast()將自己的事情廣播給其他應(yīng)用程序。
3.Service
Android中的Service和Windows中的Service是一個概念,用戶可以通過startService(Intent Service)啟動一個Service,也可以通過Context.bindService來綁定一個Service。
4.Content Provider
Content Provider提供了應(yīng)用程序之間數(shù)據(jù)交換的機制,一個應(yīng)用程序通過實現(xiàn)一個Content Provider的抽象接口將自己的數(shù)據(jù)暴露出去,并且隱蔽了具體的數(shù)據(jù)存儲實現(xiàn),這樣實現(xiàn)了Android應(yīng)用程序內(nèi)部數(shù)據(jù)的保密性。標(biāo)準(zhǔn)的Content Provider提供了基本的CRUD(Create,Read,Update,
Delete)的接口,并且實現(xiàn)了權(quán)限機制,保障了數(shù)據(jù)交互的安全性。
一個標(biāo)準(zhǔn)的Android應(yīng)用程序的工程文件包含以下幾大部分:
Java源代碼部分(包含Activity)——放置在src目錄當(dāng)中。
R.java文件——由Eclipse自動生成與維護的,開發(fā)者不需要修改,提供了Android對的資源全局索引。
Android Library——應(yīng)用程序運行的Android庫。
assets目錄——主要用于放置多媒體等一些文件。
res目錄——放置的是資源文件:drawable包含圖片文件、layout包含布局文件,values目錄里面主要包含字符串(strings.xml)、顏色(colors.xml)以及數(shù)組(arrays.xml)資源。
AndroidManifest.xml——應(yīng)用的配置文件,在這個文件中,需要聲明所有用到的Activity、Service、Receiver等。
二、數(shù)據(jù)存儲
在Android中,提供的存儲方式包括SharedPreferences、文件存儲、SQLite數(shù)據(jù)庫存儲方式、內(nèi)容提供器方式(Content Provider)及網(wǎng)絡(luò)方式 5種,具體介紹如下。
1.SharedPreferences
作為Android提供的一種配置文件讀/寫方式,默認(rèn)保存在應(yīng)用的目錄data/<package name>/
shared_prefs下,通過方法getSharedPreferences(xx, 0)來獲取SharedPreferences對象進行讀/寫操作。
2.文件存儲
Android系統(tǒng)提供了進行數(shù)據(jù)讀寫訪問的API,例如,openFileInput、openFileOutput等,特別需要注意的是,在Android中應(yīng)用程序的數(shù)據(jù)是私有的,出就是說,當(dāng)前應(yīng)用程序產(chǎn)生的文件其他應(yīng)用程序無法訪問。
3.SQLite數(shù)據(jù)庫存儲方式
通過繼承SQLiteOpenHelper類,通過該類提供的CRUD接口來進行數(shù)據(jù)庫操作,方便了應(yīng)用程序的數(shù)據(jù)存儲操作。
4.內(nèi)容提供器方式(Content Provider)
通過調(diào)用其他應(yīng)用程序的數(shù)據(jù)接口來實現(xiàn)數(shù)據(jù)的讀/寫訪問。
5.網(wǎng)絡(luò)方式
主要是通過下面要提到的網(wǎng)絡(luò),訪問該網(wǎng)絡(luò)提供的網(wǎng)絡(luò)服務(wù)接口實現(xiàn)數(shù)據(jù)的讀寫服務(wù)(例如,
WebService數(shù)據(jù)訪問接口)。
三、網(wǎng)絡(luò)訪問方面
主要通過java.net.*;Android.net.*來進行HTTP訪問技術(shù)的封裝;利用其下提供的HttpPost、DefaultHttpClient、HttpResponse等類提供的訪問接口來實現(xiàn)具體的Web服務(wù)訪問。
本文選自華清遠(yuǎn)見android開發(fā)培訓(xùn)教材《Android系統(tǒng)下Java編程詳解》