91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RK Android15 libril深度解析:文件職責(zé)與核心流程拆解

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2026-02-04 07:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作為Android通信底層的核心組件,libril是新手切入系統(tǒng)通信模塊開發(fā)的關(guān)鍵入口。很多新手剛接觸時(shí),面對一堆源碼文件容易無從下手——分不清各文件核心作用,看不懂指令流轉(zhuǎn)邏輯,更不知道如何從源碼層面定位通信相關(guān)問題。

wKgZO2mCgXaAUJllAAQBYoUXw-M475.png

本文作為技術(shù)向入門指南,將聚焦libril核心文件的職責(zé)拆解,梳理3大核心通信流程的流轉(zhuǎn)鏈路,幫新手建立清晰的知識框架,為后續(xù)源碼閱讀、問題調(diào)試打下基礎(chǔ)。(本文基于Android原生libril源碼,適配主流芯片平臺通用邏輯)

一、先明確核心定位:libril在RIL架構(gòu)中的角色

在Android通信架構(gòu)中,RIL(Radio Interface Layer)處于Framework層(Telephony框架)與Modem(基帶)之間,而libril是RIL層的核心實(shí)現(xiàn)庫(動(dòng)態(tài)庫.so形式),核心職責(zé)是完成“Framework層標(biāo)準(zhǔn)化指令”與“Modem私有指令”的轉(zhuǎn)換,以及異步事件的分發(fā)。

新手需先記住3個(gè)核心交互關(guān)系(后續(xù)流程拆解均圍繞此展開):

?上行:Framework層通過RILJ(Java層)調(diào)用RILC(C/C++層,即libril)提供的接口,發(fā)起通信請求(如撥號、發(fā)短信);

?下行:libril將請求指令封裝為Modem可識別的格式(如AT指令、QMI協(xié)議),通過Socket下發(fā)給Modem;

?異步上報(bào):Modem將狀態(tài)變化、事件通知(如來電、信號強(qiáng)度變化)通過Socket上報(bào)給libril,再由libril轉(zhuǎn)發(fā)給Framework層。

搞懂這個(gè)交互邏輯,再去看單個(gè)文件的作用,就不會(huì)陷入“只見樹木不見森林”的誤區(qū)。

二、核心文件職責(zé)拆解(新手重點(diǎn)掌握)

libril的源碼文件雖多,但核心文件集中在“基礎(chǔ)通信、服務(wù)對接、擴(kuò)展能力、構(gòu)建編譯”四大類,新手無需逐行啃代碼,先明確每個(gè)文件的核心職責(zé)、關(guān)鍵接口/函數(shù),再逐步深入。

1.基礎(chǔ)通信類(核心中的核心,必須掌握)

這類文件是libril實(shí)現(xiàn)通信交互的基石,負(fù)責(zé)指令分發(fā)、事件處理、Socket通信,是新手入門的第一優(yōu)先級。

