就是Android 4.2版本。
我們提供的服務有:成都做網站、成都網站制作、成都外貿網站建設、微信公眾號開發(fā)、網站優(yōu)化、網站認證、永嘉ssl等。為上千余家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的永嘉網站制作公司
Android 4.2是谷歌新一代移動操作系統(tǒng),谷歌原定于10月30日通過其官方博客發(fā)布了全新的Android 4.2系統(tǒng),同時還發(fā)布了基于這種操作系統(tǒng)的Nexus 4智能手機和Nexus 10平板電腦。
Android 4.2沿用了4.1版“果凍豆”(Jelly Bean)這一名稱,最新操作系統(tǒng)與Android 4.1相似性很高,但仍在細節(jié)之后做了一些改進與升級,比較重要的包括:Photo Sphere全景拍照;鍵盤手勢輸入;Miracast無線顯示共享;手勢放大縮小屏幕,以及為盲人用戶設計的語音輸出和手勢模式導航功能等;
Android 4.2操作系統(tǒng)的亮點是支持行業(yè)標準的WiFi顯示共享工具Miracast,這個工具允許Nexus 4向電視流傳輸音頻和視頻。
時光匆匆,時間轉瞬即逝, 科技 發(fā)展的步伐,遠遠超出我們普通人的預計,從當初的通信手機到如今的智能手機,每年手機的發(fā)展都在快速的變化,從當初還可拆卸的電池,到現(xiàn)如今的一體機。從哪個拍張照片都模糊不清,到現(xiàn)如今的光學變焦。
手機的發(fā)展十分迅速,伴隨著的也是系統(tǒng)的快速更新,2007年11月5日,谷歌公司向外界展示了一款名為Android的操作系統(tǒng)。這款系統(tǒng)也伴隨著人們,度過了13個年頭。它給我們的生活帶來了太多的變化
今天小K帶大家看看,這十三年來,Android都發(fā)布了哪些版本,又經歷了哪些變化
Android的發(fā)展
2003年10月,大洋彼岸的美國,一個名叫安迪·魯賓的美國人,帶領他的團隊打造了Android手機操作系統(tǒng),安迪·魯賓本人也被譽為“Android之父”。
2005年這個團隊,被全球最大的搜索引擎谷歌公司收購,Android之父安迪·魯賓成為Google公司工程部副總裁,繼續(xù)負責Android項目的開發(fā)。
2007年11月5日,谷歌公司向外界展示歷經多年研發(fā)后的Android 阿童木,即Android的測試版本,并發(fā)布了Android 阿童木的源代碼。
2008年9月,谷歌正式發(fā)布Android 1.0
2009年4月30日,谷歌正式推出了Android 1.5手機,該安卓版本被命名為Cupcake,從這里開始,安卓才算真正開始走進大眾的視野。該版本開始支持錄制和播放視頻,并支持上傳到谷歌Youtube;支持藍牙耳機,改善配對性能;最新的采用WebKit技術的瀏覽器,支持復制/貼上和頁面中搜索;GPS性能大大提高;提供屏幕上的虛擬鍵盤;主屏幕增加音樂播放器和相框widgets;應用程序可以自動隨著手機旋轉;短信、Gmail、日歷,瀏覽器的用戶接口大幅改進,如Gmail可以批量刪除郵件;相機啟動速度加快,拍攝圖片可以直接上傳到Picasa;來電照片顯示。
同年9月15日、10月26日,安卓先后更新1.6版本、2.1版本,開始支持更多的屏幕分辨率,并先后改善了用戶使用界面,出現(xiàn)動態(tài)壁紙、支持vpn、可以查看應用耗電、支持相機的閃光燈、數(shù)碼變焦等
2010年5月20日,這個象征著愛情的節(jié)日,谷歌發(fā)布了Android 2.2 Froyo,開始支持3g網絡共享、Flash、App2sd功能、軟件商店、應用API接口的開發(fā)。
同年12月7日Android 2.3 Gingerbread發(fā)布,增加回收站功能、支持VP8和WebM視頻格式、支持前置攝像頭、SIP/VOIP和NFC,一鍵文字選擇和復制/粘貼、改進的電源管理系統(tǒng);新的應用管理方式等。
2011年2月3日 Android 3.0 Honeycomb發(fā)布,針對平板做出優(yōu)化、增強網頁瀏覽功能
同年5月11日 Android 3.1發(fā)布,全面支持Google Maps ,將Android手機系統(tǒng)跟平板系統(tǒng)再次合并、支持USB輸入設備、支持Google TV.可以支持XBOX 360無線手柄
同年7月13 Android 3.2發(fā)布,本次更新開始支持SD卡,支持7英寸平板和高通處理器以及桌面小部件自由縮放功能
同年10月19日 Android 4.0 Ice Cream Sandwich發(fā)布,此次更新開始支持截圖功能、圖片編輯功能,可以加濾鏡、加相框、進行360度全景拍攝,新增流量管理工具等
2012年6月28日 Android 4.1 Jelly Bean發(fā)布,增強通知欄、搜索優(yōu)化、桌面插件自動調整大小、加強無障礙操作、語言和輸入法擴展等
同年10月30日 Android 4.2 發(fā)布,改進鎖屏功能、可用兩根手指進行旋轉和縮放顯示、專為盲人用戶設計的語音輸出和手勢模式導航功能等
2013年7月25日 Android 4.3發(fā)布
同年11月01日 Android 4.4 KitKat發(fā)布,此次更新是谷歌為了整合自家服務,力求防止安卓系統(tǒng)繼續(xù)碎片化、分散化進行的一次更新。
2014年6月26日 Android 5.0 Lollipop發(fā)布,這次更新并未有太多的變化,主要更新了桌面功能
同年Android 5.1發(fā)布,支持多張SIM卡
2015年9月30日 Android 6.0 Marshmallow發(fā)布,在對軟件體驗與運行性能上進行了大幅度的優(yōu)化。延長了手機的續(xù)航能力
2016年8月22日 Android 7.0 Nougat 發(fā)布,提供新功能以提升性能、生產效率和安全性。進一步優(yōu)化續(xù)航能力
同年Android 7.1發(fā)布,本次更新為用戶和開發(fā)人員引入了各種新功能
2017年8月22日Android 8.0 Oreo發(fā)布,本次更新更多的還是支持開發(fā)人員進行更新
同年Android 8.1 發(fā)布,優(yōu)化了內存、定位服務等
2018年5月9日Android 9.0 Pie 發(fā)布,利用新的人工智能技術,讓手機可以為用戶提供更多幫助。并且會根據(jù)用戶習慣進行自我調節(jié)
2019年Android 10 發(fā)布,提供黑夜模式,優(yōu)化生物識別技術、優(yōu)化應用、支持可折疊設備和 5G 網絡
而隨后的Android 11 預計將在今年11月3號發(fā)布
安卓手機歷經13年,從最初的只能支持基本的通信和拍照功能,跟隨著時代 科技 的變化,增添各種新的 科技 ,讓手機成為了我們生活中必不可少的一件電子產品,時至今日我們手上的手機以及能夠支持面部指紋支付解鎖、更加強大的拍照功能,到可以在手機上游玩各種 游戲 和進行各種 娛樂 ,可以在手機上觀看視頻等
這些變化從方方面面,改變了我們的生活,讓我們在這十幾年的時間進入到一個全新的智能時代,也許你感受不到什么變化,也許你覺得自己的生活沒有什么改變,那不妨與十幾年前時代做個對比!
最后小K 在這里 求關注!求關注!求關注!
是Android sdk的版本,對應的好像是Android手機的4.幾的系統(tǒng),一般是開發(fā)應用的時候向下或是向上兼容的系統(tǒng)版本,因為有些Android智能手機版本過低,不支持一些應用;因此做出的限制。
解決方法:
1.打開Eclipse,關閉提示升級的對話框,點擊Help - Install New Software...
2."Work with"選擇“Android Developer Tools Update Site..."的那一項,勾選出現(xiàn)的Develop Tools和NDK Plugins
3.最關鍵的一步:取消下面的“Contact all update sites... ",然后next
4.出現(xiàn)更新項,依次選擇并同意,完成更新
5.更新完畢,重啟Eclipse,項目編譯通過
廣播(Broadcast)機制用于進程/線程間通信,廣播分為廣播發(fā)送和廣播接收兩個過程,其中廣播接收者BroadcastReceiver便是Android四大組件之一。
BroadcastReceiver分為兩類:
從廣播發(fā)送方式可分為三類:
廣播在系統(tǒng)中以BroadcastRecord對象來記錄, 該對象有幾個時間相關的成員變量.
廣播注冊,對于應用開發(fā)來說,往往是在Activity/Service中調用 registerReceiver() 方法,而Activity或Service都間接繼承于Context抽象類,真正干活是交給ContextImpl類。另外調用getOuterContext()可獲取最外層的調用者Activity或Service。
[ContextImpl.java]
其中broadcastPermission擁有廣播的權限控制,scheduler用于指定接收到廣播時onRecive執(zhí)行線程,當scheduler=null則默認代表在主線程中執(zhí)行,這也是最常見的用法
[ContextImpl.java]
ActivityManagerNative.getDefault()返回的是ActivityManagerProxy對象,簡稱AMP.
該方法中參數(shù)有mMainThread.getApplicationThread()返回的是ApplicationThread,這是Binder的Bn端,用于system_server進程與該進程的通信。
[- LoadedApk.java]
不妨令 以BroadcastReceiver(廣播接收者)為key,LoadedApk.ReceiverDispatcher(分發(fā)者)為value的ArrayMap 記為 A 。此處 mReceivers 是一個以 Context 為key,以 A 為value的ArrayMap。對于ReceiverDispatcher(廣播分發(fā)者),當不存在時則創(chuàng)建一個。
此處mActivityThread便是前面?zhèn)鬟f過來的當前主線程的Handler.
ReceiverDispatcher(廣播分發(fā)者)有一個內部類 InnerReceiver ,該類繼承于 IIntentReceiver.Stub 。顯然,這是一個Binder服務端,廣播分發(fā)者通過rd.getIIntentReceiver()可獲取該Binder服務端對象 InnerReceiver ,用于Binder IPC通信。
[- ActivityManagerNative.java]
這里有兩個Binder服務端對象 caller 和 receiver ,都代表執(zhí)行注冊廣播動作所在的進程. AMP通過Binder驅動將這些信息發(fā)送給system_server進程中的AMS對象,接下來進入AMS.registerReceiver。
[- ActivityManagerService.java]
其中 mRegisteredReceivers 記錄著所有已注冊的廣播,以receiver IBinder為key, ReceiverList為value為HashMap。
在BroadcastQueue中有兩個廣播隊列mParallelBroadcasts,mOrderedBroadcasts,數(shù)據(jù)類型都為ArrayListbroadcastrecord style="box-sizing: border-box;":/broadcastrecord
mLruProcesses數(shù)據(jù)類型為 ArrayListProcessRecord ,而ProcessRecord對象有一個IApplicationThread字段,根據(jù)該字段查找出滿足條件的ProcessRecord對象。
該方法用于匹配發(fā)起的Intent數(shù)據(jù)是否匹配成功,匹配項共有4項action, type, data, category,任何一項匹配不成功都會失敗。
broadcastQueueForIntent(Intent intent)通過判斷intent.getFlags()是否包含F(xiàn)LAG_RECEIVER_FOREGROUND 來決定是前臺或后臺廣播,進而返回相應的廣播隊列mFgBroadcastQueue或者mBgBroadcastQueue。
注冊廣播:
另外,當注冊的是Sticky廣播:
廣播注冊完, 另一個操作便是在廣播發(fā)送過程.
發(fā)送廣播是在Activity或Service中調用 sendBroadcast() 方法,而Activity或Service都間接繼承于Context抽象類,真正干活是交給ContextImpl類。
[ContextImpl.java]
[- ActivityManagerNative.java]
[- ActivityManagerService.java]
broadcastIntent()方法有兩個布爾參數(shù)serialized和sticky來共同決定是普通廣播,有序廣播,還是Sticky廣播,參數(shù)如下:
broadcastIntentLocked方法比較長,這里劃分為8個部分來分別說明。
這個過程最重要的工作是:
BroadcastReceiver還有其他flag,位于Intent.java常量:
主要功能:
這個過主要處于系統(tǒng)相關的10類廣播,這里不就展開講解了.
這個過程主要是將sticky廣播增加到list,并放入mStickyBroadcasts里面。
其他說明:
AMS.collectReceiverComponents :
廣播隊列中有一個成員變量 mParallelBroadcasts ,類型為ArrayListbroadcastrecord style="box-sizing: border-box;",記錄著所有的并行廣播。/broadcastrecord
動態(tài)注冊的registeredReceivers,全部合并都receivers,再統(tǒng)一按串行方式處理。
廣播隊列中有一個成員變量 mOrderedBroadcasts ,類型為ArrayListbroadcastrecord style="box-sizing: border-box;",記錄著所有的有序廣播。/broadcastrecord
發(fā)送廣播過程:
處理方式:
可見不管哪種廣播方式,都是通過broadcastQueueForIntent()來根據(jù)intent的flag來判斷前臺隊列或者后臺隊列,然后再調用對應廣播隊列的scheduleBroadcastsLocked方法來處理廣播;
在發(fā)送廣播過程中會執(zhí)行 scheduleBroadcastsLocked 方法來處理相關的廣播
[- BroadcastQueue.java]
在BroadcastQueue對象創(chuàng)建時,mHandler=new BroadcastHandler(handler.getLooper());那么此處交由mHandler的handleMessage來處理:
由此可見BroadcastHandler采用的是”ActivityManager”線程的Looper
[- BroadcastQueue.java]
此處mService為AMS,整個流程還是比較長的,全程持有AMS鎖,所以廣播效率低的情況下,直接會嚴重影響這個手機的性能與流暢度,這里應該考慮細化同步鎖的粒度。
你好,從安卓代號并不能得出這款手機的品牌。通俗的講,android-22就是android 5.1.x系統(tǒng)版本的手機,在設置--關于里面可以看到系統(tǒng)的版本號。22是指的android的開發(fā)api版本號。