国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android啟動之生命周期流程

這篇具有很好參考價值的文章主要介紹了Android啟動之生命周期流程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、簡述

二、啟動流程說明(一)

三、啟動流程說明(二)

四、ServerThread常用組件的功能介紹


一、簡述

第一步:啟動Linux:

1.Bootloader

2.kernel

第二步:Android系統(tǒng)啟動:入口為Init.rc(system/core/rootdir)

1./system/bin/servicemanager:Binder守護進程;

2.Runtime;

3.Zygote:app_process/App_main;

4.Start VM;

5.System Server;

6.Start Android Services:Register to ServiceManager;

7.Start Launcher;

第三步:應(yīng)用程序啟動:

1.運行PackagerManager


二、啟動流程說明(一)

  1. Android的servicemanager文件位于/system/bin/servicemanager中,在系統(tǒng)啟動一開始會通過源碼為ServiceManager.java的文件實例化一個Daemon Process,用于在后臺維護系統(tǒng)的運行;
  2. 啟動/system/bin下的zygote的時候?qū)嶋H上啟動了app_main.cpp,該系統(tǒng)文件CPP位于frameworks/base/cmds/app_process/app_main.cpp文件中;
  3. 在app_main.cpp調(diào)用了AndroidRuntime.cpp,如何AndroidRuntime.cpp通過JNI調(diào)用了ZygoteInit.java,ZygoteInit.java又調(diào)用了SystemServer.java;
  4. SystemServer.java通過JNI調(diào)用了com_android_server_systemService.app,然后通過運行system_init.cpp反過來調(diào)用SystemServer.java中的init2()這個方法,此時在init2()這個方法中調(diào)用了runtime->callStatic("com/android/server/SystemServer","init2")啟動ServerThread線程。

三、啟動流程說明(二)

服務(wù)線程ServerThread包含下面的功能:

  1. PowerManagerService:電源管理;
  2. ActivityMangerService:組件管理;
  3. WindowManagerService:窗口管理;
  4. PackageManagerService:應(yīng)用程序是通過該Service啟動的。

四、ServerThread常用組件的功能介紹

1.PowerManagerService:電源管理

PowerManagerService負責管理設(shè)備的電源相關(guān)功能,例如屏幕的開關(guān)、休眠模式、電池管理等。
獲取PowerManager對象:在Activity或Service中使用以下代碼獲取PowerManager對象。

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);

//1.控制屏幕亮度:可以使用PowerManager對象的方法來控制屏幕亮度,例如:
// 將屏幕設(shè)置為全亮
powerManager.setBrightness(PowerManager.BRIGHTNESS_MAX);
// 將屏幕設(shè)置為最暗
powerManager.setBrightness(PowerManager.BRIGHTNESS_OFF);


//2.控制休眠模式:可以使用PowerManager對象的方法來控制設(shè)備的休眠模式,例如:
// 進入休眠模式
powerManager.goToSleep(SystemClock.uptimeMillis());
// 喚醒設(shè)備
powerManager.wakeUp(SystemClock.uptimeMillis());


2.ActivityManagerService:組件管理

ActivityManagerService負責管理Android系統(tǒng)中的組件,例如Activity、Service、Broadcast Receiver等。它負責啟動、管理和銷毀這些組件,并提供與組件生命周期相關(guān)的功能。
啟動Activity:可以使用Intent和Context的startActivity方法啟動一個Activity,例如:

Intent intent = new Intent(this, MyActivity.class);
startActivity(intent);

//1.啟動Service:可以使用Intent和Context的startService方法啟動一個Service,例如:
Intent intent = new Intent(this, MyService.class);
startService(intent);


//2.注冊Broadcast Receiver:可以通過在代碼中注冊Broadcast Receiver來接收系統(tǒng)廣播消息,例如:
BroadcastReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BOOT_COMPLETED);
registerReceiver(receiver, filter);


3.WindowManagerService:窗口管理

WindowManagerService負責管理Android系統(tǒng)中的窗口,包括應(yīng)用程序窗口、系統(tǒng)提示框、懸浮窗口等。它負責窗口的創(chuàng)建、顯示、移動、調(diào)整大小等操作。
創(chuàng)建一個自定義窗口:可以通過創(chuàng)建一個自定義的View,并將其添加到WindowManager中來創(chuàng)建一個自定義窗口,例如:

WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
MyCustomView myView = new MyCustomView(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
// 設(shè)置窗口的位置、大小等參數(shù)
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.gravity = Gravity.CENTER;
windowManager.addView(myView, params);


4.PackageManagerService:應(yīng)用程序啟動

PackageManagerService負責管理應(yīng)用程序的安裝、卸載、更新等操作。它提供了獲取應(yīng)用程序信息、啟動應(yīng)用程序等功能。
獲取應(yīng)用程序信息:可以使用PackageManager對象的方法來獲取應(yīng)用程序的信息,例如:

PackageManager packageManager = getPackageManager();
ApplicationInfo appInfo = packageManager.getApplicationInfo("com.example.app", 0);
String appName = appInfo.loadLabel(packageManager).toString();
Drawable icon = appInfo.loadIcon(packageManager);

//1.啟動應(yīng)用程序:可以使用PackageManager對象的方法來啟動一個應(yīng)用程序,例如:
PackageManager packageManager = getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage("com.example.app");
if (intent != null) {
? ? startActivity(intent);
}

本文只是對Android啟動生命周期流程的簡要介紹,難免存在不足之處。如有任何錯誤或改進意見,請不吝指正和建議。文章來源地址http://www.zghlxwxcb.cn/news/detail-494170.html

到了這里,關(guān)于Android啟動之生命周期流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 軟件生命周期及流程

    軟件生命周期及流程

    軟件生命周期及流程 軟件生命周期:是軟件開始研制到最終被廢棄不用所經(jīng)歷的各個階段 瀑布型生命周期模型:他們是一個自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落,具有順序性和依賴性。每個階段規(guī)定文檔并需進行評審。 瀑布型特點: 自上而下 、由順

    2023年04月21日
    瀏覽(27)
  • 微服務(wù)流程引擎:簡單又靈活,實現(xiàn)流程全生命周期管理!

    微服務(wù)流程引擎:簡單又靈活,實現(xiàn)流程全生命周期管理!

    伴隨著日益激烈的市場競爭,傳統(tǒng)的辦公操作已經(jīng)無法滿足發(fā)展需要了。如果采用微服務(wù)流程引擎加油助力,就可以幫助企業(yè)更好地管理數(shù)據(jù)資源,高效做好各種表單制作,實現(xiàn)高效率辦公。流辰信息以市場為導(dǎo)向,用心鉆研低代碼技術(shù)平臺產(chǎn)品,幫助不同行業(yè)的客戶朋友做

    2024年02月12日
    瀏覽(38)
  • 【Spring專題】Bean的生命周期流程圖

    【Spring專題】Bean的生命周期流程圖

    我向來不主張【通過源碼】理解業(yè)務(wù),因為每個人的能力有限,甚至可能會因為閱讀錯誤導(dǎo)致出現(xiàn)理解上的偏差,所以我決定,還是先幫大家【開天眼】,先整體看看流程圖,好知道,Spring在寫源碼的過程中到底干了啥事情。 對于【一、之前推測的簡單流程圖】大家可以不看

    2024年02月13日
    瀏覽(34)
  • Bean 作用域、生命周期和Spring執(zhí)行流程

    Bean 作用域、生命周期和Spring執(zhí)行流程

    假設(shè)現(xiàn)在有?個公共的 Bean,提供給 A ?戶和 B ?戶使?,然?在使?的途中 A ?戶卻“悄悄”地修改了公共 Bean 的數(shù)據(jù),導(dǎo)致 B ?戶在使?時發(fā)?了預(yù)期之外的邏輯錯誤。 我們可以看到,B 用戶在使用這個Bean對象時,得到的Dog是被A 用戶修改過的,這無疑會給 B 用戶帶來很

    2024年02月12日
    瀏覽(28)
  • Docker 容器生命周期:創(chuàng)建、啟動、暫停與停止

    Docker 容器生命周期:創(chuàng)建、啟動、暫停與停止

    ???? 博主貓頭虎 帶您 Go to New World.??? ?? 博客首頁——貓頭虎的博客?? ??《面試題大全專欄》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍專欄》學(xué)會IDEA常用操作,工作效率翻倍~?? ?? 《100天精通Golang(基礎(chǔ)入門篇)》學(xué)會Golang語言

    2024年02月14日
    瀏覽(27)
  • Android Jetpack中Lifecycle使用生命周期感知型組件處理生命周期

    在使用Kotlin實現(xiàn)Android Jetpack中Lifecycle使用生命周期感知型組件處理生命周期的功能時,你需要以下步驟: 首先,在app的build.gradle文件中添加Lifecycle相關(guān)庫的依賴項: 然后,在你的Activity或Fragment中創(chuàng)建一個LifecycleObserver對象,并使用@OnLifecycleEvent注解來實現(xiàn)相應(yīng)的生命周期方法

    2024年01月21日
    瀏覽(29)
  • 【框架源碼】Spring源碼解析之Bean生命周期流程

    【框架源碼】Spring源碼解析之Bean生命周期流程

    觀看本文前,我們先思考一個問題,什么是Spring的bean的生命周期?這也是我們在面試的時候,面試官常問的一個問題。 在沒有Spring之前,我們創(chuàng)建對象的時候,采用new的方式,當對象不在被使用的時候,由Java的垃圾回收機制回收。 而 Spring 中的對象是 bean,bean 和普通的 J

    2024年02月09日
    瀏覽(21)
  • Android生命周期:理解與應(yīng)用

    摘要:Android生命周期是開發(fā)Android應(yīng)用程序時至關(guān)重要的概念。本文將介紹Android生命周期的概念、生命周期方法的執(zhí)行順序以及如何在應(yīng)用程序中正確地管理生命周期。我們還將討論生命周期對于應(yīng)用程序的重要性,并提供一些實際應(yīng)用中的最佳實踐和注意事項。 引言(10

    2024年02月05日
    瀏覽(22)
  • 【鴻蒙軟件開發(fā)】UIAbility組件概況、生命周期與啟動模式

    【鴻蒙軟件開發(fā)】UIAbility組件概況、生命周期與啟動模式

    UIAbility組件是一種包含UI界面的應(yīng)用組件,主要用于和用戶交互。 UIAbility組件是系統(tǒng)調(diào)度的基本單元,為應(yīng)用提供繪制界面的窗口;一個UIAbility組件中可以通過多個頁面來實現(xiàn)一個功能模塊。每一個UIAbility組件實例,都對應(yīng)于一個最近任務(wù)列表中的任務(wù)。 UIAbility組件是一種包

    2024年02月05日
    瀏覽(30)
  • K8s之Pod生命周期、啟動停止鉤子

    K8s之Pod生命周期、啟動停止鉤子

    Pod生命周期整個過程 如下圖: 1、在啟動任何容器之前,前創(chuàng)建 pause 容器,它初始化Pod的環(huán)境并為后續(xù)加入的容器提供共享名稱空間。 2、初始化容器(initContainers):一個Pod可以定義任意個初始化容器,如上圖就定義了兩個初始化容器,初始化會按照YAML清單中順序執(zhí)行,當最

    2024年02月05日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包