導航:首頁 > 操作系統 > android內核優化

android內核優化

發布時間:2022-11-26 20:07:42

android 內核分析 bindler

上一次說了android的啟動原理,這次說下android的進程間的通信。
linux 本身是提供了通信機制的。大概有7種左右。然後但是為什麼android不用。反而要自己搞一套。主要分析到2個方面: 安全性 和性能。因為前期的移動手機性能不高。還有就是繞開Linux內核的開源限制。
總結就是----避免內核空間到數據接受端的直接的數據拷貝;數據接受端接收數據的時候,由於數據大小不確定,要麼分配一個很大的空間裝數據,要麼動態擴容;兩種方式都有問題;Binder使用mmap直接把接受端的內存映射到內存空間,避免了數據的直接拷貝;另外通過data_buffer等方式讓數據僅包含定長的消息頭,解決了接受端內存分配的問題.
android內部的進程間的通信都是通過binlder 來實現的。這個是很重要的一點。
我們面試問道的 aild Content Provider 調用撥打電話 Intent跳轉 其底層都是調用的bindler機制.
關於binlder的運行原理 我只寫一個大概。
在其底層的Linux中 /etc/bindler/ 有這個c 文件 就是binlder 的程序文件了。其內部是採用的引用計數器來為何對象。要知道 我們的bindler是支持多進程。如何一個service端要對應多個客戶端 也就是說要實現多對多。在看內部源碼的時候我發現其內部是用2個紅黑樹來維持 一個service 對專門提供一個客戶端調用。如果還有其他的客戶端調用就在生成一個servicebindler 對象來提供調用 然後根據內存管理的引用計數器來回收掉不需要的servicebindler對象。
如果你想深究 我推薦這個 http://0xcc0xcd.com/p/index.php

② 安卓手機如何優化設置

一直以來安卓手機給人的感覺都是各種卡頓,尤其是開的程序比較多以後,和iPhone比較起來流暢度上會有不小的差距。實際上IPhone手機只是系統優化的很出色,對於安卓手機我們只要優化得當,也能有很流暢的用戶體驗。本文主要介紹的是從安卓系統優化、第三方軟體優化以及設置優化幾方面結合來改善提升安卓手機流暢度,下面一起來看看安卓手機用什麼優化吧。

刷機重啟摳電池

刷機是Android用戶的一大樂趣,部分用戶刷機是為了得到更好的易用性,比如小米的MIUI ROM,非常符合中國人的使用習慣,也有著足夠豐富的個性化設定,是圖省事的朋友刷機的好選擇,不過對於追求高性能的朋友來說,MIUI的優化還有很大提升空間,人們紛紛選擇了對於ROM優化更加出色的CyanogenMod作為刷機的第一選擇。

CyanogenMod系列目前主打的ROM有CM 7.2和CM 9兩個,CM 7.2基於Android 2.3.7,而CM 9則基於Android 4.0.4,其中CM 7.2已經基本成熟,完美支持的機型很多,是大部分機友刷機的第一選擇,CM 9官方的ROM支持機型並不多,民間高手也都進行了各個機型的移植,官方支持的機型兼容性相當不錯,而移植情況並不樂觀。

CM系列ROM忠實於AOSP,在底層驅動方面做了很多努力,刷入之後就會感覺手機流暢了許多,同時也支持了更多的美化和手機自定義能力,比如我們可以對手機的震動回饋做細致的調整,包括按下震動的強度,抬起震動的強度等,讓手機虛擬按鍵給我們更為真實的回饋,在CM ROM中,類似的設定非常多。

目前大部分的ROM都是使用CM進行定製的,還有一部分是對官方原版ROM進行修改,僅有少部分的ROM是修改的AOSP的源碼,這些ROM指向都是谷歌Nexus系列的機型,比如GALAXY Nexus和Nexus S上的Codename和AOKP,就針對源碼做了很多修改,讓手機變得更流暢。

刷內核 效果好

僅僅刷手機的ROM是不夠的,雖然多了很多自定義的功能,流暢度已經高於官方的ROM,但依舊有很大提升的空間,這時候我們就需要通過刷內核來進一步優化,刷內核所能帶來的提升是相當明顯的,但是對於刷內核大家還是要謹慎。

