日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Xamarin开发 Android 系列 4】 Android 基础知识

發(fā)布時間:2025/5/22 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Xamarin开发 Android 系列 4】 Android 基础知识 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是Android?

?

Android一詞的本義指“機(jī)器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙,號稱是首個為移動終端打造的真正開放和完整的移動軟件。

Android是一種以Linux為基礎(chǔ)的開放源代碼操作系統(tǒng),主要使用于便攜設(shè)備。目前尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),最初主要支持手機(jī)。2005年由Google收購注資,并組建開放手機(jī)聯(lián)盟開發(fā)改良,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。Android的主要競爭對手是蘋果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。 2012年2月數(shù)據(jù),Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場52.5%的份額,中國市場占有率為68.4%。

什么是Android手機(jī)?

Android手機(jī)就是運行在谷歌Android手機(jī)操作系統(tǒng)上的手機(jī),統(tǒng)稱為Android手機(jī),也可稱為gphone手機(jī)。

名稱來源

Android一詞最早出現(xiàn)于法國作家利爾亞當(dāng)(Auguste Villiers de l'Isle-Adam)在1886年發(fā)表的科幻小說《未來夏娃》(L'ève future)中。他將外表像人的機(jī)器起名為Android。Android的Logo是由Ascender公司設(shè)計的。其中的文字使用了Ascender公司專門制作的稱之為“Droid ” 的字體。Android是一個全身綠色的機(jī)器人,綠色也是Android的標(biāo)志。顏色采用了PMS 376C和RGB中十六進(jìn)制的#A4C639來繪制,這是Android操作系統(tǒng)的品牌象徵。有時候,它們還會使用純文字的Logo。

版本類型

Android在正式發(fā)行之前,最開始擁有兩個內(nèi)部測試版本,并且以著名的機(jī)器人名稱來對其進(jìn)行命名,它們分別是:阿童木(Android Beta),發(fā)條機(jī)器人(Android 1.0)。后來由于涉及到版權(quán)問題,谷歌將其命名規(guī)則變更為用甜點作為它們系統(tǒng)版本的代號的命名方法。甜點命名法開始于 Android 1.5 發(fā)布的時候。作為每個版本代表的甜點的尺寸越變越大,然后按照26個字母數(shù)序:紙杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松餅(Android 2.0/2.1),凍酸奶(Android 2.2),姜餅(Android 2.3),蜂巢(Android 3.0),冰激凌三明治(Android 4.0),根據(jù)最新消息新一代Android版本將命名為果凍豆(Jelly Bean)。

各版本發(fā)布時間

Android版本發(fā)布日期
Android 1.02008年9月
Android 1.5 Cupcake(紙杯蛋糕)2009年4月30日
Android 1.6 Donut(甜甜圈)2009年9月15日
Android 2.0/2.0.1/2.1 Eclair(松餅)2009年10月26日
Android 2.2/2.2.1 Froyo(凍酸奶)2010年5月20日
Android 2.3 Gingerbread(姜餅)2010年12月7日
Android 3.0 Honeycomb(蜂巢)2011年2月2日
Android 3.1?Honeycomb(蜂巢)2011年5月11日
Android 3.2?Honeycomb(蜂巢)2011年7月13日
Android 4.0?Ice Cream Sandwich(冰激凌三明治)2011年10月19日
Android 4.1?Jelly Bean(果凍豆)2012年6月28日
Android 4.2?Jelly Bean(果凍豆)2012年10月30日
Android 4.3 Jelly Bean(果凍豆)2013年7月24日
Android 4.4 KitCat(巧克力)2013年10月31日
Android 5.0 Lolipop(棒棒糖)2014年10月15日
Android 5.1 Lolipop(棒棒糖)2015年3月10日

?

Android平臺優(yōu)勢

1)、開放性

在優(yōu)勢方面,Android平臺首先就是其開放性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟。

開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機(jī)。

2)、掙脫運營商的束縛

在過去很長的一段時間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運營商的控制。自從 iPhone上市,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機(jī)隨意接入網(wǎng)絡(luò)已不是運營商口中的笑談。

3)、豐富的硬件選擇

這一點還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容。好比你從諾基亞Symbian風(fēng)格手機(jī)一下改用蘋果iPhone,同時還可將Symbian 中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。

