成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android快速啟動(dòng)要點(diǎn)總結(jié)

移動(dòng)開發(fā) Android
是什么優(yōu)秀的特性造就了Android快速啟動(dòng)這一優(yōu)勢(shì)呢?經(jīng)過我們的分析,主要是因?yàn)橘Y源文件的優(yōu)化讀取、 安裝時(shí)進(jìn)行優(yōu)化dex文件、 制作數(shù)據(jù)庫的方便性等等。

Android手機(jī)操作系統(tǒng)的推出,為智能手機(jī)領(lǐng)域增添了不小的生機(jī),而且其開源性幫助不少商家獲得了非常好的發(fā)展機(jī)遇。Android系統(tǒng)框架和上層應(yīng)用是類java(不是正統(tǒng)的sun java)開發(fā)的,實(shí)現(xiàn)了自己的java虛擬機(jī)dalvik,既然用java虛擬機(jī)和java開發(fā),一般都會(huì)認(rèn)為效率低下。其實(shí)不然,在基本主流的智能手機(jī)的軟件平臺(tái)上,Android的執(zhí)行速度是最快的。 #t#

那么Android效率為什么這么的高呢?特別是一個(gè)應(yīng)用程序的啟動(dòng)時(shí)間很短,本文主要從以下個(gè)八方面對(duì)Android快速啟動(dòng)進(jìn)行分析:

1、 資源文件的優(yōu)化讀取。

我們知道Android在UI開發(fā)時(shí)有個(gè)很大的好處是xml文件來描述UI,這樣有個(gè)好處是只要修改UI不用修改代碼就可以修改界面的布局、顯示風(fēng)格和字體大小等。界面定義變得靈活方便。xml配置UI在qtopia運(yùn)用也有但是這么強(qiáng)大并且也不廣泛,因?yàn)閤ml文件有個(gè)不足是解析xml的效率很低。

Android是怎么做的呢?

Android在編譯的時(shí)候就把xml文件進(jìn)行了優(yōu)化,Android應(yīng)用程序在解析時(shí)變得非常的高效,從而實(shí)現(xiàn)了Android快速啟動(dòng)。我們看到apk文件解壓后會(huì)有個(gè)優(yōu)化過的資源文件。

2、 安裝時(shí)進(jìn)行優(yōu)化dex文件

Android的應(yīng)用程序都打包成一個(gè)apk文件,實(shí)際上就是一個(gè)zip文件。系統(tǒng)第一次起來或應(yīng)用程序第一次安裝時(shí),系統(tǒng)就把a(bǔ)pk文件解壓了,把可執(zhí)行文件dex優(yōu)化成odex文件并放在/data/dalvik-cache目錄下。優(yōu)化后的dex文件啟動(dòng)速度會(huì)加快。這解釋了為什么 Android系統(tǒng)第一次啟動(dòng)是比較慢,以后起來很快了。

可能有人會(huì)問:為什么不在編譯時(shí)直接優(yōu)化呢?第⑤項(xiàng)會(huì)回答這個(gè)問題。

3、 制作數(shù)據(jù)庫

Android的圖形應(yīng)用是加載整個(gè)sd卡內(nèi)的所有圖像的,但是為什么很快呢?其實(shí)Android提前把數(shù)據(jù)做成了數(shù)據(jù)庫,所以不用每次掃描整個(gè)這個(gè)sd卡,大大加快了啟動(dòng)速度。

4、 高效的虛擬機(jī)實(shí)現(xiàn)Android快速啟動(dòng)

Android是基于類java虛擬機(jī)dalvik,一般的java虛擬機(jī)是基于棧的,而dalvik是基于寄存器的。實(shí)事求是說我對(duì)兩者的區(qū)別了解不是很深入,不過網(wǎng)上有專門的相關(guān)文論進(jìn)行分析。我的簡單理解是棧的實(shí)現(xiàn)方式相對(duì)容易,相關(guān)數(shù)據(jù)是在內(nèi)存中的棧里,而操作寄存器里數(shù)據(jù)的速度明顯快與內(nèi)存里的數(shù)據(jù)處理。

5、 充分挖掘CPU的性能

Android剛出來的時(shí)候雖然支持arm cpu,實(shí)際上只支持armv5te的指令集的,因?yàn)锳ndroid系統(tǒng)專門為armv5te 進(jìn)行了優(yōu)化,充分利用armv5te的執(zhí)行流水線來提高執(zhí)行的效率,這也是在500M的三星2440運(yùn)行效果不是很好,而在200M的omap cpu上運(yùn)行比較流暢的原因了,所以在最新的代碼中有專門針對(duì)x86和armv4的優(yōu)化部分。

6、 優(yōu)化和裁剪的libc庫