刷內核相比刷ROM,是一個很小的'工程,你的手機不必要Wipe,也就是說不用刪除手機內部的數據,刷一下也就幾分鍾的功夫,所以刷內核的時候,大家完全可以多下幾個內核,逐個進行測試,看看哪個內核更適合自己,就保留哪個內核。同時刷內核時我們要注意,內核需對應自己的手機版本,對應自己所刷的ROM,否則會造成手機無法啟動的現象,如果遇到無法啟動的現象,再刷其他可用內核就可以恢復。

大家會問了,說了這么半天,刷內核到底都有什麼作用呢?首先就是超頻,大部分內核會默認提供降壓超頻,並擁有多種超頻策略,來保證超頻的情況下更省電。其次,還提供更多調整,比如內存虛擬機的大小,顏色管理等等,甚至一個內核可以包括一些新的Linux的補丁,比如最新的Linux 3.3所集成的CPU頻率補丁等等。

事實上,一般的第三方ROM已經修改了手機的內核,達到了更流暢的目的,但ROM的製作速度遠遠比不上內核的調整速度,有時候一個ROM適用的內核在一天之內可能多次更新,所以我們可以嘗試不同的新內核,看看他們的超頻是不是能給我們帶來性能上質的提升,是不是能更省電,是不是能通過顏色調整讓我們看到更棒的畫面等等。

精簡內置應用

我相信Android用戶通過不斷的更換ROM和刷內核已經在流暢度上有了質的飛躍了,如果這時候你的手機已經比iPhone更流暢、更省電,那麼我們就可以收手了,如果你還不滿意,我們還有其他的路可選,精簡內置應用,就是一個可以大幅度提升流暢度的方法。像Google的服務就是大部分人精簡的對象。 Android系統和iOS與Windows Phone不同,這個系統擁有真正的後台運行能力,雖然iOS在推送方面做得很好,彌補了後台方面的不足,但是仍然無法與Android的真後台相比,但是由於Android的程序優先順序並不像iOS和Windows Phone那樣,為了流暢讓當前界面擁有最高優先順序,所以我們就要把Android手機後台不必要的進程關掉,以獲得最佳的性能。

那麼精簡內部應用就是很好的選擇,因為在我們使用過程中,有許多Android內部應用程序是不必要的,而這些程序會在我們不用的時候悄悄的後台打開,對我們的使用造成影響。在精簡時,我們需要用到root文件管理器,同時需要保證手機已經開啟root許可權。進入system/app就可以進行精簡了,我們需要把root管理器的當前許可權設置成讀寫,並且修改需要刪除的軟體許可權,打開軟體執行操作的許可權,就可以對刪除內置軟體了,在精簡前,大家需要對軟體進行備份,或者備份整個ROM,如果你精簡掉系統程序,可能會造成無法開機的情況,重刷ROM可以解決,所以大家最好找到該機型、該ROM的精簡列表,以避免重復勞動。

其他優化

經過以上多方面的優化,我相信大家都已經得到了一個較為干凈、運行流暢的Android了,不過在很多程序中,我們還是會遇到卡頓的情況,對於一個極端追求流暢度的玩家來說,這樣的情況是絕對不允許發生的,因為我們還有進一步優化的空間。

刷後設置

常見設置就忽略了,下面是冷門但很有用的設置。設置完記得重啟手機,速度飛快。

CM設置--顯示設置--所有勾去掉

CM設置--界面--越界設置--越界效果--None

越界程度--Extra Light

CM設置--性能--壓縮緩存--禁止

CM設置--性能--虛擬內存--32m

刷機後的優化設置:

1、設置--顯示--亮度--自動調節(關閉),自動旋轉屏幕(關閉),動畫(不顯示窗口動畫)

2、位置和安全設置--使用GPS衛星(關閉);

3、應用程序設置--未知來源(√)

4、賬戶與同步設置--背景數據(關閉)

5、日期和時間設置--選擇時區--GMT+08:00,中國標准時間

6、CM設置--應用程序--允許移動應用程序(√)

顯示--屏幕關閉動畫(關閉)

輸入--振動反饋微調--振動反饋(關閉)

界面--狀態欄調整--電量百分比(√)

越界效果--None

