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

Android Framework基礎(chǔ)知識

這篇具有很好參考價值的文章主要介紹了Android Framework基礎(chǔ)知識。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

哈嘍大家好,我是Zzz. 給大家分享一篇Framework入門的基礎(chǔ)知識文章,內(nèi)容純純原創(chuàng)。

一、Application,Activity和進程的關(guān)系?

? ? Application、Activity只是進程虛擬機運行的一個類對象,只是屬于系統(tǒng)的一個組件和進程沒有直接聯(lián)系。Android支持為每個組件可以單獨進程方式運行。

? ? ? ?一個Application就是單獨的一個進程這個說法是不對的,Application、Activity只是運行程序中的一個普通的類并不代表一個單獨的進程,進程是運行起來的一個程序。

二、Android系統(tǒng)進程間的相互關(guān)系

?Android Framework基礎(chǔ)知識,android framework,筆記,android一個Application或者展示Activity的進程運行在Android系統(tǒng)中需要那些東西進行服務(wù)?

Zygote進程:負責(zé)孵化之后服務(wù)和應(yīng)用的進程(孵化進程)是所有系統(tǒng)進程的父進程由Zygote來孵化各種進程;

System_server進程:是系統(tǒng)核心服務(wù)的一個進程,這個進程包含了系統(tǒng)中核心Service的運行,給系統(tǒng)提供如:Window的管理、Activity的管理,系統(tǒng)的核心功能都在System_server中;

SurfaceFlinger進程:主要跟驅(qū)動層、硬件層進行交互,使屏幕進行繪制,如App進程產(chǎn)生的界面由SurfaceFlinger進行的繪制;

ServiceManager進程:App開發(fā)中用的getService()就是在和ServiceManager進行交互,這個進程就是保存了一個類似于HashMap,保存了System_server中一些核心服務(wù)把服務(wù)中的引用交給ServiceManager使得我們的App進程向ServiceManager要需要的服務(wù);

每一個進程直接各自都是相互獨立的他們之間的通信或控制只能通過跨進程通信的方式進行交互;除了Linux中Socket、共享內(nèi)存、管道等一些方式Android特別的通信方式為Binder通信,底層實現(xiàn)是通過系統(tǒng)調(diào)用和底層驅(qū)動層進行實現(xiàn)。

SurfaceFlinger中包括匿名共享內(nèi)存,因為binder通信是由內(nèi)存大小限制的由于SurfaceFlinger要顯示一個界面是一個巨大的圖片占用的內(nèi)存比較多這個時候就需要用到匿名共享內(nèi)存;

三、哪些代碼是運行在App進程的、哪些又是運行在System_server進程的?

1、除了自己寫的業(yè)務(wù)代碼,一般Android SDK里面的代碼都是運行在App進程的,sdk里面是android.jar(在sdk下的platfroms/android-*/)也就是編譯出的framework.jar,因為app需要依賴sdk才可以編譯通過,說明各個app肯定會使用sdk中的代碼,這個代碼屬于所有app共用的,故修改一個類就會影響所有的應(yīng)用進程;

2、一般com.system.server.*相關(guān)的類都是運行在system_server,這一部分平時是接觸不到的,由于普通應(yīng)用根本無法引入相關(guān)的server代碼,因此這次代碼屬于system_server特殊應(yīng)用自己的代碼,普通應(yīng)用只能通過跨進程通信的方式與其通信獲取相關(guān)數(shù)據(jù)及接收控制,一般java代碼對應(yīng)的是services.jar;

四、主要jar包介紹

Android源碼編譯之后會有很多文件,在源碼路徑out/target/product/generic_x86_64/system/framework/文件下

1、framework-res.apk----》android系統(tǒng)資源庫(如圖片、布局、dialog、主題、控件都在這里)

2、framework.jar-----》Android的sdk中核心代碼

3、services.jar-----》框架層服務(wù)端的編譯后jar包

Android Framework基礎(chǔ)知識,android framework,筆記,android

五、面對實際項目需求到底該修改那一塊的代碼呢?修改原則是什么?

需要具體分析需求,按以下幾步的優(yōu)先級進行:

1、明確業(yè)務(wù)需求,分析業(yè)務(wù)是否可以應(yīng)用層面(即App的業(yè)務(wù)代碼)通過標準接口實現(xiàn),如果是真實的項目又同時要考慮到是否這個App可能被其他的第三方應(yīng)用替代,或者卸載等;

2、如果業(yè)務(wù)代碼無法通過標準接口實現(xiàn),則在考慮應(yīng)用程序的框架修改是否可以實現(xiàn),也就是android sdk部分,即framework.jar,要考慮該部分代碼是運行于所有的app,要考慮功耗影響及穩(wěn)定性,盡量把修改面變小,不可修改sdk的標準接口,只能考慮新加,但是接口的具體實現(xiàn)可以根據(jù)情況改變,修改錯誤可可能黑屏;

3、framework.jar部分的框架也無法滿足時候,就需要考慮System_server中去修改相關(guān)的Service等是否可以滿足,這一部分更需要謹慎修改,一不小心很可能導(dǎo)致系統(tǒng)無法啟動黑屏;

Android Framework基礎(chǔ)知識,android framework,筆記,android文章來源地址http://www.zghlxwxcb.cn/news/detail-843043.html

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

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

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