文件名稱 核心職責(zé) 新手重點(diǎn)關(guān)注
ril.cpp libril的入口文件,負(fù)責(zé)庫初始化、指令注冊與分發(fā)、上下層接口適配,是整個(gè)庫的“中樞”。 1. rilInit():初始化函數(shù),完成Socket創(chuàng)建、事件循環(huán)啟動(dòng)、指令表注冊;2. RIL_SendRequest():處理Framework層下發(fā)的請求指令;3.指令分發(fā)邏輯:根據(jù)指令I(lǐng)D匹配對應(yīng)的處理函數(shù)。
ril_commands.h 定義RIL標(biāo)準(zhǔn)化指令的常量、結(jié)構(gòu)體、函數(shù)聲明,統(tǒng)一上下行指令格式(跨平臺適配的核心)。 1.指令I(lǐng)D定義(如RIL_REQUEST_MAKE_CALL:撥號請求);2.指令參數(shù)結(jié)構(gòu)體(如RIL_RequestInfo:請求信息封裝);3.指令處理函數(shù)指針聲明。
ril_event.h / ril_event.cpp 實(shí)現(xiàn)libril的事件驅(qū)動(dòng)機(jī)制,處理Socket數(shù)據(jù)可讀、超時(shí)、異步事件上報(bào)等場景,是異步通信的核心。 1. rilEventLoop():事件循環(huán)核心函數(shù)(死循環(huán),監(jiān)聽事件觸發(fā));2. rilEventAdd():添加事件到監(jiān)聽隊(duì)列;3.回調(diào)函數(shù)機(jī)制:事件觸發(fā)后的處理邏輯。
RilSocket.h / rilSocketQueue.h 封裝Socket通信接口與數(shù)據(jù)隊(duì)列,負(fù)責(zé)libril與Modem之間的可靠數(shù)據(jù)傳輸(避免數(shù)據(jù)丟失、亂序)。 1. RilSocket::connect():與Modem建立Socket連接;2. rilSocketQueue_enqueue()/dequeue():數(shù)據(jù)入隊(duì)/出隊(duì)操作;3.數(shù)據(jù)收發(fā)回調(diào)(如onDataAvailable)。
ril_internal.h libril內(nèi)部私有頭文件,封裝內(nèi)部數(shù)據(jù)結(jié)構(gòu)、宏定義、輔助函數(shù)(對外隱藏實(shí)現(xiàn)細(xì)節(jié),保證封裝性)。 1.內(nèi)部全局變量(如g_rilEnv:RIL環(huán)境上下文);2.輔助函數(shù)(如字符串轉(zhuǎn)指令I(lǐng)D、錯(cuò)誤碼映射);3.私有結(jié)構(gòu)體(如RilContext:庫運(yùn)行上下文)。

2.服務(wù)對接類(對接Framework層的關(guān)鍵)

這類文件負(fù)責(zé)將libril的能力暴露給Framework層,完成服務(wù)注冊與生命周期管理,新手需理解“服務(wù)如何被上層調(diào)用”。

文件名稱 核心職責(zé) 新手重點(diǎn)關(guān)注
ril_service.h / ril_service.cpp 實(shí)現(xiàn)libril服務(wù)的啟動(dòng)、注冊、生命周期管理,對接Android的ServiceManager。 1. ril_service_start():服務(wù)啟動(dòng)函數(shù),注冊到ServiceManager(服務(wù)名:“ril”);2.服務(wù)綁定邏輯:Framework層通過服務(wù)名獲取libril接口;3.服務(wù)銷毀與重啟機(jī)制。
ril_unsol_commands.h 定義Modem主動(dòng)上報(bào)的“非請求式指令”(Unsolicited Command),標(biāo)準(zhǔn)化異步事件格式。 1.非請求指令I(lǐng)D(如RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED:通話狀態(tài)變化);2.上報(bào)參數(shù)結(jié)構(gòu)體(如RIL_CallState:通話狀態(tài)信息);3.上報(bào)函數(shù)聲明(如rilSendUnsolicitedResponse)。

3. SAP擴(kuò)展類(可選,按需掌握)

SAP(SIM Access Profile)是SIM卡遠(yuǎn)程訪問協(xié)議,主要用于車載藍(lán)牙、智能穿戴等設(shè)備共享手機(jī)SIM卡能力,新手可先掌握核心通信流程,再按需深入。

文件名稱 核心職責(zé) 新手重點(diǎn)關(guān)注
RilSapSocket.h / RilSapSocket.cpp 實(shí)現(xiàn)SAP協(xié)議下的Socket通信,處理SIM卡遠(yuǎn)程訪問的底層數(shù)據(jù)收發(fā)。 1. SAP Socket連接建立與斷開;2. SAP指令的封裝與解析;3.數(shù)據(jù)收發(fā)回調(diào)(與核心Socket邏輯類似,可對比學(xué)習(xí))。
sap_service.h / sap_service.cpp 封裝SAP協(xié)議核心邏輯,處理SIM卡遠(yuǎn)程訪問的指令與事件,對接基帶SAP模塊。 1. SAP服務(wù)初始化與啟動(dòng);2.核心指令處理(如SIM卡狀態(tài)查詢、遠(yuǎn)程撥號);3. SAP事件上報(bào)(如SIM卡插拔通知)。