界面 - 通知欄電源控制項--控制按鈕--切換GPS(√),切換Wifi(√),切換亮度(√),切換聲音(√),切換移動數據(√),切換藍牙(√),切換飛行模式(√)

(感謝weiweiming的總結)

「設置」——「關於手機」——「自動系統更新」(去掉那個「勾」)

關閉相機拍照聲音

用R.E管理器進/system/media/audio/ui目錄,把camera_click.ogg這個文件改名或者直接刪除

2、設置優化

開啟性能模式

很多手機默認是標准模式甚至是省電模式,這對性能是有不少影響的,因此建議不是有特別需求還是調至性能模式(位置:系統設置,因不同手機而異)。

#FormatImgID_0#

關閉動畫特效

Android 4.1增加了動畫程序時長調整,我試過當關閉了動畫以後會感覺反應迅速了很多(位置:設置→開發人員選項)。

#FormatImgID_1#

第三方軟體更換啟動器

實際上很多Android卡頓的罪魁禍首就是系統的啟動器,現在一些品牌的手機啟動器做得越來越炫麗,也越來越復雜,當然代價就是佔用RAM和ROM更多,如果不是對這方面特別有要求,完全可以替換一些第三方的啟動器。

卸載系統自帶程序

現在官方系統自帶很多程序,而且不能卸載,但是這些軟體往往都會開機自啟動,而且對系統流暢度影響比較大,但是要刪除這些自帶軟體需要獲取root許可權。通用一些第三方ROM也會有自帶垃圾軟體問題,而大部分第三方ROM都自帶root,所以這個相對好解決。

管理開機自啟動項

減少開機自啟動的軟體,除了能節省電量之外,當然還能提升手機的反應速度,當然只要關閉一些不需要自啟動的第三方軟體就可以達到目的了。

③ 怎麼讓手機不卡

關鍵還是自己優化,這里提供一些較為普遍可以使用的方法,其實我想說的是,安卓不比ios差。
1.刷機。系統這一塊絕對是有著舉足輕重的地位,一款好的系統能讓Android脫胎換骨。而從Android 4.1開始,Android的流暢性可以說有了質的飛躍。Android 4.1的觸控感覺非常好,這主要歸功於Android 4.1的幀速度提高到了60fps,而且在觸摸延遲上有更加優秀的表現。因此只要情況允許,建議所有Android手機都刷到4.1以上,這種體驗絕對是以往使用4.0甚至2.3系統都不可想像的。當然,對於大部分Android手機來說,4.1還是遙不可及,只有通過第三方ROM才能達到品嘗「果凍豆」的目的,這里就要特別注意第三方ROM的穩定性問題。
如果不能刷Android 4.1,那還可以選擇一些第三方ROM例如原生系統AOKP或者CM系列。由於系統非常精簡,這些第三方ROM也會帶來流暢度的提升,當然要放棄的是官方ROM的各種自帶軟體和UI,這就要看用戶的取捨了。
2.更換內核。Android手機的內核(Kernel)對手機流暢性也是有很大的影響,內核直接影響CPU的運行效率、頻率變化。說到刷內核就不能不提超頻,一些第三方內核支持CPU的超頻,CPU頻率提高了流暢度當然會有變化,當然這里也要特別注意溫度和電壓的控制。
3.設置優化。
①開啟性能模式
這個問題在此前的文章「如何讓你的手機更省電?」中已經有提及過,很多手機默認是標准模式甚至是省電模式,這對性能是有不少影響的,因此建議不是有特別需求還是調至性能模式(位置:系統設置,因不同手機而異)。
②關閉動畫特效
這是一個Android 4.0才開始有的設置選項,Android 4.0有兩項(窗口動畫縮放以及過渡動畫縮放),Android 4.1增加了動畫程序時長調整。有人說Android的動畫比較卡,沒有iPhone順滑,有這選項可好,你說動畫不順嘛,我關掉還不行嗎?關閉了這些以後會感覺反應迅速了很多,但是犧牲了一定的視覺感受(位置:設置→開發人員選項)。
③不保留活動
這個選項即把Android相對iPhone的其中一個很大的優勢舍棄了,也就是我們常說的「多任務」,Android現在的高端機動不動就四核、2G RAM,如果只跑一個軟體,可想而知流暢度會非常高,但是這里並不建議使用這種方法提升流暢度,沒有多任務的Android更像一隻三腳貓,如果只是體驗一下那種感覺也無妨(位置:設置→開發人員選項)。
③不保留活動
這個選項即把Android相對iPhone的其中一個很大的優勢舍棄了,也就是我們常說的「多任務」,Android現在的高端機動不動就四核、2G RAM,如果只跑一個軟體,可想而知流暢度會非常高,但是這里並不建議使用這種方法提升流暢度,沒有多任務的Android更像一隻三腳貓,如果只是體驗一下那種感覺也無妨(位置:設置→開發人員選項)。
3.第三方軟體
更換啟動器
實際上很多Android卡頓的罪魁禍首就是系統的啟動器,現在一些品牌的手機啟動器做得越來越炫麗,也越來越復雜,當然代價就是佔用RAM和ROM更多,如果不是對這方面特別有要求,完全可以替換一些第三方的啟動器,例如Apex、NOVA等,它們帶來的流暢度提升也是非常明顯的。
卸載系統自帶程序
現在越來越多官方系統自帶很多惱人的程序,而且不能卸載,這些軟體往往都會開機自啟動,對系統流暢度影響比較大,但是要刪除這些自帶軟體需要獲取root許可權。通用一些第三方ROM也會有自帶垃圾軟體問題,而大部分第三方ROM都自帶root,所以這個相對好解決。這里刪除程序也要特別注意,不要錯刪一些系統軟體,否則後果很嚴重。
建議:卸載一些不常用的桌面插件、系統強制安裝的第三方軟體等。
管理開機自啟動項
這方面在之前的省電專題中也有提到過,減少開機自啟動的軟體,除了能節省電量之外,當然還能提升手機的反應速度,當然這里也不能一下把所有軟體都關閉,關閉一些不需要自啟動的第三方軟體就可以達到目的了,如果不小心把系統本身的程序禁用了就會比較麻煩。
建議:禁用大部分第三方軟體自啟動
其實很多「常識性」的問題都是以訛傳訛,比較典型的就是Android比iPhone卡很多,iPhone不「拼配置」等實際上都是有誤的,我們只能通過親身使用以及測試才能知道真相,還是那句老話,眼見為實。當然,Android要有這種程度的流暢感覺,還是需要建立在強大的硬體配置上的。

