快速進入Android世界(上)

來源:互聯網
上載者:User

標籤:android   android入門   android基礎   快速進入android世界   

Android概述Android是什麼 Android是一種以Linux為基礎的開放源碼作業系統和應用程式,主要使用於可攜式裝置。
Android作業系統最初由Andy Rubin開發,最初主要支援手機。
2005年由Google收購注資,並組建開放手機聯盟開發改良,逐漸擴充到平板電腦及其他領域上。
2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居全球第一。
2011年11月資料,Android佔據全球智能手機作業系統市場52.5%的份額,中國市場佔有率為58%。
Android名稱來源 

Android一詞最早出現於法國作家利爾亞當(Auguste Villiers de l‘Isle-Adam)在1886年發表的科幻小說《未來夏娃》(L‘ève future)中。他將外表像人的機器起名Android。

Android的版本

android1.1

android4.0

android4.1 

      ...

Android開發方向 系統開發

擴充作業系統功能 比較高難 ,android底層使用c c++開發。從事android系統開發,除了對java需要有深入的瞭解和開發經驗,還需要對c 和c++有深入瞭解和足夠的開發經驗

應用開發

開發應用程式 難度一般

Android的系統架構

應用程式層 應用是用Java語言編寫的運行在虛擬機器上的程式。
應用程式框架層 

這一層是編寫Google發布的核心應用時所使用的API架構,開發人員同樣可以使用這些架構開發自己的應用,這樣便簡化了程式開發的架構設計,但是必須遵守其架構的開發原則。

系統運行庫層 當使用Android應用程式框架時,Android系統會通過一些C/C++庫來支援我們使用的各個組件,使其能更好的為我們服務。Linux 核心層 

Android的核心系統服務於Linux2.6核心,如安全性、記憶體管理、進程管理、網路通訊協定棧和驅動模型等都依賴於該核心。Linux核心同時也作為硬體和軟體棧之間的抽象層。

開發環境搭建 這裡主要說下Eclipse下開發的環境搭建,官方現在推薦Android Studio ,關於Android Studio 我也是剛開始接觸,我會把遇到的問題總結出來,以後以博文的形式進行分享。 Android開發準備工作 所需軟體:
JDK 1.5或更高(推薦使用JDK1.6版本) 、Eclipse3.5或更高(推薦使用3.7版本) 、Android SDKAndroid SDK 4.0.3 、ADTADT 20.0.2Android開發環境搭建 安裝SDK
SDK是Android開發套件,包含開發Android應用程式的API
SDK需要JDK1.5及以上的版本支援 安裝SDK前需要先安裝JDK
SDK的官方:
http://developer.android.com/sdk/index.html下載後雙擊安裝即可
安裝後的SDK只是一個SDK版本的管理器,點擊SDK Manager,裡面管理的是android SDK也就是android系統的版本勾選點擊Install Packages即可對應下載

android版本:

1.X 較早手機版本 2.X 主流手機版本 3.X 平板電腦版本 4.X 為2.X與3.X整合版 ,即可手機使用,也可平板使用

配置SDK的環境變數

找到SDK的安裝路徑
開啟tools檔案夾


 添加到環境變數path裡

開啟platform-form-tools檔案夾 一樣的道理,把路徑複製好後,加入環境變數path裡安裝ADT外掛程式 ADT
使用eclipse並不能直接使用SDK開發android應用程式,這就需要添加eclipse對SDK的支援,也就是,eclipse需要外掛程式來支援SDK
這個外掛程式就是--ADT
下載ADT
下載ADT外掛程式,ADT外掛程式的版本號碼一定要與下載的SDK版本號碼一致
啟動Eclipse,“Help”→“Install New Software..”→“add” 指定ADT所在路徑即可,單擊OK



點擊finish完成安裝,若出現如所示警告,單擊OK繼續安裝即可
出現如下提示,則安裝成功,重啟eclipse
若工具列出現android表徵圖,即外掛程式安裝成功

在eclipse中配置SDK

點擊Windows→Preferences→android

建立AVD(模擬器) AVD AVD的全稱為:Android Virtual Device,就是Android啟動並執行虛擬設備,即類比手機。
建立AVD

點擊表徵圖

點擊Create AVD


點擊start 出現如下視窗 點擊Launch啟動模擬器啟動成功後會看到一個類比手機的畫面
第一個HelloWorld程式

建立一個Android項目


連續點擊下一步 直到完成按鈕可以點擊

運行程式

點擊項目右鍵


運行結果


Android項目的目錄結構
gen: 當向res檔案夾內添加資源時,會在R.java內自動產生,代表添加資源的變數,通過訪問變數(即R.變數名),直接可以訪問資源。如:當向drawable-hdpi內添加圖片a.JPG,則R類自動添加代表a.JPG的變數res:Android組件 Activity(活動):

活動是最基本的Android應用程式組件,應用程式中,一個活動通常就是一個單獨的螢幕。每一個活動都被實現為一個獨立的類,並且從活動基類中繼承而來,活動類將會顯示由視圖控制群組成的使用者介面,並對事件做出響應。大多數的應用是由多個螢幕顯示組成。例如:一個文本資訊的應用也許有一個顯示發送訊息的連絡人清單螢幕,第二個螢幕用來寫簡訊和選擇收件者,再來一個螢幕查看訊息曆史或者訊息設定作業 等。這裡每一個這樣的螢幕就是一個活動,很容易實現從一個螢幕到一個新的螢幕並且完成新的活動。在某些情況下當前的螢幕也許需要向上一個螢幕活動提供返回值--比如讓使用者從手機中挑選一張照片返回通訊錄做為電話撥入者的頭像。

