Android init.rc文件由系統(tǒng)第一個(gè)啟動(dòng)的init程序解析。是啟動(dòng)系統(tǒng)服務(wù)使用的文件。主要包含了四種類型的語(yǔ)句:Action和services顯式聲明了一個(gè)語(yǔ)句塊,而commands和options屬于最近聲明的語(yǔ)句塊。
成都創(chuàng)新互聯(lián)專注于市中企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。市中網(wǎng)站建設(shè)公司,為市中等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
源碼分析 -- Android 0 1-system_server 進(jìn)程 1)啟動(dòng)監(jiān)聽。SystemServer.startBootstrapServices 2)RescueParty.noteBoot 3)mBoot初始化介紹 1-persistent 進(jìn)程 1)啟動(dòng)。
首先啟動(dòng) init「父進(jìn)程,第一個(gè)進(jìn)程」進(jìn)程,接著運(yùn)行init.rc腳本,腳本文件有個(gè)命令啟動(dòng)了Zygote進(jìn)程,初始化時(shí)會(huì)啟動(dòng)虛擬機(jī)。Zygote進(jìn)程fork出 SystemServer 進(jìn)程,然后會(huì)調(diào)用SystemServer.main()方法。
而且,Binder線程池是在zygote進(jìn)程啟動(dòng)之后啟動(dòng)的SystemServer進(jìn)程中啟動(dòng)的,而SystemServer進(jìn)程是由zygote進(jìn)程fock自身得到的,所以zygote進(jìn)程在啟動(dòng)之后,循環(huán)等待SystemServer進(jìn)程的消息的時(shí)候,其實(shí)還沒(méi)有Binder線程池。
init進(jìn)程會(huì)解析init.rc腳本做一些初始化工作,包括掛載系統(tǒng)文件、創(chuàng)建工作目錄以及啟動(dòng)系統(tǒng)服務(wù)進(jìn)程等,其中系統(tǒng)服務(wù)進(jìn)程包括Zygote、ServiceManager、Media等。
zygote意為“受精卵“。Android是基于Linux系統(tǒng)的,而在Linux中,所有的進(jìn)程都是由init進(jìn)程直接或者是間接fork出來(lái)的,zygote進(jìn)程也不例外。App進(jìn)程是用戶點(diǎn)擊桌面icon時(shí),通過(guò)Launcher進(jìn)程請(qǐng)求SystemServer,再調(diào)用Zygote孵化的。
方法一:重啟手機(jī)進(jìn)入recovery模式。(手機(jī)都會(huì)自帶的recovery程序,不熟悉如何進(jìn)入的朋友請(qǐng)搜索你所用機(jī)型的進(jìn)入方法;) 進(jìn)入recovery模式后,進(jìn)行雙wipe操作。完成后重啟即可。
退出應(yīng)用程序重新進(jìn)入。重啟手機(jī)。設(shè)定-(一般/更多)-應(yīng)用程序管理器-全部-菜單鍵-重置應(yīng)用程序偏好。
打開設(shè)置-應(yīng)用程序/應(yīng)用程序管理器-查找該應(yīng)用程序-(存儲(chǔ))-清除數(shù)據(jù)。若為下載的第三方軟件,建議卸載該軟件重新安裝嘗試。
如果某個(gè)軟件只是偶爾出現(xiàn)這樣的問(wèn)題,可能是系統(tǒng)內(nèi)存不足引起的,此時(shí)請(qǐng)檢查當(dāng)前系統(tǒng)的內(nèi)存消耗情況。結(jié)束一些不必要的、無(wú)用的程序運(yùn)行,以釋放系統(tǒng)資源。用戶可嘗試手機(jī)助手之類的工具解決,如百度手機(jī)衛(wèi)士等。
1、Linux系統(tǒng)對(duì)進(jìn)程的管理方式是一旦進(jìn)程活動(dòng)停止,系統(tǒng)就會(huì)結(jié)束該進(jìn)程。
2、Service process 服務(wù)進(jìn)程:該進(jìn)程中開啟了一個(gè)服務(wù)(通過(guò)startService方法)。注意這里強(qiáng)調(diào)的是服務(wù)的“開啟”,區(qū)別于第一類中的“服務(wù)正在執(zhí)行一些操作”。大多數(shù)音樂(lè)軟件都是通過(guò)這種方法來(lái)保留其播放音樂(lè)的進(jìn)程。
3、待銷毀”的意思。空進(jìn)程。這是一種系統(tǒng)緩存機(jī)制,其實(shí)就是個(gè)進(jìn)程的外殼,當(dāng)有新進(jìn)程創(chuàng)建的時(shí)候,這個(gè)空進(jìn)程可以加快進(jìn)程創(chuàng)建速度,當(dāng)系統(tǒng)內(nèi)存不足的時(shí)候,首先銷毀空進(jìn)程。
在Zygote中會(huì)進(jìn)一步啟動(dòng)system_server進(jìn)程,然后system_server進(jìn)程中會(huì)啟動(dòng)AMS、WMS、PMS等服務(wù),這些服務(wù)啟動(dòng)后,AMS就會(huì)打開Launcher應(yīng)用的home Activity,最終就看到了手機(jī)桌面。
AMS主要功能: AMS是Android中最核心的服務(wù),主要負(fù)責(zé)系統(tǒng)中四大組件的啟動(dòng)、切換、調(diào)度及應(yīng)用進(jìn)程的管理和調(diào)度等工作。還負(fù)責(zé)啟動(dòng)或殺死應(yīng)用程序的進(jìn)程。WMS主要功能: 為所有窗口分配Surface。
統(tǒng)一調(diào)試應(yīng)用程序的Activity。應(yīng)用程序要運(yùn)行Activity,首先會(huì)報(bào)告給AmS,然后由AmS決定該Activity是否啟動(dòng)。內(nèi)存管理。
主要是調(diào)用一些關(guān)鍵服務(wù)的初始化函數(shù),然后殺死那些沒(méi)有FLAG_PERSISTENT 卻在AMS啟動(dòng)完成前已經(jīng)存在的進(jìn)程,同時(shí)獲取一些配置參數(shù)。
答案是肯定的,那么本篇文章先來(lái)看看cpuset負(fù)載均衡在AMS中是如何應(yīng)用的。cpuset是Linux cgroup子系統(tǒng),它為cgroup任務(wù)分配單獨(dú)的CPU和內(nèi)存。單獨(dú)分配CPU即表明進(jìn)程可調(diào)度cpu范圍。
1、開始處理SystemServer進(jìn)程,通過(guò)異常反射調(diào)用SystemServer的main方法,主要完成兩件事:?jiǎn)?dòng)Binder驅(qū)動(dòng)線程,開啟服務(wù)(AMS、PMS、WMS、IMS等),最后通過(guò)Binder驅(qū)動(dòng)去啟動(dòng)服務(wù)。
2、這就是手機(jī)自帶的軟件。這個(gè)程序是廣告,我以前一看這名稱SystemService(系統(tǒng)服務(wù)),我以為是android的東西不敢卸,后來(lái)知道就直接卸了。你裝個(gè)騰訊手機(jī)管家,監(jiān)控各軟件每月/日的流量消耗情況、防止惡意軟件偷走您的流量。
3、PWS主要功能: PMS 用來(lái)管理跟蹤所有應(yīng)用APK,包括安裝,卸載,解析,控制權(quán)限等。SystemServer也是一個(gè)進(jìn)程,包括AMS、PMS、WMS等等。zygote意為“受精卵“。
一個(gè)服務(wù)不是一個(gè)單獨(dú)的進(jìn)程。服務(wù)對(duì)象本身并不意味著它是在自己的進(jìn)程中運(yùn)行,除非另有規(guī)定,否則它與運(yùn)行程序是同在一個(gè)進(jìn)程中。一個(gè)服務(wù)不是一個(gè)單獨(dú)的線程。
程序跟進(jìn)程或服務(wù)有關(guān),進(jìn)程和服務(wù)是依靠程序來(lái)運(yùn)作的;進(jìn)程跟服務(wù)有關(guān),比如打印進(jìn)程,就跟打印服務(wù)項(xiàng)有關(guān),進(jìn)程里面的svchost.exe,加載了很多的“服務(wù)”,比如services.msc 界面的大多數(shù)服務(wù)項(xiàng),都是通過(guò)svchost加載的。
Service process 服務(wù)進(jìn)程:該進(jìn)程中開啟了一個(gè)服務(wù)(通過(guò)startService方法)。注意這里強(qiáng)調(diào)的是服務(wù)的“開啟”,區(qū)別于第一類中的“服務(wù)正在執(zhí)行一些操作”。大多數(shù)音樂(lè)軟件都是通過(guò)這種方法來(lái)保留其播放音樂(lè)的進(jìn)程。
Android中的進(jìn)程 當(dāng)一個(gè)程序第一次啟動(dòng)的時(shí)候,Android會(huì)啟動(dòng)一個(gè)LINUX進(jìn)程和一個(gè)主線程。默認(rèn)的情況下,所有該程序的組件都將在該進(jìn)程和線程中運(yùn)行。 同時(shí),Android會(huì)為每個(gè)應(yīng)用程序分配一個(gè)單獨(dú)的LINUX用戶。
本文標(biāo)題:服務(wù)進(jìn)程android 服務(wù)進(jìn)程有哪些
分享路徑:http://aaarwkj.com/article35/didcesi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、建站公司、響應(yīng)式網(wǎng)站、全網(wǎng)營(yíng)銷推廣、動(dòng)態(tài)網(wǎng)站、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)