4)、不受任何限制的開發(fā)商

Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境。因此不會受到各種條條框框的阻撓,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、**方面的程序和游戲如何控制正是留給Android難題之一。

5)、無縫結(jié)合的Google應(yīng)用

如今叱咤互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史。從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機(jī)將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。

?

Android研發(fā)歷史

2005年

Google收購了成立僅22個月的高科技企業(yè)Android公司。

2007年

11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統(tǒng),并且在這天谷歌宣布建立一個全球性的聯(lián)盟組織,該組織由34家手機(jī)制造商、軟件開發(fā)商、電信運營商以及芯片制造商共同組成。這一聯(lián)盟將支持谷歌發(fā)布的手機(jī)操作系統(tǒng)以及應(yīng)用軟件,將共同開發(fā)Android系統(tǒng)的開放源代碼。

2008年

5月28日,Patrick Brady于Google I/O大會上提出Android HAL架構(gòu)圖。

8月18日,Android獲得美國聯(lián)邦通信委員會的批準(zhǔn)。

9月22日,谷歌正式對外發(fā)布第一款A(yù)ndroid手機(jī)——HTC G1。

9月23日,谷歌發(fā)布Android1.0。

9月24日,全球業(yè)界都表示不看好Android操作系統(tǒng),并且聲稱最多1年,Android就會被Google關(guān)閉。

2009年

4月30日,Android1.5正式發(fā)布。

5月10日,HTC G1和HTC G2市場大賣,成為僅次于iPhone的熱門機(jī)型。

9月25日,Android1.6正式發(fā)布。

9月29日,HTC Hero G3廣受歡迎,成為全球最受歡迎的機(jī)型。

10月28日,Android 2.0 智能手機(jī)操作系統(tǒng)正式發(fā)布。

11月10日,由于Android的火熱,Android平臺出現(xiàn)第一個惡意間諜軟件:Mobile Spy。

2010年

1月7日,Google發(fā)布了旗下第一款自主品牌手機(jī):Nexus one(HTC G5)。

1月,谷歌與Linux基金會就Linux內(nèi)核的同步和維護(hù)意見不一致而產(chǎn)生了矛盾。

2月3日,Linux內(nèi)核開發(fā)者Greg Kroah-Hartman將Android的驅(qū)動程序從Linux內(nèi)核“狀態(tài)樹”上除去。

5月19日,Google正式對外發(fā)布Android2.2智能操作系統(tǒng)。

5月20日,Google對外正式展示了搭載Android系統(tǒng)的智能電視-Google TV,該電視為全球首臺智能電視。

7月1日,Google宣布正式與雅虎、亞馬遜合作,并且在Android上推出多項Kindle服務(wù)和雅虎服務(wù)。

7月9日,美國NDP集團(tuán)調(diào)查顯示,Android系統(tǒng)已占據(jù)了美國手機(jī)市場28%的份額,全球17%的市場份額。

8月12日,Android平臺出現(xiàn)第一個木馬病毒:Trojan-SMS.AndroidOS.FakePlayer.a。

9月,Android應(yīng)用數(shù)量超過9萬個。

9月21日,Google對外公布數(shù)據(jù),每日銷售的Android設(shè)備的新用戶數(shù)達(dá)到20萬。

10月26日,Google宣布Android達(dá)到第一個里程碑:電子市場上Android應(yīng)用數(shù)量達(dá)到10萬個。

12月7日,Google正式發(fā)布Android2.3操作系統(tǒng)。

2011年

1月,Google對外宣布Android Market上的應(yīng)用數(shù)量超過20萬。

1月,Google對外公布數(shù)據(jù),每日Android設(shè)備的新用戶數(shù)達(dá)到了30萬。

2月,美國移動用戶36%擁有智能手機(jī)。當(dāng)中,48%的智能手機(jī)用戶選擇Android智能手機(jī)。約32.1%的智能手機(jī)用戶選擇了蘋果iPhone。黑莓及其它智能手機(jī)占有11.6%的份額。

2月2日,Android3.0正式發(fā)布。

2月3日,谷歌發(fā)布了專用于平板電腦的Android 3.0蜂巢系統(tǒng)。