4.構(gòu)建編譯類(新手入門必備,避免踩坑)

這類文件負(fù)責(zé)libril的編譯構(gòu)建,新手在搭建開發(fā)環(huán)境、編譯源碼時(shí)經(jīng)常會(huì)遇到問題,需明確核心配置邏輯。

文件名稱 核心職責(zé) 新手重點(diǎn)關(guān)注
Android.mk Android原生構(gòu)建腳本,定義libril的編譯規(guī)則(源文件、依賴庫、編譯選項(xiàng)等)。 1. LOCAL_SRC_FILES:指定編譯的源文件(需與實(shí)際文件路徑匹配);2. LOCAL_SHARED_LIBRARIES:依賴的共享庫(如liblog、libcutils);3. LOCAL_MODULE:生成的庫名稱(如libril)。
NOTICE 版權(quán)聲明文件,包含開源協(xié)議(如Apache License 2.0)、版權(quán)所有者信息,符合Android開源項(xiàng)目合規(guī)要求。 1.開源協(xié)議條款(新手需了解開源使用規(guī)范);2.版權(quán)信息的修改與補(bǔ)充(自定義開發(fā)時(shí)需同步更新)。

三、核心流程拆解(新手必懂,打通知識閉環(huán))

掌握文件職責(zé)后,核心是理解“指令如何流轉(zhuǎn)”。下面拆解3個(gè)新手最常接觸的核心流程,結(jié)合前文文件職責(zé),幫你建立完整的邏輯鏈路。

流程1:撥號請求(Framework→libril→Modem)

這是典型的“請求-響應(yīng)”流程,新手可通過這個(gè)流程理解上行指令的流轉(zhuǎn)邏輯:

1.Framework層(Telephony)通過RILJ調(diào)用RILC的RIL_SendRequest()接口,傳入指令I(lǐng)D(RIL_REQUEST_MAKE_CALL)和參數(shù)(如號碼、通話類型);

2.ril.cpp中的RIL_SendRequest()函數(shù)接收請求,根據(jù)指令I(lǐng)D從ril_commands.h定義的指令表中,匹配對應(yīng)的處理函數(shù);

3.處理函數(shù)將Framework層參數(shù),封裝為Modem可識別的格式(如AT指令“ATD13800138000;”);

4.通過RilSocket(RilSocket.cpp)將封裝后的指令,通過Socket下發(fā)給Modem;

5.Modem執(zhí)行撥號操作后,通過Socket返回響應(yīng)結(jié)果(成功/失敗);

6.RilSocket接收響應(yīng),通過ril_event.cpp的事件機(jī)制觸發(fā)回調(diào),將結(jié)果回傳給Framework層;

7.Framework層根據(jù)響應(yīng)結(jié)果,更新UI(如顯示“正在撥號”“通話中”)。

新手調(diào)試提示:若撥號失敗,可先檢查ril.cpp中RIL_SendRequest()的指令I(lǐng)D是否正確,再檢查RilSocket是否成功下發(fā)指令,最后排查Modem響應(yīng)是否正常。

流程2:來電事件上報(bào)(Modem→libril→Framework)

這是典型的“異步上報(bào)”流程,理解這個(gè)流程,就能掌握下行事件的流轉(zhuǎn)邏輯:

1.Modem檢測到來電,生成異步事件(如RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED),并將來電號碼、狀態(tài)等參數(shù)封裝后,通過Socket上報(bào)給libril;

2.RilSocket監(jiān)聽到數(shù)據(jù)可讀(通過ril_event.cpp的事件循環(huán)機(jī)制),觸發(fā)onDataAvailable回調(diào),接收Modem上報(bào)的數(shù)據(jù);

3.libril解析上報(bào)數(shù)據(jù),根據(jù)事件ID(ril_unsol_commands.h定義)匹配對應(yīng)的處理函數(shù);