當一個新的螢幕開啟後,前一個螢幕將會暫停,並儲存在曆史堆棧中。使用者可以返回到曆史堆棧中的前一個螢幕。當螢幕不再使用時,還可以從曆史堆棧中刪除。預設情況下,Android將會保留從主畫面到每一個應用的運行螢幕。
簡單理解Activity代表一個使用者所能看到的螢幕,Activity主要是處理一個應用的整體性工作,例如,監聽系統事件(按鍵事件、觸控螢幕事件等)、為使用者顯示指定的View,啟動其他Activity等。所有應用的Activity都繼承於android.app.Activity類,該類是Android提供的基層類,其他的Activity繼承該父類後,通過Override父類的方法來實現各種功能,這種設計在其他領域也較為常見。

Service(服務):

一個Service是一段長生命週期的,沒有使用者介面的程式。比較好的一個例子就是一個正在從播放清單中播放歌曲的媒體播放器。在一個媒體播放器的應用中,應該會有多個activity,讓使用者可以選擇歌曲並播放歌曲。然而,音樂重放這個功能並沒有對應的activity,因為使用者當然會認為在導航到其它螢幕時音樂應該還在播放的。在這個例子中,媒體播放器這個activity會使用Context.startService()來啟動一個service,從而可以在後台保持音樂的播放。同時,系統也將保持這個service一直執行,直到這個service運行結束。另外我們還可以通過使用Context.bindService()方法,串連到一個service上(如果這個service還沒有運行將啟動它)。當串連到一個service之後,我們還可以service提供的介面與它進行通訊。拿媒體播放器這個例子來說我們還可以進行暫停、重播等操作。

ContentProvider(內容提供者):

Android應用程式能夠將它們的資料儲存到檔案、SQLite資料庫中,甚至是任何有效裝置中。當你想將你的應用資料與其它的應用共用時,內容提供器就可以發揮作用了。因為內容提供器類實現了一組標準的方法,從而能夠讓其它的應用儲存或讀取此內容提供器處理的各種資料類型。 資料是應用的核心。在Android中,預設使用鼎鼎大名的SQLite作為系統DB。但是在Android中,使用方法有點小小的不一樣。在Android中每一個應用都運行在各自的進程中,當你的應用需要訪問其他應用的資料時,也就需要資料在不同的虛擬機器之間傳遞,這樣的情況操作起來可能有些困難(正常情況下,你不能讀取其他的應用的db檔案),ContentProvider正是用來解決在不同的應用程式套件之間共用資料的工具。

BroadcastReceiver(廣播接收者):

一個廣播接收者是這樣一個組件,它不做什麼事,僅是接受廣播公告並作出相應的反應。許多廣播源自於系統代碼,例如公告時區的改變、電池電量低、已採取圖片、使用者改變了語言偏好。應用程式也可以發起廣播,例如為了他其他程式知道某些資料已經下載到裝置且他們可以使用這些資料。一個應用程式可以有任意數量的廣播接收者去反應任何它認為重要的公告。所有的接受者繼承自BroadcastReceiver基類。Android 中的廣播要麼來自於系統,要麼來自普通應用程式。很多事件都可能導致系統廣播,如手機所在時區發生變化,電池電量低,使用者改變系統語言設定等。來自普通應用程式,如一個代理程式更新其他應用程式某些資料已經下載完畢。

為了響應不同的事件通知,應用程式可以註冊不同的 Broadcast Receiver 。所有的 Broadcast Receiver都繼承自基類 BroadcastReceiver 。BroadcastReceiver 自身並不實現圖形化使用者介面,但是當它收到某個通知後, BroadcastReceiver 可以啟動Activity 作為響應,或者通過 NotificationMananger 提醒使用者。BroadcastReceiver 是對發送出來的 Broadcast 進行過濾接收並響應的一類組件。

Intent(意圖):

Android使用了Intent這個特殊類,實現在螢幕與螢幕之間移動。Intent類用於描述一個應用將會做什麼事。在Intent的描述結構中,有兩個最重要的部分:動作和動作對應的資料。典型的動作類型有:MAIN(activity的門戶)、VIEW、PICK、EDIT等。而動作對應的資料則以URI的形式進行表示。例如:要查看一個人的連絡方式,你需要建立一個動作類型為VIEW的intent,以及一個表示這個人的URI。與之有關係的一個類叫IntentFilter。相對於intent是一個有效做某事的請求,一個intentfilter則用於描述一個activity(或者IntentReceiver)能夠操作哪些intent。一個activity如果要顯示一個人的連絡方式時,需要聲明一個IntentFilter,這個IntentFilter要知道怎麼去處理VIEW動作和表示一個人的URI。IntentFilter需要在AndroidManifest.xml中定義。通過解析各種intent,從一個螢幕導航到另一個螢幕是很簡單的。當向前置航時,activity將會調用 startActivity(IntentmyIntent)方法。然後,系統會在所有安裝的應用程式中定義的IntentFilter中尋找,找到最匹配myIntent的Intent對應的activity。新的activity接收到myIntent的通知後,開始運行。當startActivity方法被調用將觸發解析myIntent的動作,這個機制提供了兩個關鍵好處:

A、Activities能夠重複利用從其它組件中以Intent的形式產生的一個請求。
B、Activities可以在任何時候被一個具有相同IntentFilter的新的Activity取代。


ps:csdn編輯器寫部落格太麻煩了,尤其是排版上,還好現在支援markdown文法了。還是希望能將精力更多集中在內容上,而不是排版上,markdown解決了這個問題。

快速進入Android世界(上)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.