6月,Android在日本的智能手機(jī)操作系統(tǒng)市場占有率達(dá)到57%。

7月,Android在歐洲的智能手機(jī)操作系統(tǒng)市場占有率達(dá)到了22.3%

7月,Google對外公布數(shù)據(jù),Android每天的新用戶達(dá)到55萬,Android設(shè)備用戶總數(shù)達(dá)1.35億。

8月,谷歌收購摩托羅拉移動。

8月,Google對外宣布Android Market上的應(yīng)用數(shù)量超過30萬。

8月2日,Android手機(jī)已占據(jù)全球智能機(jī)市場48%的份額,并在亞太地區(qū)市場占據(jù)統(tǒng)治地位,終結(jié)了Symbian(塞班系統(tǒng))的霸主地位,躍居全球第一。

8月,Android在韓國的智能手機(jī)操作系統(tǒng)市場占有率達(dá)到了95%。

8月,Android系統(tǒng)在35個國家市場占有率第一,平均市場占有率達(dá)到48%。

8月,Android系統(tǒng)成為亞太地區(qū)第一大系統(tǒng),市場占有率為亞太地區(qū)第一大。

9月,Android在美國的智能手機(jī)操作系統(tǒng)市場占有率達(dá)到43%。

10月19日,谷歌正式發(fā)布Android 4.0操作系統(tǒng)。

11月,Android Market上提交審核的應(yīng)用程序數(shù)量達(dá)到50萬。

11月初,谷歌對Android Market上的應(yīng)用程序進(jìn)行了大清理,據(jù)統(tǒng)計,此次共清理了約18萬個應(yīng)用程序,包括流氓應(yīng)用、病毒軟件、侵犯版權(quán)、低質(zhì)量和濫竽充數(shù)的各種程序,谷歌將這一系列應(yīng)用刪除后,使得Android市場中的優(yōu)質(zhì)應(yīng)用程序總數(shù)到31.5萬。

11月15日,Android在中國大陸的智能手機(jī)操作系統(tǒng)市場占有率達(dá)到了58%。

11月20日,谷歌宣布啟動了Android Market應(yīng)用審核、取締、清掃行為,定期對電子市場上存在的不合格、低質(zhì)量、違法惡意的應(yīng)用程序進(jìn)行清理。

11月18日,美國NPD數(shù)據(jù)顯示,Android和iOS平臺上的游戲占有率都首度超過任天堂的DS掌機(jī)和索尼的PSP掌機(jī),手機(jī)游戲玩家也超過了掌機(jī)玩家,游戲開發(fā)商更傾向于向Android和iOS手機(jī)上開發(fā)游戲。

11月18日,谷歌報告顯示,通過谷歌服務(wù)器激活的Android設(shè)備用戶總數(shù)已經(jīng)超過2億,每天激活的新用戶數(shù)超過55萬,而這僅僅是通過谷歌服務(wù)器激活的用戶設(shè)備數(shù)。

12月9日,Google對外宣布,Android Market的累計下載量已經(jīng)突破100億次,平均每月的下載量為10億次。

12月18日,Google移動事業(yè)部副總裁Andy Rubin表示,每天激活的Android設(shè)備已達(dá)到70萬部。

12月26日,Andy Rubin通過Twitter宣布,圣誕節(jié)的前兩天24日和25日,共有370萬部Android設(shè)備被激活。

2012年

1月4日,數(shù)據(jù)顯示,Android Market上的應(yīng)用程序數(shù)量突破40萬個,每4個月增加10萬個應(yīng)用程序

1月5,數(shù)據(jù)顯示,在谷歌電子市場上登記的Android開發(fā)者已經(jīng)達(dá)到了10萬名。

1月20日,谷歌報告顯示,通過谷歌服務(wù)器激活的Android設(shè)備用戶總數(shù)已經(jīng)超過2.5億,距離去年11月的數(shù)量,在短短2個月時間內(nèi)全球共賣出5000萬臺安卓設(shè)備,平均每秒鐘就賣出10臺安卓設(shè)備。

2月4日,comScore等數(shù)據(jù)市場研究機(jī)構(gòu)的數(shù)據(jù)顯示,安卓在美國手機(jī)市場的占有率達(dá)到了47.3%。

