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

Android應用程序快速啟動的8大秘技

移動開發 Android
在基本主流的智能手機的軟件平臺上,Android的執行速度是最快的。本文將向大家介紹Android應用開發快速啟動的8大秘技,從八方面進行分析,告訴大家Android效率為什么這么的高!

51CTO編者按:我們給大家介紹過51CTO的獨家專題:Android開發應用詳解。本文將向大家介紹Android應用開發快速啟動的8大秘技,告訴大家Android效率為什么這么的高!

 Android系統框架和上層應用是類Java(不是正統的sun Java)開發的,實現了自己的Java虛擬機Dalvik,既然用Java虛擬機和Java開發,一般都會認為效率低下。其實不然,在基本主流的智能手機的軟件平臺上,Android的執行速度是最快的。 

那么Android效率為什么這么的高呢?特別是一個應用程序的啟動時間很短,本文主要從以下八個方面進行分析: 

資源文件的優化讀取

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

Android是怎么做的呢? 

Android在編譯的時候就把xml文件進行了優化,Android應用程序在解析時變得非常的高效。我們看到APK文件解壓后會有個優化過的資源文件。 

安裝時進行優化dex文件 

Android的應用程序都打包成一個APK文件,實際上就是一個zip文件。系統第一次起來或應用程序第一次安裝時,系統就把APK文件解壓了,把可執行文件dex優化成odex文件并放在/data/Dalvik-cache目錄下。優化后的dex文件啟動速度會加快。這解釋了為什么 Android系統第一次啟動是比較慢,以后起來很快了。 

可能有人會問:為什么不在編譯時直接優化呢?第⑤項會回答這個問題。 

制作數據庫 

Android的圖形應用是加載整個sd卡內的所有圖像的,但是為什么很快呢?其實Android提前把數據做成了數據庫,所以不用每次掃描整個這個sd卡,大大加快了啟動速度。 

高效的虛擬機 

Android是基于類Java虛擬機Dalvik,一般的Java虛擬機是基于棧的,而Dalvik是基于寄存器的。實事求是說我對兩者的區別了解不是很深入,不過網上有專門的相關文論進行分析。我的簡單理解是棧的實現方式相對容易,相關數據是在內存中的棧里,而操作寄存器里數據的速度明顯快與內存里的數據處理。 

充分挖掘CPU的性能 

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

優化和裁剪的libc庫 

Libc庫幾乎是所以庫和程序的基礎,但是Android沒有直接利用libc庫,而是自己開發了一個庫:bionic,它實現了libc庫的絕大多數的函數并根據平臺進行了優化,但是有系統很少用并且消耗資源的少數函數是不支持的。它只有幾百k,節省了空間同時也提高了執行效率。實際上體現了 20-80原則,抓住少數重要的適當舍棄不必要的。 

充分利用linux系統特性 

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

同時Android在后臺有個empty process運行,實際上就是運行一個虛擬機,當要啟動一個應用時就直接在其上繼續運行,qtopia也有這個機制。 

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

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

高效的paint機制 

這個特性可能跟啟動關系不大,但是也是Android高效的特性之一。界面變化時大部分實際上不是全屏內容變化的,只是局部變化,Android 會根據變化的內容只是跟新局部的內容,也提高了效率。這個也提醒我們在開發應用程序時,重載paint方法時盡量不要paint全屏內容。 

Phone Club——51CTO移動開發線下技術沙龍

活動日期:1月15日
本期主題:Android應用開發技術進階
地點:北京市海淀區中關村南大街30號東聯藝術工社
演講講師:范懷宇(網易)

【編輯推薦】

  1. 多圖詳解Android 2.3 SDK安裝教程
  2. Android 2.3 SDK開發文檔同步更新 附下載
  3. Android平臺SQLite快速入門實踐
  4. Android 2.3六大革新 劍鋒直指iOS 4.2
  5. Android 2.3正式發布 11大特性全新改進

 

責任編輯:佚名 來源: eoeandroid
相關推薦

2014-05-27 15:04:15

AndroidActivitysingleTask

2009-11-18 09:25:02

linux應用程序

2013-01-21 13:39:06

IBMdW

2020-09-04 14:56:23

應用程序疫情

2022-08-03 08:21:16

FindexLinux應用程序

2012-12-25 09:52:22

Windows 8

2010-12-30 10:10:52

2010年十大應用程序Android

2020-01-02 09:38:28

程序員軟件數據庫

2014-06-19 14:30:28

Android應用程序進程啟動

2014-06-19 14:54:11

Android應用程序進程啟動

2014-06-19 14:59:40

Android應用程序進程啟動

2014-06-20 11:20:37

Android應用程序進程啟動

2010-08-23 13:55:25

Android

2020-08-03 10:20:03

應用程序鎖數據安全Android

2021-11-24 09:00:00

云計算開發應用

2010-08-10 15:26:38

Flex應用程序

2011-07-07 17:23:31

iOS

2012-04-25 22:56:10

Android

2014-06-19 14:25:04

Android應用程序進程啟動

2014-06-20 11:05:56

Android應用程序進程啟動
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区免费视频 | 亚洲一区二区中文字幕 | 亚洲精品在线观看网站 | 亚洲码欧美码一区二区三区 | 日韩中文字幕一区二区 | 欧美一级二级在线观看 | 国产在线麻豆精品入口 | 国产一级视频 | 91在线视频网址 | 免费激情| 一区二区三区视频在线观看 | 日本三级播放 | 91av入口| 日韩欧美在线观看视频 | 超碰人人人人 | 亚洲免费网 | 免费在线观看黄网站 | 亚洲欧美激情国产综合久久久 | 激情黄色在线观看 | 一本一道久久a久久精品综合蜜臀 | 人人操日日干 | 欧美电影免费观看高清 | 日本网站免费在线观看 | 成年免费大片黄在线观看一级 | 丁香综合| 国产精品精品久久久 | 日本特黄a级高清免费大片 国产精品久久性 | 亚洲国产专区 | 国产精品久久免费观看 | 妞干网福利视频 | 特黄特色大片免费视频观看 | 福利视频三区 | 久久久久亚洲精品 | 日韩精品一区二区三区 | 亚洲在线视频 | 国产一在线 | 99精品一区二区三区 | 久久综合一区 | 免费在线精品视频 | 日韩精品一区二区三区老鸭窝 | 欧美一区二|