4.處理函數(shù)將解析后的參數(shù)(如來電號碼、通話狀態(tài)),通過rilSendUnsolicitedResponse()接口轉(zhuǎn)發(fā)給Framework層;

5.Framework層接收事件后,觸發(fā)來電鈴聲、顯示來電界面等操作。

流程3:SAP遠(yuǎn)程SIM卡訪問(車機(jī)→手機(jī)libril→Modem)

這是擴(kuò)展流程,新手可按需掌握,理解libril的擴(kuò)展能力:

1.車機(jī)通過藍(lán)牙連接手機(jī),發(fā)起SIM卡訪問請求(如查詢SIM卡余額);

2.手機(jī)libril的sap_service(sap_service.cpp)接收請求,通過RilSapSocket(RilSapSocket.cpp)封裝SAP指令;

3.sap_service將SAP指令轉(zhuǎn)發(fā)給核心通信模塊(ril.cpp),由核心模塊通過Socket下發(fā)給Modem;

4.Modem執(zhí)行操作后,將結(jié)果通過Socket返回給libril;

5.libril通過sap_service、RilSapSocket將結(jié)果回傳給車機(jī),完成遠(yuǎn)程訪問。

四、新手入門建議(避坑指南)

結(jié)合自身經(jīng)驗(yàn),給新手3條入門建議,幫你高效掌握libril:

1.先抓核心,再擴(kuò)展開:優(yōu)先掌握“基礎(chǔ)通信類文件+撥號/來電流程”,這是libril的核心,后續(xù)再深入SAP擴(kuò)展、異常處理等場景;

2.結(jié)合日志調(diào)試:新手遇到問題,可通過logcat打印libril日志(標(biāo)簽:RIL),跟蹤指令流轉(zhuǎn)(如請求下發(fā)、響應(yīng)接收、事件上報(bào)),快速定位問題;

3.對比學(xué)習(xí):將libril的核心文件(如ril.cpp、ril_event.cpp)與實(shí)際流程結(jié)合,邊看代碼邊梳理流程,形成自己的筆記(如繪制流程圖、標(biāo)注關(guān)鍵函數(shù))。

寫在最后

libril作為Android通信底層的核心庫,看似復(fù)雜,但核心邏輯很清晰——“文件各司其職,指令按流程流轉(zhuǎn)”。新手入門無需急于逐行啃代碼,先明確核心定位、掌握文件職責(zé)、理清關(guān)鍵流程,再逐步深入細(xì)節(jié)(如異常處理、平臺適配),就能快速上手。

