首页
Web Coding Tech
取消

WebCoding.tech-考古学

一、概述 2017年,我使用typecho搭建了一个博客 https://blog.jkdev.cn,断断续续更新,也换了好几次服务器。 2023年1月18日,我使用jekyll全新创建此博客,并将旧博客的文章迁移过来,托管在github上。现在已经使用了全新的域名 webcoding.tech。 我一直认为,自己是一个热爱技术,走在技术成长之路上的人。在这条路上,我遇到过很多启发和见...

用Rust和Pingora轻松构建高效负载均衡器

目录 什么是Pingora? 实现过程 初始化项目 编写负载均衡器代码 代码解析 部署 总结 1. 什么是Pingora? Pingora 是一个高性能的 Rust 库,用于构建可负载均衡器的代理服务器,它的诞生是为了弥补 Nginx 存在的缺陷。 Pingora 提供了丰富的功能和高度的扩...

一天为用户节省434年握手时间!Rust编写的Pingora凭什么力压Nginx?

Pingora简介 作为一个对 Rust 语言和新兴技术充满兴趣的开发者,我最近了解到一个令人振奋的项目——Pingora。 这是 Cloudflare 使用 Rust 构建的全新 HTTP 代理,意在替代Nginx。Pingora 每天处理超过1万亿个请求,不仅大幅提升了性能,还为客户带来了许多新功能,同时只需以前基础架构的三分之一CPU和内存资源。本文将为大家介绍 Pingora 的...

Linux的文件IO操作

一、概述 在计算机中,一切数据以文件的形式进行管理,我们先了解文件的概念。 文件是具有名称的一组相关数据的有序集合,Linux中一切皆是文件,包括目标和设备。在Linux中,为了方便管理,设备也看成文件。文件结构是文件存放在磁盘等存储设备上的组织方式,主要体现在文件和目录的组织上。 Linux的文件结构是一棵倒长的树结构,根目录下包含了多个核心的系统目录。如下图 普通用户登录Li...

初识POSIX:理解和使用可移植操作系统接口

一、POSIX 简介 POSIX(Portable Operating System Interface)是由IEEE制定的一系列与操作系统相关的标准。POSIX标准定义了应用程序接口(API),命令行shell和工具的统一接口,以保证软件的可移植性,使程序能够在不同的类Unix操作系统之间更容易地移植和运行。POSIX标准涵盖了进程管理、文件操作、输入输出、信号处理、线程管理等多个方面。...

使用Android Studio开发Android系统应用

一、概述 在实际开发中,大多数情况是使用AndroidStudio来开发Android系统应用,本文将介绍如何使用AndroidStudio开发Android系统应用。 二、开发步骤 2.1 编译framework Android系统APP可以使用很多隐藏的API,所以需要从AOSP源码中把包含隐藏API的jar包编译出来。首先进入源码目录,执行如下命令: source build...

在AOSP中添加系统APP

一、新建APP项目 我们使用Android Studio 3.6.3版本新建一个空的APP项目,因为该版本是Android 10 r41发布之后的版本,适合用于基于Android 10的APP开发,Android Studio 历史版本下载地址为:https://developer.android.google.cn/studio/archive 新建的APP基本信息如下如所示: ...

在AOSP中添加二进制可执行程序

一、概述 要在AOSP源码中添加二进制可执行程序,需我们需要知道以下几个目录 /system /vendor /odm /product 同时需要知道Android硬件产品(电视、手机、平板)开发的常规流程如下: Google 开发和迭代 AOSP + Kernel 芯片厂商,针对自己的芯片特点,移植 goo...

在AOSP中添加Product

一、概述 在编译系统的时候,我们需要执行 lunch 命令,来选择编译的 product。在APP开发中,一份源码可以编译出多个不同的渠道包,而在编译系统中,我们通过 lunch 命令来选择编译的 product。product存在的作用是使用同一份源码通过不同的配置文件,来编译成不同的镜像,最终用于不同的硬件产品。 二、product配置文件 2.1 product 文件 prod...

手把手教你编译和调试AOSP源码

一、下载AOSP源码 在开始之前,我们先安装编译AOSP需要的一些系统基本依赖,如下命令 sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x1...