Android開發架構介紹

來源:互聯網
上載者:User

開發架構方麵包含基本的應用功能開發、資料存放區、網路訪問這三大塊:
一、應用方面
  一般而言一個標準的Android程式由如下4部分組成即Activity、Broadcast Intent Receiver、Service、Content Provider:
  1. Activity是最頻繁、最基本的模組,在Android中,一個Activity就是手機上一屏,相當於一個網頁一樣,所不同的是,每個Activity運行結束了,有個傳回值,類似一個函數一樣。Android系統會自動記錄從首頁到其他頁面的所有跳轉記錄並且自動將以前的Activity壓入系統堆棧,使用者可以通過編程的方式刪除曆史堆棧中的Activity Instance。
     Activity類中主要是跟介面資源檔關聯起來(res/layout目錄下的xml資源,也可以不含任何介面資源),內部包含控制項的顯示設計、介面互動設計、事件的響應設計以及資料處理設計、導航設計等application設計的方方面面。
  2. Broadcast Intent Receiver
 Intent提供了各種不同Activity進行跳轉的機制,譬如如果從A activity跳轉到B activity,使用Intent來實現如下:
     Intent in = new Intent(A.this, B.class);
     startActivity(in);
 BroadcastReceiver提供了各種不同的Android應用程式進行進行進程間通訊的機制,譬如當撥打電話來臨時,可以通過BroadcastReceiver發布廣播訊息。對於使用者而言,BroadcastReceiver是不透明的,使用者無法看到這個事件,BroadcastReceiver通過NotificationManager來通知使用者這些事件發生了,它既可以在資源AndroidManifest.xml中註冊,也可以在代碼中通過Context.registerReceiver()進行註冊,只要是註冊了,當事件來臨的時候,即時程式沒有啟動,系統也在需要的時候會自動啟動此應用程式;另外各應用程式很方便地通過Context.sendBroadcast()將自己的事情廣播給其他應用程式;
  3. Service,跟Windows當中的Service完全是一個概念,使用者可以通過startService(Intent service)啟動一個Service,也可通過Context.bindService來綁定一個Service.
  4. Content Provider,由於Android應用程式內部的資料都是私人的,Content Provider提供了應用程式之間資料交換的機制,一個程式可以通過實現一個ContentProvider的抽象介面將自己的資料暴露出去,並且隱蔽了具體的資料存放區實現,標準的ContentProvider提供了基本的CRUD(Create,Read,Update,Delete)的介面,並且實現了許可權機制,保護了資料互動的安全性;
  一個標準的Android應用程式的工程檔案包含如下幾大部分:
  -> Java原始碼部分(包含Activity),都在src目錄當中;
  -> R.java檔案,這個檔案是Eclipse自動產生與維護的,開發人員不需要修改,提供了Android對的資源全域索引;
  -> Android Library,這個是應用啟動並執行Android庫;
  -> assets目錄,這個目錄裡面主要用與放置多媒體等一些檔案;
  -> res目錄,放置的是資源檔,跟VC中的資來源目錄基本類似,其中的drawable包含的是圖片檔案,layout裡麵包含的是布局檔案,values目錄裡面主要包含的是字串(strings.xml)、顏色(colors.xml)以及數組(arrays.xml)資源;
  -> AndroidManifest.xml,這個檔案異常重要,是整個應用的設定檔,在這個檔案中,需要聲明所有用到的Activity、Service、Receiver等。

二、資料存放區
  在Android,可供選擇的儲存方式包括了SharedPreferences、檔案儲存體、SQLite資料庫儲存方式、內容提供器方式(Content Provider)以及網路方式 5種,具體如下:
   -> SharedPreferences是Android提供的一種設定檔讀寫方式,預設存在應用的data/<package name>/shared_prefs下面,通過getSharedPreferences(xx, 0);來擷取SharedPreferences對象進行讀寫操作;
   -> 通過openFileInput、openFileOutput等系統提供的API來進行資料的讀寫訪問,特別需要注意的是在Android之中應用程式的資料是私人的,這就是說當前應用程式產生的檔案其他應用程式無法訪問。
   -> SQLite資料庫儲存方式則是通過繼承SQLiteOpenHelper類,並且擷取此類的應用程式層級的執行個體來進行資料庫操作的,該類中提供了預設的CRUD提供者,方便了應用程式的資料存放區操作;
   -> 內容提供器方式(Content Provider),如在上面應用方面所論述的一樣,通過調用其他應用程式的資料介面來實現資料的讀寫訪問;
   -> 網路方式主要是通過下面要提到的網路訪問該網路提供的網路服務介面實現資料的讀寫服務(譬如WebService資料提供者);
  
三、網路訪問方面
   主要是Http訪問技術的封裝,通過java.net.*;以及Android.net.*;下面提供的HttpPost、DefaultHttpClient、HttpResponse等類提供的提供者來實現具體的Web服務訪問,具體的實現細節在後面的章節中論述;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.