Android開發教程之初識Android App_Android

來源:互聯網
上載者:User

一、認識Android作業系統

Android最早由安迪•羅賓(Andy Rubin)創辦,2007年被Google公司收購,Google公司憑藉Android作業系統在智能手機上取得了巨大的成功。

1、Android作業系統的特點

Android作業系統是一個多使用者的Linux系統,每一個應用程式都是一個獨立的使用者。系統預設為每一個應用程式分配一個唯一的Linux使用者ID(這個ID只能被系統使用,並且對於應用程式來說,這個ID是未知的)。系統為一個應用程式的所有檔案設定了許可權,所以,只有分配給這個應用程式的使用者ID才可以訪問它們。

每一個進程有它主機的虛擬機器(VM),所以一個應用程式的代碼會獨立於其它的應用程式運行。

預設情況下,每一個應用程式在它自己的Linux進程中運行。Android會在一個應用程式的任何一個組件需要被調用的時候啟動這個進程。然後,當沒有任何組件被調用或者系統需要為其它應用程式回收記憶體的時候,就關閉這個進程。

通過這種方式,Android系統實現了最少的特權原則。就是說,每一個應用程式,預設都只能調用它所需要的工作群組件。這就創造了這樣一種非常安全的環境,在這個環境中,一個應用程式不能訪問沒有被授予其許可權的系統部分。

儘管如此,也有很多途徑可以讓一個應用程式和其它的應用程式共用資料,也可以讓一個應用程式去調用系統服務:

-----為兩個應用程式分配同一個Linux使用者ID是可行的,這樣它們就能訪問對方的檔案。為了節約系統資源,擁有相同使用者ID的-------應用程式也可以被運行於相同的Linux進程 並且共用VM(必須用相同的認證簽名)。應用程式可以通過請求許可權來訪問裝置資料,例如連絡人、SMS資訊、可插拔儲存(SD卡)、相機、藍芽、……等等。所有的應用程式許可權必須在安裝的時候由使用者授予。

2、Android程式在系統中的存在方式

開發在Android作業系統上運行應用程式時,Android SDK工具負責編譯代碼,以及將任意資料並連同相關資源一塊打包進一個Android包內,它實際上是一個以.apk為尾碼的壓縮檔。一個.apk檔案中的所有代碼就是一個Android應用程式。

在Android裝置上安裝應用程式就是安裝.apk檔案。

一旦安裝成功,該Android程式就擁有了自己獨立的運行沙箱(沙箱是在受限的安全環境中運行應用程式的一種做法,這種做法是要限制授予應用程式的代碼存取權限)。

二、理解Android SDK和API版本

每個Android版本都有一個唯一的整數標識,稱為API Level。由於使用者使用的程式總是早於最新發行的API版本,所以實際的Android應用程式必須確保能在多版本API的環境中都能工作。

1、Android SDK和項目配置

Android SDK為我們提供了API連結庫以及用於建立、測試與調試android應用的開發工具的集合。指定Android API版本配置前,要確保已經用Android SDK Manager安裝了對應版本的Android SDK。

每個Android應用程式必須正確配置所使用的API層級,有三種:

Target Framework – 使用哪種架構建立應用程式(編譯用)。

Minimum Android Version – 指定Android應用程式可使用的最低版本(運行用)。

Target Android Version – 指定Android應用程式試圖使用的版本(運行用)。

也可以將三種API設定為相同的值:

將“Target framework”更改為某個API版本,即可擁有該版本的所有API功能。如果希望相容早期的Android版本,可修改“Minimum Android to target”選項:

上圖中的選項表明開發的Android應用程式可以安裝在Android 4.4.2到Android 6.0之間所有版本的手機上,即API 19~API 23。但是,雖然可以安裝在這些平台上,可並不能保證應用程式都能在這些平台上正常運行。例如,將程式安裝到Android 4.4.2(API 19)平台上,可代碼中卻調用了比API 19更高版本的API,但是卻沒有對應版本的編譯器支撐,那麼該程式肯定無法在Android 4.4.2平台上正常運行。因此,這種情況下,必須顯式包含運行時檢查。例如:

