Linux内存管理
未读
cad55c19437dff6466565c2c670ecc36de31a5fd31d374d378f51b924ced8fb2d55a786ed4ac6f5cf1b39cb0dea29d16fd53172fdff348a2b3d654c3d4d4338a7f20b4affd72c796ac98f493b00348cb67470a1e87672c1cf32817919d82e029ed7e4abcad416b3250c0d57f0c0342bec99adce15507bbbb4d2e182f16358f5255dd89ef989adbff70db853373b3247afe2bacd7ef5c3e438eac2e470993bf5e88755bee249ad7458ae26a2cc263bab80107d01400656909693c7ec2c5a6c1a1632233cbe1b07c46ad042ab70cf67631c71a5144a7539f662c3356d955fbe652af0f750ad234726f42550d761acec9cadb8e9f4727add715c ...
4ae1767d2d6e5d470c4dc8abfd84ef6f0fd9e1248a79b79317de4e91ab3d089e3538f61b895b1fdd6fa4f4ba07f6be3907f602c68041046091a69bffb2ed39e88c3ee5326b3459936f37054d3b24e981295116434272cec301bbbb43f252c06e742bb6cd0ddf7e535d2ebdb0e8e19e079e4cea6abd395ad9bb3175f0011b9e8fa3015dc95e259d0cadcc94608bfd93deaed767a47b909d654784482e23fb6e9ca0b49e641bec3abcca8a9cb30580e93bcdf77e3e09143d2e1078e1812bcaa0f493dbe9ac45b0acbbd09f1165fc9ac39e1386a33b15978729fa225505140eb00d789dcba6c74fda8f7d1fe2aa884e3488da66fad63265a7709 ...
Linux内存管理
未读
9566bc73a4f46a45ef2708352421383ac46764083d6d3e4b82062fda8efa09036b4c507ad2f411e7b505e5eb3d0e745f569878c9385b7d1061ed48e6dc2091a165c907d4fb5400a307b20cf0ec28ab62f9c0d2c954adfef321873bef3ba384dab2b37969cc92ee7468f82f338b31557d61c903809db3bed260c5c11255a65d5af7cb013ce9414041dcf93c4ad37b75f0046cd629e535aebd107e3263189f305fdf71b1e3d3d9edff9b67af74c00a2d09cf732297b36dac3a16403b674fb335b6d8e2195d766d07df766b4dea209953516e7a3c7520aea3b0a6447ec6f983de7a3b9d39f4028da71e12ee8cbd12f25d3599ae0c5febac34705 ...
Linux内存管理
未读
faf0e123ec18af5e14f387e6f70d8c8825f1a8b8a2cac09e376803b2ea42f9eb8bf671115e1e382e375d0905b2f87a8fcb844298ff1af419c017a7917e3e8c4acf49289006cd25f87e428bbca4add7524009d00e54cd7e65b8b9b98f7068d08d1103bbf191e3c5148b5d61e9516a043004444c92322eccc853b6e750606aad578a765e433fe4aaf696944b553a8bfb2bc9f25900f7c580dd28040743c71dad1618b014e92d925e7e24a1032f1bcd939400ad18fe6523b15d2977b9dfe0fd7d55d7feddc6c3b5363a12ada21446a593897bffd9e831cbb64d0875eb5b7662f866d35169c66ef2edbdafc0c15f7d3691cae8cabeede4ac5ed06 ...
技术分享
未读
一、ACK代码下载123mkdir android-kernel && cd android-kernelrepo init -u https://android.googlesource.com/kernel/manifest -b BRANCHrepo sync
如需查看可与之前的“repo init”命令搭配使用的 repo 分支 (BRANCH) 列表,请参阅内核分支及其构建系统
本文将以android15-6.6的内核代码为例作为演示:
123mkdir android-kernel && cd android-kernelrepo init -u https://android.googlesource.com/kernel/manifest -b common-android15-6.6repo sync
二、ACK编译2.1 使用 Bazel (Kleaf) 构建1tools/bazel build //common:kernel_aarch64_dist
2.2 使用 build.sh(旧版)构建1build/build.sh ...
Linux内存管理
未读
e84e375fc2b94168d3536660a79ff2784c525d9d035672d0cf5f91754e39c52ac11a229b0e35f03a0682179c02749d06ac3f847ef86f7be57399b49f9da6a897499c76ad2a4362d459f26257d9900c29167cdb8741a78390585be5e2d0f86c839f18a5d9f6c603a6c6c52b84f9af49be34682adfd2b3e6c1b7d42726d43913ee53130900ddc3fa961c0e088809957d101fc8586c3d78933abbd7c8b6ec16aa60533c4393a0e5fd84049306a61471ba56711fee8e429eb573f5a27701ca4dc3ac1cebf2c99375b97157a50b577062fc20dce33e62dc1c99d28f43522ba1f8750684856cad8832d4b6dfbbe769a6fef426e045cd4d0a49b4466 ...
Linux内存管理
未读
f804d58129937b677177bb5065438d3c5b158358d77db4e5f374e2800909bfefe175796b06ceca223eed79562cc102f243c5a0b154bdf537249c66fdba7a8a1c0fdfd4fad3fdc24bde0128f6359825d324a742b6a54c9f9101ddbe59ddae584cccbf823617cf71be466f65f3d6515c8eae30d397ed5aa6a007114181b173b377bad21e27643e701d3c356e1b8d6b7844b96d015516909e6feee825bb2d10e4df9a7c043a3f55ef547f171fe6900552041ae1bb3fe11b4cd71cffc27898ac906308234d1562cb396193f87005841c9f50dfda7bceec33d9c755e4a551a6ee6bfb3daa800c13f31f141091749f18272c3b1c4490ec3fc0744e1 ...
一、为什么选择搭建博客网站?在数字时代,拥有一个属于自己的博客网站不仅能展示个人才华,还能作为分享生活、交流思想的平台。我个人在工作和学习中记录了一些零散的知识点,目前是通过notion以及飞书知识库进行记录。到了现阶段,本人更希望将自己所学习到的这些零散的知识点汇总,输出一些高质量的文章,供自己总结学习,也方便分享给他人。
博客的框架有很多比如hugo,typecho,以及大名鼎鼎的wordpress等等。那为什么选择hexo这个框架呢?因为自己之前玩过😆 ,相对于其他的博客框架学习成本,我更想专注于博客文章的质量,而不是再花时间精力去学一门新的框架。
Hexo 是一个快速、简洁且高效的博客框架。 Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
对于想要拥有自己的博客网站但又不想花费大量时间和金钱的人来说,Vercel和Hexo无疑是最好的选择。Vercel是一款强大的静态网站托管平台,而Hexo则是一款流行的开源博客框架。通过结合两者的优势,您可以轻松搭建一款外观精美、功能丰富的博客网站。
通过本文的指引,将了解到如何零成本 ...
一、make
以高通的代码为例,高通在编译时使用如下的指令进行编译,实质是对make的封装
12./build.sh --target_only
在执行一系列check的函数后,最终调用make执行执行编译。而make函数是在build/envsetup.sh时声明。
从get_make_command函数可知,make后,真正然后执行编译的入口是:build/soong/soong_ui.bash
二、soong_ui.bash
source microfactory.bash,得到一些函数命令, 例如:soong_build_go
编译/build/soong/cmd/soong_ui/main.go,生成 out/soong_ui这个可执行程序
执行命令:out/soong_ui –make-mode ,执行了make命令,会把”build/make/core/main.mk” 加到构建环境中,同时启动kati、blueprint-soong ...
一、概述在 Android 7.0 之前,Android 编译系统使用 GNU Make 描述和shell来构建编译规则,模块定义都使用Android.mk进行定义,Android.mk的本质就是Makefile,但是随着Android的工程越来越大,模块越来越多,Makefile组织的项目编译时间越来越长。这样下去Google工程师觉得不行,得要优化。
因此,在Android7.0开始,Google采用ninja来代取代之前使用的make,由于之前的Android.mk数据实在巨大,因此Google加入了一个kati工具,用于将Android.mk转换成ninja的构建规则文件buildxxx.ninja,再使用ninja来进行构建工作。
编译速度快了一些,但是既然要干, 那就干个大的,最终目标要把make都取代,于是从Android8.0开始,Google为了进一步淘汰Makefile,因此引入了Android.bp文件来替换之前的Android.mk。
Android.bp只是一个纯粹的配置文件,不包括分支、循环语句等控制流程,本质上就是一个json配置文件。Android.b ...