④ 在安卓開發中,當設置默認瀏覽器後,內核文件哪個被修改呢我查過package.XML,裡面沒改變,

使用Trident內核的瀏覽器:IE、Maxthon、TT、The World等;
使用Gecko內核的瀏覽器:Netcape6及以上版本、FireFox、MozillaSuite/SeaMonkey;
使用Presto內核的瀏覽器:Opera7及以上版本;
使用Webkit內核的瀏覽器:Safari、Chrome。
使用Webkit和Trident雙核心瀏覽器:Maxthon3.x,QQ瀏覽器5,搜狗瀏覽器2.x,

瀏覽器是邊下載邊解析,邊顯示的,這個地方就有不少的坑等著你,
光拿一個開源的xml解析器可不行,html的解析中還有圖文混排等功能,
整個地方又是無數的坑。 就不要說javascript的引擎了

所以不是那麼簡單的 解釋起來比較麻煩

你來我們群里說吧

這里是開發者互相學習交流的

有大神

讓他們給你解釋你的疑問 q un號: 188168040

⑤ 怎樣更改安卓手機內核數據讓手機運行快點。

運行變快一般有這么幾個方法,一是換精簡優化的系統,二是不要用手機管家等後台非常耗資源的軟體,甚至盡量少開qq、微信等後台接收消息的軟體。另外你可以在開發者選項里設置退出軟體時自動關閉後台進程。這樣可以保證你的內存消耗始終在最低標准

⑥ 安卓系統是基於linux內核開發的,兩者的具體區別是什麼為什麼安卓多用於移動設備而linux不是

安卓基於linux內核,但是針對移動設備做了更多的優化,所以安卓多用於移動設備。兩者區別如下:

一、主體不同

1、安卓系統:是一種基於Linux的自由及開放源代碼的操作系統。

2、linux內核:是一套免費使用和自由傳播的類UNIX操作系統。

二、應用不同

