編輯:關於Android編程
一、認識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應用商店中銷售。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
這篇文章主要介紹發送驗證碼和校驗驗證碼的功能,用到一個第三方平台Bmob,那Bmob是什麼呢?Bmob可以開發一個雲存儲的移動應用軟件,他提供了大量的標准的A
本文實例為大家分享了Android錄制音頻文件的具體代碼,供大家參考,具體內容如下1、這個demo中沒有對多次點擊同一個聲音文件做詳細處理,偶爾會有崩潰,用的時候需要注意
1 軟件下載 (1) JDK : http://www.oracle.com/technetwork/java/javase/downloads/index.html(2
2.4 APP執行代碼APP運行時可執行的代碼,主要有三部分:1) 虛擬機初始化時加載的系統jar包,主要包含framework.jar和libcore.jar,分別對應