Libc庫幾乎是所以庫和程序的基礎(chǔ),但是Android沒有直接利用libc庫,而是自己開發(fā)了一個(gè)庫:bionic,它實(shí)現(xiàn)了libc庫的絕大多數(shù)的函數(shù)并根據(jù)平臺(tái)進(jìn)行了優(yōu)化,但是有系統(tǒng)很少用并且消耗資源的少數(shù)函數(shù)是不支持的。它只有幾百k,節(jié)省了空間同時(shí)也提高了執(zhí)行效率。實(shí)際上體現(xiàn)了 20-80原則,抓住少數(shù)重要的適當(dāng)舍棄不必要的。

7、 充分利用linux系統(tǒng)特性

分析過linux內(nèi)核的朋友知道,linux fork一個(gè)新的進(jìn)程是非常高效的,利用了COW機(jī)制。Android是每個(gè)進(jìn)程是個(gè)獨(dú)立的虛擬機(jī)(聽說這么設(shè)計(jì)是為安全考慮,某個(gè)時(shí)候進(jìn)程崩潰了不會(huì)影響這個(gè)系統(tǒng)和其他進(jìn)程。)Android里每個(gè)進(jìn)程都是基于虛擬機(jī)的,并且也要加載基本的庫,實(shí)際上這些都是共享。所以Android啟動(dòng)一個(gè)新的程序?qū)嶋H上并不消耗很多的內(nèi)存和cpu資源。

同時(shí)Android在后臺(tái)有個(gè)empty process運(yùn)行,實(shí)際上就是運(yùn)行一個(gè)虛擬機(jī),當(dāng)要啟動(dòng)一個(gè)應(yīng)用時(shí)就直接在其上繼續(xù)運(yùn)行,qtopia也有這個(gè)機(jī)制。

Android系統(tǒng)在開機(jī)流程中:啟動(dòng)虛擬機(jī)—》啟動(dòng)system server –》啟動(dòng)launcher。當(dāng)初分析代碼時(shí)疑惑為什么不直接啟動(dòng)system server?(qtopia就是直接啟動(dòng)server),實(shí)際上也利用了linux的這個(gè)特性。

這個(gè)特性說的比較簡略,不過要真的把他解釋清楚可能需要很大的篇幅。

8、 高效的paint機(jī)制

這個(gè)特性可能跟Android快速啟動(dòng)關(guān)系不大,但是也是Android高效的特性之一。界面變化時(shí)大部分實(shí)際上不是全屏內(nèi)容變化的,只是局部變化,Android 會(huì)根據(jù)變化的內(nèi)容只是跟新局部的內(nèi)容,也提高了效率。這個(gè)也提醒我們?cè)陂_發(fā)應(yīng)用程序時(shí),重載paint方法時(shí)盡量不要paint全屏內(nèi)容。

責(zé)任編輯:曹凱 來源: CSDN
相關(guān)推薦

2010-01-26 13:28:11

Android開發(fā)要點(diǎn)

2009-10-28 17:04:20

linux快速啟動(dòng)

2010-06-30 09:51:55

UML建模技術(shù)

2009-02-19 11:29:12

UML建模要點(diǎn)總結(jié)

2009-04-29 10:46:34

UML建模總結(jié)

2010-06-30 18:09:22

UML建模

2013-09-04 14:25:30

webkitwebApp開發(fā)

2010-06-17 15:54:24

UML總結(jié)

2011-04-19 17:36:12

C++

2011-04-19 17:44:02

C++

2010-02-05 15:30:54

C++多線程測(cè)試

2010-07-06 15:50:12

TCP和UDP協(xié)議

2010-07-09 14:05:56

UML建模

2010-08-17 11:02:45

DIV CSS實(shí)例教程

2011-03-10 15:47:50

網(wǎng)絡(luò)

2011-03-10 15:59:19

網(wǎng)絡(luò)

2018-07-13 15:45:16

GDPR數(shù)據(jù)泄露通用數(shù)據(jù)保護(hù)條例

2010-07-07 11:30:16

UML十種圖

2009-11-10 16:37:48

VB.NET ANY

2010-12-13 11:40:17

Android應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 9999国产精品欧美久久久久久 | 中文字幕在线观看第一页 | 91视频导航| 妹子干综合 | 国产一级视频在线 | 农村黄性色生活片 | 久久99精品久久久久子伦 | av中文在线 | 99精品久久久久久中文字幕 | 国产在线一区二区三区 | 美女福利视频 | 国产精品九九视频 | 久草视频在线播放 | 亚洲成人一二三 | 国产极品91 | 亚洲黄色一区二区三区 | 亚洲精品免费视频 | 99久久婷婷国产综合精品电影 | 久久久免费毛片 | 国产免费拔擦拔擦8x高清 | 国产精品不卡一区 | 国产免费xxx | 九九久久这里只有精品 | 国产丝袜一区二区三区免费视频 | 久久成人精品 | 夜夜骑首页 | 91视频官网 | 国产精品污污视频 | 午夜成人在线视频 | 毛片99| 久久久久久久av | 亚洲免费久久久 | 看片一区| 欧美成年网站 | 欧美三级电影在线播放 | 99re国产视频 | 少妇无套高潮一二三区 | 午夜视频精品 | 国产在线精品免费 | 成人一区二区三区视频 | 最新中文字幕在线 |