相關(guān)文章

  • Android ContentProvider基礎(chǔ)知識學(xué)習(xí)筆記

    1、動態(tài)申請權(quán)限 2、讀取手機聯(lián)系人 3、創(chuàng)建自己的ContentProvider (1) onCreate()。初始化ContentProvider的時候調(diào)用。通常會在這里完成對數(shù)據(jù)庫的創(chuàng)建和升級等操作,返回true表示ContentProvider初始化成功,返回false則表示失敗。 (2) query()。從ContentProvider中查詢數(shù)據(jù)。uri參數(shù)用于確定查

    2024年04月10日
    瀏覽(24)
  • Android Framework層開發(fā)

    Android Framework層開發(fā)

    查看源碼工具: SourceInsight Instrumentation :可以理解為ActivityThread的一個工具類,在ActivityThread中初始化,一個進程只存在一個Instrumentation對象,在每個Activity初始化時,會通過Activity的Attach方法,將該引用傳遞給Activity。Activity所有生命周期的方法都有該類來執(zhí)行。 Init進程(pi

    2024年02月04日
    瀏覽(24)
  • 【Android】Android Framework系列---CarPower電源管理

    【Android】Android Framework系列---CarPower電源管理

    智能座艙通常包括中控系統(tǒng)、儀表系統(tǒng)、IVI系統(tǒng) 、后排娛樂、HUD、車聯(lián)網(wǎng)等。這些系統(tǒng)需要由汽車電源進行供電。由于汽車自身的特殊供電環(huán)境(相比手機方便的充電環(huán)境,汽車的蓄電池如果沒有電是需要專業(yè)人士操作的),其電源狀態(tài)會比較復(fù)雜,既要滿足車內(nèi)的座艙系統(tǒng)

    2024年02月07日
    瀏覽(45)
  • Android Framework 之 ServiceManager

    ServiceManager 在 Android 系統(tǒng)中扮演了核心的角色。主要負責(zé)跨進程通信(IPC)的管理和服務(wù)的注冊與查找。 管理系統(tǒng)服務(wù) : ServiceManager 提供一個全局的服務(wù)注冊表,用于存儲所有的系統(tǒng)服務(wù)。一個服務(wù)一旦被注冊到 ServiceManager,其他的進程就可以通過 **ServiceManager **來訪問這

    2024年02月14日
    瀏覽(18)
  • Android Framework 之 SystemServer

    SystemServer是Android系統(tǒng)中的一個核心組件,負責(zé)啟動和管理許多重要的系統(tǒng)服務(wù)。它的啟動過程相對復(fù)雜,包含以下主要步驟: Zygote啟動SystemServer :在Android系統(tǒng)啟動過程中,Zygote進程會通過fork操作創(chuàng)建一個新的進程,并在這個新的進程中啟動SystemServer。 加載并執(zhí)行SystemSer

    2024年02月14日
    瀏覽(21)
  • Android Framework 之 啟動流程

    Android 系統(tǒng)的啟動流程 Android 系統(tǒng)的啟動流程可以分為以下幾個主要步驟: 引導(dǎo)加載器(Bootloader)啟動 :當(dāng)你打開一個 Android 設(shè)備時,首先啟動的是引導(dǎo)加載器。引導(dǎo)加載器負責(zé)啟動 Android 的核心操作系統(tǒng)。 Linux 內(nèi)核啟動 :引導(dǎo)加載器加載并啟動 Linux 內(nèi)核。Linux 內(nèi)核負責(zé)

    2024年02月14日
    瀏覽(21)
  • 【Android Framework (八) 】- Service

    【Android Framework (八) 】- Service

    1,掛載文件系統(tǒng),創(chuàng)建文件目錄 調(diào)用selinux_setup權(quán)限安全相關(guān) 2,初始化內(nèi)存空間 初始化屬性服務(wù) 創(chuàng)建Epoll 注冊監(jiān)聽子進程重啟異常操作等,對子進程進行線程守護 3,startPropertyServic 開啟屬性服務(wù) 進行監(jiān)聽 4,LoadBootScripts 加載init.rc文件 進行解析 調(diào)用do_class_start 文件開啟

    2024年02月01日
    瀏覽(46)
  • Android Framework 之 Zygote

    Android Zygote 是 Android 操作系統(tǒng)中一個關(guān)鍵的系統(tǒng)服務(wù),它在系統(tǒng)啟動時加載,為應(yīng)用程序的運行提供了一種快速且資源高效的方式。 Zygote 的主要作用如下: 預(yù)加載共享庫和類 :Zygote 啟動時,會預(yù)先加載 Android 系統(tǒng)中所有應(yīng)用程序共享的庫和類,例如 Android Runtime,標準 Ja

    2024年02月14日
    瀏覽(16)
  • Android Studio開發(fā)基礎(chǔ)知識(持續(xù)更新中~)

    閱讀本文需要有 Java 和 前端 的基礎(chǔ),本文是我學(xué)習(xí)Android時的筆記。 Info Key 復(fù)制行 Ctrl + D 刪除行 Ctrl + Y 注釋 Ctrl + / 注釋2 Ctrl + Shift + / 撤銷 Ctrl + Z 恢復(fù) Ctrl + Shift + Z 顯示結(jié)構(gòu) Ctrl + F12 格式化代碼 Ctrl + Alt + L 打開設(shè)置 Ctrl + Alt + S 自動補全代碼 Ctrl + Shift + Space 自動導(dǎo)包 Alt +

    2023年04月08日
    瀏覽(59)
  • Android中集成FFmpeg及NDK基礎(chǔ)知識

    Android中集成FFmpeg及NDK基礎(chǔ)知識

    在日常App開發(fā)中,難免有些功能是需要借助NDK來完成的,比如現(xiàn)在常見的音視頻處理等,今天就以ffmpeg入手,來學(xué)習(xí)下Android NDK開發(fā)的套路. 很多人并不清除JNI和NDK的概念,經(jīng)常搞混這兩樣?xùn)|西,先來看看它們各自的定義吧. 很多人并不清除JNI和NDK的概念,經(jīng)常搞混這兩樣?xùn)|西,先來看看

    2024年01月17日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包