2月5日,美國聯(lián)邦政府宣布成立專門的Android實驗室進(jìn)行適用于軍方的Android第三方ROM的定制工作。

2月15日,美國聯(lián)邦政府總務(wù)署宣布已經(jīng)采購了2萬臺Android手機(jī)供政府人員使用。

2月22日,Android在中國大陸的智能手機(jī)操作系統(tǒng)市場占有率達(dá)到了68.4%。

2月28日,谷歌正式宣布,Android設(shè)備每天激活量達(dá)到85萬臺,通過谷歌服務(wù)器激活的Android設(shè)備用戶總數(shù)突破3億臺,距離2012年1月的數(shù)量,在短短1個月時間內(nèi)全球共賣出5000萬臺安卓設(shè)備,平均每秒鐘就賣出15臺安卓設(shè)備。

2月28日,谷歌官方數(shù)據(jù)顯示,Android電子市場(Android Market)上的應(yīng)用程序數(shù)量已經(jīng)突破45萬個,一年內(nèi)增加30萬個。

3月1日,Google對外宣布,Android Market的累計下載量已經(jīng)突破130億次。

3月4日,Android在印度的智能手機(jī)操作系統(tǒng)市場占有率達(dá)到了34%。

4月4日,Android在美國市場的占有率增長到了50.1%。

5月1日,Android在東南亞各國的平均份額達(dá)到了49%。

.................

?

Android系統(tǒng)架構(gòu)

Android的系統(tǒng)架構(gòu)和其它操作系統(tǒng)一樣,采用了分層的架構(gòu)。android分為四個層,從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運行庫層和linux核心層。

Android是以Linux為核心的手機(jī)操作平臺,作為一款開放式的操作系統(tǒng),隨著Android的快速發(fā)展,如今已允許開發(fā)者使用多種編程語言來開發(fā)Android應(yīng)用程序,而不再是以前只能使用Java開發(fā)Android應(yīng)用程序的單一局面,因而受到眾多開發(fā)者的歡迎,成為真正意義上的開放式操作系統(tǒng)。

在Android中,開發(fā)者可以使用Java作為編程語言來開發(fā)應(yīng)用程序,也可以通過NDK使用C/C++作為編程語言來開發(fā)應(yīng)用程序,也可使用SL4A來使用其他各種腳本語言進(jìn)行編程(如:python、lua、tcl、php等等),還有其他諸如:Qt(qt for android)、Mono(mono for android)等一些著名編程框架也開始支持Android編程,甚至通過MonoDroid,開發(fā)者還可以使用C#作為編程語言來開發(fā)應(yīng)用程序。另外,谷歌還在2009年特別發(fā)布了針對初學(xué)者的Android Simple語言,該語言類似Basic語言。而在網(wǎng)頁編程語言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已經(jīng)支持Android開發(fā)。

而在Android系統(tǒng)底層方面,Android使用C/C++作為開發(fā)語言。

應(yīng)用程序(部分)

早期的Android應(yīng)用程序開發(fā),通常通過Android SDK(Android軟件開發(fā)包)下使用Java作為編程語言來開發(fā)應(yīng)用程序,但通過不同的軟件開發(fā)包,則使用的編程語言也不同。

例如開發(fā)者可以通過Android NDK(Android Native開發(fā)包)使用C語言或者C++語言來作為編程語言開發(fā)應(yīng)用程序。同時谷歌還推出了適合初學(xué)者編程使用的Simple語言,該語言類似微軟公司的Visual Basic語言。此外,谷歌公司還推出了Google App Inventor開發(fā)工具,該開發(fā)工具可以快速地構(gòu)建應(yīng)用程序,方便新手開發(fā)者。

Java開發(fā)方面