if (Android.OS.Build.Version.SdkInt >= Android.OS.BuildVersionCodes.Lollipop){builder.SetCategory(Notification.CategoryEmail);}

註:Android.OS.BuildVersionCodes.Lollipop是指Android 5.0)

2、Android API版本對照表

下表列出了各種Android版本及其對應的資訊:

從表中可以看出,Android的版本發布非常頻繁,有時一年就發布幾個版本。如何確保在如此多的版本中仍然能讓應用程式可靠地運行?這就是API Level的作用。

3、API層級和自訂庫

當建立Android Libraries項目時,應該讓開發的庫函數能應用於各種版本的API,因此一般不需要設定最低層級的API和最進階別的API,而是應遵循以下的最佳做法:

引用某個版本的API時,要確保應用程式啟動並執行API版本不低於所引用的版本。為其他安卓應用程式設計自訂的庫函數時,要為該應用程式設定需要的最低API層級。

總之,要確保開發的庫函數使用儘可能少的API,以便讓所設計的庫適用範圍更廣。

三、在Debug模式下調試應用程式

1、在模擬器中調試Android應用程式

由於模擬器啟動較慢,所以無論是C#開發還是Java開發,最好的辦法都是先將模擬器啟動起來,然後再調試。

一般使用VS2015在Debug模式下用模擬器調試。由於偵錯模式下預設包含了可適用於多種CPU型號的調試資訊,所以Debug模式下產生的.apk檔案比較大。

2、在真機上調試Android應用程式

也可以直接在真機上調試應用程式,只需要通過USB將手機串連到電腦上即可,此時在調試選項中會自動出現手機型號。

四、部署應用程式到真機

Debug模式下調試完成後,先改為Release模式,然後將其發布到真機上(真機不再包含調試資訊,此時產生的.apk檔案會小很多)。

當然,也可以通過壓縮擴充庫進一步減少.apk檔案的大小。比如第3章百度應用程式中調試環境下.apk檔案較大,將.jar包分開後就會顯著減少.apk檔案的大小。

要將你的程式發布到手機上,需要先查看你手機上的Android作業系統版本,確保你編寫的應用程式使用的編譯器版本和你手機作業系統的版本一致。

下面以手機的Android作業系統版本為4.4.4為例,說明將你用C#編寫的應用程式發布到手機上啟動並執行具體實現步驟。

發布前,先將項目屬性改為API Level 19(與手機的4.4.4版本對應),如下圖所示:

然後選擇下面介紹的兩種辦法之一發布即可。

1、第1種辦法

先將【Debug】模式改為【Release】模式(這一步很重要,否則無法發布),然後選擇主菜單的【工具】à【Android】à【Publish Android Application】,如下圖所示:

在彈出的發布視窗中,選擇【Create New KeyStore】,輸入【Password】,單擊【Next】,然後輸入別名(Alias)、口令(Password)、你編寫的程式有效年數(Validity years)、你的姓名(First and Last Name)等資訊:

單擊【Next】,輸入發布的目標檔案夾,應用程式檔案名,然後單擊【Create】,它就會自動在目標檔案夾下建立PhonewordApp-Aligened.apk檔案。

注意:要確保手機的【應用程式設定】勾選了“允許未知來源的應用程式”。

將發布產生的PhonewordApp-Aligened.apk檔案拷到你的手機上,然後雙擊安裝、運行。

用這種方式發布的應用程式也可以在Android市集中銷售。

2、第2種辦法

先將【Debug】模式改為【Release】模式(這一步很重要,否則無法發布)。

滑鼠右擊項目名,然後選擇【Export Android Package】,如下圖所示:

此時它就會自動在Release檔案夾下產生多個.apk檔案。

根據你的手機類型,將產生的某個匹配的PhonewordApp-Signed.apk檔案(在項目的Release檔案夾下)拷到你的手機上,然後雙擊安裝、運行。

用這種方式發布的應用程式只能直接在真機上運行,無法在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.