Ⅰ 安卓應用不可預測的錯誤
「無法預測」的錯誤
在內聯生成的機器碼中,並不一定將整個調用鏈上的所有位元組碼都生成了機器碼。比如指帆A.a() 調用 B.b(),B.b() 調用 C.c() 。一種可能的情況是:A.a() 內聯了 B.b(),但對 C.c() 的調用沒有內聯。
這種情況下,在 A.a() 中執行C.c() 的時候會從機器碼跳回虛擬機執行 ,然後就得走類的載入和方法的解析(resolve)的流程:找到 解析緩存(DexCache[]),並根據緩存中的偏移指針,找到這個類,進而找到方法去執行。注意需要兩個值才能找到類,一個是 DexCache 數組,另一個是這個數組中的類 C 的偏移指針(下標)。
這個 DexCache 數組是與dex 文件相關聯的,不同的 dex 文件 DexCache 數組也不一樣。在編譯生成的機器碼中,使用的是一個函數指針直接跳到了 native 版本的 FindClass,得到的結果是保證正確的。也就是信慧說在運行插件版時能正確獲取到插件 dex 的 DexCache[]。
然而 DexCache 數組中的偏移量卻是「寫死」在機器碼中的立即數,也就是dex2oat 編譯後直接寫在指令唯坦雹中的。用舊 DexCache 數組中的偏移量,在新 DexCache 數組中查找 Class,最後得到的不一定是正確的 Class。在這個 native 的層次上,不會有 ClassCastException 拋出來阻止進一步發生錯誤,只會默默執行直到出現問題。比如調用方法對應不上導致崩潰、static 變數找不到返回 null 等等。
Ⅱ 求問安卓android為什麼能成功
今天我們說說安卓,這個大的三明治,不要瞧不起三明治,這是安卓成功的法寶.
說起手機操作系統,本來十年前還是個陌生的組合詞:黑白屏幕,顯示不了幾行字,還要的哪門子操作系統,裝個DOS都不稱職;但是很快人們發現了手機操作系統的好處:對於廠家批量生產和軟體開發更加容易,便於積累,容易升級,明晰roadmap;對於用戶,可以隨意安裝軟體擴展功能。
於是諾基亞通過收購和控股,最早最早使用了symbian系統,就是我們熟知的s40,S60,至今S60第三版仍然廣為使用;雖有有微軟的ppc,或者叫windows mobile,黑莓blackberry,linux,到現在蘋果iphone,以及安卓系統。
根據統計,android操作系統的手機出貨量已經超越iphone,根據IDC預測,隨著安卓的成長和symbian系統的衰落,很有可能在3年左右的時間,android將成為市場佔有率最大的操作系統,這還不包括眾多的非手機的手持設備(諸如我們的眾多山寨平板)。目前急於iphone的軟體數量大約20-30萬左右,android接近15萬左右,雖然和windows的上億軟體無法相提並論,但是要知道這可是手機。
實際上每一種操作系統的都有它的優勢和劣勢,而android利用了所有操作系統的優勢,這就是它成功的原因。
Symbian系統nb在哪裡?nb在多年積累的用戶體驗,選項菜單無不恰到好處,這就是它的精華;問題在哪裡?不夠吸引眼球,什麼多點觸摸,什麼觸摸屏等等都停留在初級階段,nokia的核心用戶觀需要改變一點了。還有一點,最早的symbian是收費的,有授權費,並且很重要一點,這個操作系統為nokia一家所控制,而nokia卻是一家手機廠商!
安卓來了,它看中了縫隙:首先,google是一家互聯網公司,雖然弄出個G1手機,但是顯然那對google來說那是不務正業,它弄出來的手機平台,哪個手機廠商採用都沒有受制於人的威脅;同時android是免費的,隨意開發。
這個時候我們要技術分析一下android系統,這並非google自己創造的,實際上操作系統開發是需要深厚的技術積累的,google不會傻到真和微軟比操作系統開發;他聰明的選擇了linux,什麼linux,你一定會問,這和android有什麼關系?關系大了,android實際上就是包裹後的linux,android採用的是linux的內核 ,一下子就解決了操作系統開發問題有開源軟體的支持,桌面上雖然無法和微軟競爭,但是手機上大放異彩。
google採用linux內核還有別的原因,一個手機操作系統能否nb,在於後期又沒有軟體支持:有沒有人願意開發;容不容易開發;有無利益可圖。Nokia就是忽視了symbian系統的後期軟體開發問題,所以現在正在盡力彌補。你看,採用linux,軟體開發不是問題了,全世界開源軟體聯盟那是多如牛毛。
但是立刻就有人反駁,既然linux這么有優勢,怎麼沒見linux系統成功,摩托羅拉,三星都開發過linux的手機,都沒有成功阿。
Ⅲ Android 4.1.1系統和Android 4.0系統有什麼不同改進了什麼
1. Android 4.1提升了幀速率,這不僅使UI顯得更加流暢,還能夠使觸摸屏顯得更加靈敏。此外,還有助於延長手機電池續航時間。
2.Android 4.1還改進了CPU利用率。
3. Android 4.0「冰激凌三明治」與Android 4.1「果凍豆」的對比。後者顯得更加平滑和連續,用戶體驗更好。更重要的是,這種改善會體現在所有Android應用中。博克將「果凍豆」稱為Android有史以來最快、最流暢的體驗。
4. Android 4.1的一些新功能:桌面小組件(widget)更加好用了。當你移動它到屏幕的其他區域時,各個圖標的位置將自動調整,為小組件騰出空間。此外,小組件的大小也可以很方便地進行調整。
5.Android 4.1的輸入法更加智能和精確,谷歌將其稱為「預測鍵盤(Predictive Keyboard)」。這個功能大約是我們經常使用的「聯想輸入」吧。
6. Android 4.1的語音輸入(Voice Typing)將支持離線模式。用戶可以在沒有網路連接的環境中使用這一功能。當然,它將率先支持英語,其他語種稍後跟進。
7、4.1增添了手勢模式,方便盲人使用。此外還改進了拍照功能。Android Beam功能。兩部手機可以藉助NFC(近場通訊)配對,只需輕觸即可分享照片等內容。 知中心得到了改進0:55 通知中心得到了改進,能夠展示更多信息。例如,如果你錯過了某人的電話,無需打開「電話」功能,就可以直接在通知中心中回電話或簡訊。
8.Android Beam功能。兩部手機可以藉助NFC(近場通訊)配對,只需輕觸即可分享照片等內容。 通知中心得到了改進,能夠展示更多信息。例如,如果你錯過了某人的電話,無需打開「電話」功能,就可以直接在通知中心中回電話或簡訊。
9.通知中心將可以直接顯示圖片,並整合了谷歌的「+1」按鈕和分享功能。
10. Android 4.1的搜索功能大大增強,整合了谷歌最新推出的「知識圖譜(Knowledge Graph)」。例如,搜索「星巴克」,你得到的不是一堆鏈接,而是最近的星巴克在哪裡,以及如何過去的路線圖。,
11,語音搜索也得到了增強,有望與蘋果Siri一爭高下。例如,對手機說:「機器人的定義是什麼?」Android 4.1將給出一張關於機器人的「知識圖譜」。
12.新功能Google Now:Android 4.1能夠根據你的手機的各種數據,包括日程、瀏覽記錄、搜索習慣等,為你提供更加個性化的信息。例如,問手機「今天上午應該做什麼?」手機就會根據你的日程安排等信息,為你提供一份活動列表。
Ⅳ 什麼軟體可以測安卓電池有多少壽命
1、AccuBattery
這是一款Android平台下的電池工具,主要用來對電池各方面的情況做一個精準的檢測,包括電池容量、損耗程度、充電速度、電池使用情況等等內容。
2、點心省電
點心省電是網路推出的一款基於Android平台的電量管理軟體 ,其深度省電功能就是利用極光引擎(DU Aurora Engine)強行停止應用運行,停止後該應用的所有服務都將關閉,從而達到深度省電的效果。
3、金山電池醫生
金山電池醫生是金山網路出品的一款電池維護軟體,是電池保養和電量管理軟體,有iPhone,iPad和Android 三個版本。能通過指導用戶科學充電來養護電池, 預測可用電量,還提供各種電量管理模式,延長手機續航時間,延長電池壽命一倍以上。
4、360省電王
360省電王又稱360省電王是由奇虎360最新推出的一款專業電池管理應用,該應用將終身免費。讓電量更持久,延長電池壽命,快捷開關操作。