官方源码
首先安装编译环境,ubnutu16.04,然后安装
安装编译环境
sudoapt-get install build-essential asciidoc binutils bzip2 gawk gettext gitlibncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtplibssl-dev texinfo libglib2.0-dev
建立工作目录
mkdir lede
进入工作目录
cd lede
下载源码
进入源码目录
cd source
修改内容如下:
1、
/source/target/linux/bcm53xx/image/Makefile文件尾部(最后一行依然在最后)添加如下内容
defineDevice/phicomm-k3
DEVICE_TITLE:= PHICOMM K3
DEVICE_PACKAGES:= $(BRCMFMAC_4366C0)$(USB3_PACKAGES) phicommk3-firmware k3screenctrl
IMAGES :=trx
endef
TARGET_DEVICES+=phicomm-k3
2、此部分用了Hill-98的无线部分,编译完成后/lib/firmware文件夹下有对应的驱动
复制LEDE-source/package/firmware/phicommk3-firmware文件夹到
source/package/firmware/phicommk3-firmware
3、此部分用了updateing的屏幕显示部分
复制lede/package/utils/k3screenctrll文件夹到source/package/utils/k3screenctrl
2. 使用CEF(三)— 从CEF官方Demo源码入手解析CEF架构与CefApp、CefClient对象
在《使用CEF(2)— 基于VS2019编写一个简单CEF样例》中,介绍了使用简单样例进行CEF(Common Engineering Framework)编程,其中涉及到了CefApp、CefClient等类。本文将深入解析这些概念,以及CEF的进程架构。
CEF3使用多进程模型,主进程负责窗口创建、绘制和网络访问,被称为“浏览器”进程。通常与宿主应用程序进程相同,多数应用逻辑在浏览器进程中执行。渲染和JavaScript执行在单独的“渲染”进程中进行。一些应用逻辑,如JavaScript绑定和DOM访问,在渲染进程中执行。默认情况下,每个唯一源(scheme + domain)运行一个新渲染进程。根据需要,还会生成插件进程处理Flash等,以及GPU进程处理加速合成。
浏览器进程(Browser Process)负责创建窗口和渲染HTML内容。渲染进程(Renderer Process)则执行Blink渲染和JavaScript执行。两者分别运行,确保高效率的多任务处理和资源管理。
在官方提供的Demo(cefsimple)中,将从源码解析Cef概念,重点是CefApp和CefClient。CefApp接口提供进程特定回调访问,CefClient接口提供浏览器实例特定回调访问,一个CefApp实例对应一个进程,CefClient实例可以共享多个浏览器实例。
cefsimple示例代码展示了如何创建CefApp和CefClient实例,并通过它们管理浏览器进程和渲染进程之间的交互。CefApp实例通过GetBrowserProcessHandler和GetRendererProcessHandler方法获取相关处理器。CefClient实例则用于处理浏览器实例间的事件回调,如生命周期变化、显示事件等。
通过理解CefApp和CefClient的作用,可以更好地掌握CEF架构及其在实际应用中的应用。官方文档提供了更深入的指南和详细信息,推荐进一步学习。