Android支持使用Java作為編程語言來開發(fā)應(yīng)用程序,而Android的Java開發(fā)方面從接口到功能,都有層出不窮的變化。考慮到Java虛擬機(jī)的效率和資源占用,谷歌重新設(shè)計了Android的Java,以便能提高效率和減少資源占用,因而與J2ME等不同。 Android結(jié)構(gòu)其中Activity等同于J2ME的MIDlet,一個 Activity 類(Class)負(fù)責(zé)創(chuàng)建視窗(Windows),一個活動中的Activity就是在 foreground(前景)模式,背景運行的程序叫做Service。兩者之間通過由ServiceConnection和AIDL連結(jié),達(dá)到復(fù)數(shù)程序同時運行效果。如果運行中的 Activity 全部畫面被其他 Activity 取代時,該 Activity 便被停止(Stopped),甚至被系統(tǒng)清除(Kill)。

View等同于J2ME的Displayable,程序人員可以通過 View 類與“XML layout”檔將UI放置在視窗上,Android 1.5的版本可以利用 View 打造出所謂的 Widgets,其實Widget只是View的一種,所以可以使用xml來設(shè)計layout,HTC的Android Hero手機(jī)即含有大量的widget。至于ViewGroup 是各種layout 的基礎(chǔ)抽象類(abstract class),ViewGroup之內(nèi)還可以有ViewGroup。View的構(gòu)造函數(shù)不需要再Activity中調(diào)用,但是Displayable的是必須的,在Activity 中,要通過findViewById()來從XML 中取得View,Android的View類的顯示很大程度上是從XML中讀取的。View 與事件(event)息息相關(guān),兩者之間通過Listener 結(jié)合在一起,每一個View都可以注冊一個event listener,例如:當(dāng)View要處理用戶觸碰(touch)的事件時,就要向Android框架注冊View.OnClickListener。另外還有BitMap等同于J2ME的Image。

C/C++開發(fā)方面

早期的Android開發(fā)只支持Java作為編程語言開發(fā)應(yīng)用程序,因而使得其他語言開發(fā)者只能望而卻步。2010年4月,谷歌正式對開發(fā)者發(fā)布了Android NDK,NDK允許開發(fā)者使用C/C++作為編程語言來為Android開發(fā)應(yīng)用程序,初版的NDK使得開發(fā)者看到了C/C++在Android開發(fā)中的希望。

但是,當(dāng)前版本的NDK在功能上還有很多局限性:NDK并沒有提供對應(yīng)用程序生命周期的維護(hù);NDK也不提供對Android系統(tǒng)中大量系統(tǒng)事件的支持;對于作為應(yīng)用程序交互接口的UI API,當(dāng)前版本的NDK中也沒有提供。但是相對于初版的NDK,現(xiàn)在的NDK已經(jīng)進(jìn)行了許多重大的功能改進(jìn)。

由此可見,NDK仍然需要完善和發(fā)展,相信未來隨著NDK的發(fā)展,NDK可以做得更多更好。

中介軟件

操作系統(tǒng)與應(yīng)用程序的溝通橋梁,應(yīng)用分為兩層:函數(shù)層(Library)和虛擬機(jī)(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari 瀏覽器背后的引擎。Surface flinger 是就2D或3D的內(nèi)容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自制的Bionic Libc。

Android采用OpenCORE作為基礎(chǔ)多媒體框架。OpenCORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。

Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與Linux Cairo功能相當(dāng),但相較于Linux Cairo, skia 功能還只是雛形的。2005年Skia公司被Google收購,2007年初,Skia GL源碼被公開,目前Skia 也是Google Chrome 的圖形引擎。

Android的多媒體數(shù)據(jù)庫采用SQLite數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫又分為共用數(shù)據(jù)庫及私用數(shù)據(jù)庫。用戶可通過ContentResolver類(Column)取得共用數(shù)據(jù)庫。

Android的中間層多以Java 實現(xiàn),并且采用特殊的Dalvik 虛擬機(jī)(Dalvik Virtual Machine)。Dalvik虛擬機(jī)是一種“暫存器型態(tài)”(Register Based)的Java虛擬機(jī),變量皆存放于暫存器中,虛擬機(jī)的指令相對減少。

Dalvik虛擬機(jī)可以有多個實例(instance), 每個Android應(yīng)用程序都用一個自屬的Dalvik虛擬機(jī)來運行,讓系統(tǒng)在運行程序時可達(dá)到優(yōu)化。Dalvik 虛擬機(jī)并非運行Java字節(jié)碼(Bytecode),而是運行一種稱為.dex格式的文件。

硬件抽像層

Android 的 HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅(qū)動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達(dá)成 kernel independent 的概念,也讓 Android framework 的開發(fā)能在不考量驅(qū)動程序?qū)崿F(xiàn)的前提下進(jìn)行發(fā)展。