后續(xù)我會(huì)繼續(xù)分享libril的調(diào)試技巧、平臺適配要點(diǎn),以及常見問題排查方案,也可以查看往期精彩文章,關(guān)注我,帶你從入門到精通Android通信底層開發(fā)~

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    4026

    瀏覽量

    134044
  • 通信模塊
    +關(guān)注

    關(guān)注

    2

    文章

    174

    瀏覽量

    33780
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    rk3576 android15平臺camera編譯配置都做了什么?

    文件是瑞芯微(Rockchip)Android平臺下相機(jī)子系統(tǒng)的核心編譯配置Makefile,屬于Android Build System的關(guān)鍵組成部分,作用是根據(jù)編譯環(huán)境的動(dòng)態(tài)條件
    的頭像 發(fā)表于 03-06 17:15 ?2951次閱讀
    <b class='flag-5'>rk</b>3576 <b class='flag-5'>android15</b>平臺camera編譯配置都做了什么?

    RK3576 Android15音頻開發(fā)必看:alsa_route核心文件解析與修改場景

    HAL層的核心。今天我們就聊聊: 什么情況下需要?jiǎng)舆@兩個(gè)文件?遇到問題該怎么改? 一、先搞懂:alsa_route到底是什么? 在RK3576 Android15
    的頭像 發(fā)表于 02-26 08:08 ?115次閱讀
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>Android15</b>音頻開發(fā)必看:alsa_route<b class='flag-5'>核心</b><b class='flag-5'>文件</b><b class='flag-5'>解析</b>與修改場景

    深入解析U-Boot image.c:RK平臺鏡像處理核心邏輯

    在瑞芯微(RK)平臺的嵌入式開發(fā)中,U-Boot作為核心的啟動(dòng)加載程序,負(fù)責(zé)完成鏡像解析、校驗(yàn)、加載等關(guān)鍵流程。而image.c正是U-Boot中處理鏡像(uImage)的
    的頭像 發(fā)表于 02-24 16:46 ?1483次閱讀
    深入<b class='flag-5'>解析</b>U-Boot image.c:<b class='flag-5'>RK</b>平臺鏡像處理<b class='flag-5'>核心</b>邏輯

    一文吃透RK平臺OTA升級開發(fā):從邏輯到調(diào)試的完整指南

    ,能讓開發(fā)者高效解決固件更新、功能迭代等問題。本文將從升級邏輯、核心技巧、調(diào)試要點(diǎn)到問題排查,全方位拆解 RK 平臺 OTA 升級開發(fā),附關(guān)鍵流程圖示,助力開發(fā)者快速上手。
    的頭像 發(fā)表于 02-09 16:26 ?366次閱讀
    一文吃透<b class='flag-5'>RK</b>平臺OTA升級開發(fā):從邏輯到調(diào)試的完整指南

    深入解析RK3568引腳控制核心rk3568-pinctrl.dtsi文件的作用與實(shí)踐(可應(yīng)用rk全系列)

    功能的“總開關(guān)”。無論是自定義開發(fā)板適配、外設(shè)調(diào)試,還是性能優(yōu)化,理解這份文件都能讓開發(fā)者少走 90% 的彎路。今天我們就從文件定位、核心作用、硬件映射、引腳復(fù)用邏輯,到實(shí)際開發(fā)中的修改與意義,全方位
    的頭像 發(fā)表于 02-05 14:01 ?871次閱讀
    深入<b class='flag-5'>解析</b><b class='flag-5'>RK</b>3568引腳控制<b class='flag-5'>核心</b>:<b class='flag-5'>rk</b>3568-pinctrl.dtsi<b class='flag-5'>文件</b>的作用與實(shí)踐(可應(yīng)用<b class='flag-5'>rk</b>全系列)

    RK806中斷處理流程深度解析:從架構(gòu)到調(diào)試實(shí)戰(zhàn)

    RK806 作為瑞芯微主流 PMIC(電源管理芯片),其中斷機(jī)制是實(shí)現(xiàn)“電源鍵響應(yīng)、電壓異常保護(hù)、休眠喚醒、 watchdog 超時(shí)處理” 等核心功能的基礎(chǔ)。Linux 驅(qū)動(dòng)基于regmap_irq框架設(shè)計(jì),屏蔽了底層寄存器操作細(xì)節(jié),但調(diào)試時(shí)若不理解中斷
    的頭像 發(fā)表于 02-05 13:46 ?1053次閱讀
    <b class='flag-5'>RK</b>806中斷處理<b class='flag-5'>流程</b><b class='flag-5'>深度</b><b class='flag-5'>解析</b>:從架構(gòu)到調(diào)試實(shí)戰(zhàn)

    RK3576+Android15+Linux6.1調(diào)試EM05 4G模塊全記錄:從底層到上層的踩坑與破局

    )服務(wù)。最近我們在 RK3576 開發(fā)板 + Android15 系統(tǒng) + Linux6.1 內(nèi)核 環(huán)境下調(diào)試EM05 4G 模塊 時(shí),就遇到了從“RIL 起不來” 到 “庫缺失” 再到 “上層功能未開” 的一系列問題。今天就把完整的調(diào)試
    的頭像 發(fā)表于 02-03 15:27 ?1622次閱讀
    <b class='flag-5'>RK3576+Android15</b>+Linux6.1調(diào)試EM05 4G模塊全記錄:從底層到上層的踩坑與破局

    硬核進(jìn)階:RK3576 Android15?驅(qū)動(dòng)與系統(tǒng)開發(fā)實(shí)戰(zhàn)指南

    android15,想與大家探討更多,不僅僅是驅(qū)動(dòng),更包含android其他方面。 各位嵌入式與Android開發(fā)的朋友們,我們的? RK3576
    的頭像 發(fā)表于 01-26 22:29 ?654次閱讀
    硬核進(jìn)階:<b class='flag-5'>RK</b>3576 <b class='flag-5'>Android15</b>?驅(qū)動(dòng)與系統(tǒng)開發(fā)實(shí)戰(zhàn)指南

    深入解析rk平臺Android Bootloader核心代碼:從啟動(dòng)流程到AVB驗(yàn)證

    作為Android設(shè)備啟動(dòng)的第一道“閘門”,Bootloader(以U-Boot為主)承擔(dān)著初始化硬件、加載內(nèi)核、驗(yàn)證鏡像完整性的核心職責(zé)。今天我們拆解Rockchip平臺
    的頭像 發(fā)表于 01-22 07:06 ?287次閱讀
    深入<b class='flag-5'>解析</b><b class='flag-5'>rk</b>平臺<b class='flag-5'>Android</b> Bootloader<b class='flag-5'>核心</b>代碼:從啟動(dòng)<b class='flag-5'>流程</b>到AVB驗(yàn)證

    深度解析SPL階段A/B分區(qū)啟動(dòng):spl_ab.c代碼全拆解

    解析、核心流程、開發(fā)意義三個(gè)維度,徹底拆解這段代碼。 ? ? 一、 A/B 分區(qū)與 SPL 的核心作用 ? ? A/B 分區(qū)將系統(tǒng)分為兩個(gè)獨(dú)
    的頭像 發(fā)表于 01-20 07:07 ?9633次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>解析</b>SPL階段A/B分區(qū)啟動(dòng):spl_ab.c代碼全<b class='flag-5'>拆解</b>

    深入解析RK平臺Android/Linux Bootloader核心文件android_bootloader.c

    參數(shù)組裝等關(guān)鍵工作。(這個(gè)啟動(dòng)流程android和linux共用) 本文將從 文件定位、核心函數(shù)、執(zhí)行流程 三個(gè)維度,
    的頭像 發(fā)表于 01-09 10:58 ?1219次閱讀
    深入<b class='flag-5'>解析</b><b class='flag-5'>RK</b>平臺<b class='flag-5'>Android</b>/Linux Bootloader<b class='flag-5'>核心</b><b class='flag-5'>文件</b>:<b class='flag-5'>android</b>_bootloader.c

    RK3568 NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測Demo,附完整流程與效果

    RK3568 NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測Demo,附完整流程與效果
    的頭像 發(fā)表于 11-10 15:58 ?1073次閱讀
    【<b class='flag-5'>RK</b>3568 NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手帶你用迅為資料跑通<b class='flag-5'>Android</b> AI檢測Demo,附完整<b class='flag-5'>流程</b>與效果

    RK3128 Android 7.1 進(jìn)入深度休眠流程分析

    RK3128 Android 7.1 進(jìn)入深度休眠流程分析RK3128是瑞芯微電子推出的一款低功耗四核Cortex-A7處理器,運(yùn)行
    發(fā)表于 07-22 10:45

    RK3568 EVB開發(fā)板 深度休眠與快速醒的工作流程

    RK3568 EVB開發(fā)板關(guān)于深度休眠和喚醒流程的分析
    的頭像 發(fā)表于 07-22 09:49 ?865次閱讀
    <b class='flag-5'>RK</b>3568 EVB開發(fā)板 <b class='flag-5'>深度</b>休眠與快速醒的工作<b class='flag-5'>流程</b>

    Nginx核心功能深度解析

    Nginx核心功能深度解析
    的頭像 發(fā)表于 05-09 10:50 ?891次閱讀