1、安卓系統:主要使用於移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。

2、linux內核:是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的Unix工具軟體、應用程序和網路協議。


三、特點不同

1、安卓系統:會同一系列核心應用程序包一起發布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。

2、linux內核:繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。

⑦ android系統 主要有哪幾部分

android系統分為四部分,從高到低分別是:

1、Android應用層

2、Android應用框架層

3、Android系統運行層

4、Linux內核層

Android系統構架主要應用於ARM平台,但不僅限於ARM,通過編譯控制,在X86、MAC等體系結構的機器上同樣可以運行。

(7)android內核優化擴展閱讀

Android運行庫

Android包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數功能。

每一個Android都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計成一個設備可以同時高效地運行多個虛擬系統。Dalvik虛擬機執行(.dex)的Dalvik可執行文件,該格式文件針對小內存使用做了優化。

同時虛擬機是基於寄存器的,所有的類都經由JAVA編譯器編譯,然後通過SDK中的「dx」工具轉化成.dex格式由虛擬機執行。

⑧ 如何修改Android系統的Ramdisk以及boot鏡像

Android系統的Ramdisk以及boot鏡像就在rom/boot目錄下,ramdisk以及second stage loader(可選)組成,可以從mkbootimg.h文件中看到。

boot.img文件的作用及修改方式:

  1. boot.img通常稱之為「內核」,屬於系統底層文件,它包含了手機系統軟體和硬體相連接的一個渠道,這里包含了相機、cpu、gpu等驅動。

  2. 一般來說官方提供的內核相對於第三方的內核是相對穩定的,如果發現刷機包里沒有boot.img文件,那麼刷機完成後系統會使用刷機之前系統的內核,也就是內核保持不便,一般來說內核的升級才是系統真正的升級;內核文件記錄了一些系統底層的核心功能和連接硬體驅動的作用,內核的優化能夠給系統帶來質的飛躍。

  3. 就比如HTC M8目前已經升級到了Android 5.0系統,那麼刷入4.4版本的boot.img會有什麼樣的後果呢,一般來說這樣跨版本刷boot.img會導致無法開的情況,對於大版本之間的升級強烈建議不要隨意刷boot.img文件,boot.img文件不僅僅是和機型相對於的,而且和版本也相對應,有新手朋友隨意亂刷boot.img文件,導致手機無法開機的情況。

  4. boot.img文件是可以修改的,建議在Linux環境下修改,當然也可以使用Windows系統來解壓,簡單的修改一些參數,但是要做到真正的代碼優化,建議還是在Linux環境下進行。

⑨ 安卓內核與rom有什麼區別

安卓內核與rom的區別:
1、android 的內核都是linux的內核。
(1)Android內核是基於Linux2.6內核的(目前最新開發版本是2.6.31),它是一個增強內核版本,除了修改部分Bug外,它提供了用於支持Android平台的設備驅動。
(2)AndroidBinder,基於OpenBinder
框架的一個驅動,用於提供 Android 平 台 的 進 程 間 通 訊 (IPC, inter-processcommunication)。
(3)源代碼位於drivers/staging/android/binder.c Android電源管理(PM),一個基於標准Linux電源管理系統的輕量級的Android電源管理驅動,針對嵌入式設備做了很多優化。
2、rom和每個手機廠商有關,每個rom都有對應手機型號、系統本版的驅動程序。
(1)安卓ROM是手機重新刷入系統的一個程序包,安卓系統在手機市場里佔有率很高,所以安卓ROM發展很快,國內比較知名的安卓ROM有米柚,樂蛙,網路雲,深度等。
(2)ROM是一種只能讀出事先所存數據的固態半導體存儲器。其是。通常用在不需經常變更資料的電子或電腦系統中,資料並且不會因為電源關閉而消失。
(3)ROM所存數據,一般是裝入整機前事先寫好的,整機工作過程中只能讀出,而不像隨機存儲器那樣能快速地、方便地加以改寫。ROM所存數據穩定,斷電後所存數據也不會改變;其結構較簡單,讀出較方便,因而常用於存儲各種固定程序和數據。除少數品種的只讀存儲器(如字元發生器)可以通用之外,不同用戶所需只讀存儲器的內容不同。

閱讀全文

與android內核優化相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163