gn脚本
㈠ 最简最全,一文搞定Android WebView编译+AOSP集成
对于Android开发者来说,Android WebView是不可或缺的内置组件,它提供了一键可用的网页浏览功能。然而,WebView作为系统组件,其版本更新受限于系统级别的开发,可能导致HTML5、ES、CSS特性支持不足。本文将详细介绍如何从Chromium源码编译定制WebView,以及如何集成到AOSP系统中。
首先,确保你已经下载并配置好Chromium源码。编译时,使用gn命令生成args.gn文件,其中需新增system_webview_package_name选项来设置自定义APK包名,特别注意不同Android版本的WebView包名差异。编译目标有三种:system_webview_apk(适用于5.0及以上,独立APK)、monochrome_public_apk(包含WebView和Chrome,适用于自开发系统)和trichrome_webview_apk(适用于Android 10+,采用aab拆分)。
编译完成后,根据目标选择对应的APK,如system_webview_apk将生成一个SystemWebview.apk,包内包含WebView DevTools,用于调试。通过修改args.gn文件中的包名,确保与系统预装WebView的版本一致。如果在非AOSP系统中,可能需要使用adb或其他工具检查并修改包名。
在编译过程中,还需注意在系统中卸载预装的WebView以避免签名冲突。使用adb脚本进行一键卸载,然后将编译好的APK安装到设备,可能还需修改WebView提供者以指向新安装的版本。
对于AOSP集成,虽然预编译的WebView在AOSP中可用,但建议使用自编译的最新稳定版。根据目标Android版本选择合适的Chromium稳定版代码,并注意兼容性问题。编译正式发布版本时,需设置is_official_build和proprietary_codecs等选项,同时考虑视频编解码的许可证问题。
最后,对于私有签名、包名修改、系统镜像集成以及Android框架的修改,都有详细的步骤和注意事项。编译WebView并成功集成到AOSP后,可以确保为用户提供最新、定制化的浏览器体验。
㈡ 如何快速切换和管理node版本
如何下载node不要下载最新版,推荐先下载稳定版的https://nodejs.org/zh-cn/download/,下载完一键式安装即可,安装完成后,命令行查看是否成功。
node有一个模块n,是专门用来管理node.js的版本的。npm是用来安装n的包管理工具,前端很多工具都可以通过npm来发布,而n是专门用来对node进行版本管理的。
安装模块和指定node版本
#安装模块sudonpmi-gn#安装node指定版本sudon12.13.0n模块常用的一些指令
#升级到稳定版sudonstable#升级到最新版sudonlastest#切换使用node版本sudon12.13.0#删除某个node版本sudonrm12.13.0#用指定版本执行脚本sudonuse12.13.0some.js查看已安装node列表并切换
n安装nvm
curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh|bash#orwget-qO-https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh|bash常用nvm命令
#安装指定node版本nvminstallv14.15.0#运行指定node版本nvmusev14.15.0#切换到最新的node版本nvmusenode#远程服务器上所有的可用版本nvmls-remote#给不同的版本号设置别名nvmaliasnode_cms14.15.0#使用该别名nvmusenode_cms#查看已安装node列表nvmlsnvm和n的区别node版本管理工具还有一个是TJ大神的n命令,n命令是作为一个node的模块而存在,而nvm是一个独立于node/npm的外部shell脚本,因此n命令相比nvm更加局限。
由于npm安装的模块路径均为/usr/local/lib/node_moles,当使用n切换不同的node版本时,实际上会共用全局的node/npm目录。因此不能很好的满足‘按不同node版本使用不同全局node模块’的需求。
注意事项1、npm的版本跟着node的版本走,所以无需在安装npm