HAL stub 是一種代理人(proxy)的概念,stub 是以 *.so 檔的形式存在。Stub 向 HAL“提供”操作函數(shù)(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 這些操作函數(shù)。HAL 里包含了許多的 stub(代理人)。Runtime 只要說明“類型”,即 module ID,就可以取得操作函數(shù)。

系統(tǒng)內(nèi)核

Android 是運行于 Linux kernel之上,但并不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 為了達(dá)到商業(yè)應(yīng)用,必須移除被GNU GPL授權(quán)證所約束的部份,例如Android將驅(qū)動程序移到 userspace,使得Linux driver 與 Linux kernel徹底分開。bionic/libc/kernel/ 并非標(biāo)準(zhǔn)的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所產(chǎn)生的,這樣做是為了保留常數(shù)、數(shù)據(jù)結(jié)構(gòu)與宏。

目前Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Management),程序管理(Process Management),網(wǎng)絡(luò)堆棧(Network Stack),驅(qū)動程序模型(Driver Model)等。下載Android源碼之前,先要安裝其構(gòu)建工具 Repo來初始化源碼。Repo 是 Android 用來輔助Git工作的一個工具。

安全權(quán)限機(jī)制

Android本身是一個權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個應(yīng)用都以唯一的一個系統(tǒng)識別身份運行(Linux用戶ID與群組ID)。系統(tǒng)的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應(yīng)用與應(yīng)用,應(yīng)用與系統(tǒng)隔離開。

系統(tǒng)更多的安全功能通過權(quán)限機(jī)制提供。權(quán)限可以限制某個特定進(jìn)程的特定操作,也可以限制每個URI權(quán)限對特定數(shù)據(jù)段的訪問。

Android安全架構(gòu)的核心設(shè)計思想是,在默認(rèn)設(shè)置下,所有應(yīng)用都沒有權(quán)限對其他應(yīng)用、系統(tǒng)或用戶進(jìn)行較大影響的操作。這其中包括讀寫用戶隱私數(shù)據(jù)(聯(lián)系人或電子郵件),讀寫其他應(yīng)用文件,訪問網(wǎng)絡(luò)或阻止設(shè)備待機(jī)等。

安裝應(yīng)用時,在檢查程序簽名提及的權(quán)限,且經(jīng)過用戶確認(rèn)后,軟件包安裝器會給予應(yīng)用權(quán)限。從用戶角度看,一款A(yù)ndroid應(yīng)用通常會要求如下的權(quán)限:

撥打電話、發(fā)送短信或彩信、修改/刪除SD卡上的內(nèi)容、讀取聯(lián)系人的信息、讀取日程信的息,寫入日程數(shù)據(jù)、讀取電話狀態(tài)或識別碼、精確的(基于GPS)地理位置、模糊的(基于網(wǎng)絡(luò)獲取)地理位置、創(chuàng)建藍(lán)牙連接、對互聯(lián)網(wǎng)的完全訪問、查看網(wǎng)絡(luò)狀態(tài),查看WiFi狀態(tài)、避免手機(jī)待機(jī)、修改系統(tǒng)全局設(shè)置、讀取同步設(shè)定、開機(jī)自啟動、重啟其他應(yīng)用、終止運行中的應(yīng)用、設(shè)定偏好應(yīng)用、震動控制、拍攝圖片等。

一款應(yīng)用應(yīng)該根據(jù)自身提供的功能,要求合理的權(quán)限。用戶也可以分析一款應(yīng)用所需權(quán)限,從而簡單判定這款應(yīng)用是否安全。如一款應(yīng)用是不帶廣告的單機(jī)版,也沒有任何附加的內(nèi)容需要下載,那么它要求訪問網(wǎng)絡(luò)的權(quán)限就比較可疑。

轉(zhuǎn)載于:https://www.cnblogs.com/micro-chen/p/4717933.html

總結(jié)

以上是生活随笔為你收集整理的【Xamarin开发 Android 系列 4】 Android 基础知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。