Android AOSP源码编译——AOSP整编(二)

切换到源码目录下执行下面命令

1、初始化环境

. build/envsetup.sh
//清除缓存
make clobber

2、选择编译目标

lunch

AOSP 预制了很多 Product。这里为了简单我们先不用真机,而是选择模拟器的方式,对于 x86_64 模拟器,我们选择的是 aosp_x86_64-eng。
lunch命令回车后会让你选择编译目标,我们选31(aosp_x86_64-eng)

maoweiyi@maoweiyi-OMEN-by-HP-Laptop-15-dc0xxx:~/aosp$ lunchYou're building on LinuxLunch menu... pick a combo:1. aosp_arm-eng2. aosp_arm64-eng3. aosp_barbet-userdebug4. aosp_blueline-userdebug5. aosp_blueline_car-userdebug6. aosp_bonito-userdebug7. aosp_bonito_car-userdebug8. aosp_bramble-userdebug9. aosp_car_arm-userdebug10. aosp_car_arm64-userdebug11. aosp_car_x86-userdebug12. aosp_car_x86_64-userdebug13. aosp_cf_arm64_auto-userdebug14. aosp_cf_arm64_phone-userdebug15. aosp_cf_x86_64_phone-userdebug16. aosp_cf_x86_auto-userdebug17. aosp_cf_x86_phone-userdebug18. aosp_cf_x86_tv-userdebug19. aosp_coral-userdebug20. aosp_coral_car-userdebug21. aosp_crosshatch-userdebug22. aosp_crosshatch_car-userdebug23. aosp_flame-userdebug24. aosp_flame_car-userdebug25. aosp_redfin-userdebug26. aosp_sargo-userdebug27. aosp_sunfish-userdebug28. aosp_trout_arm64-userdebug29. aosp_trout_x86-userdebug30. aosp_x86-eng31. aosp_x86_64-eng32. arm_krait-eng33. arm_v7_v8-eng34. armv8-eng35. armv8_kryo385-eng36. beagle_x15-userdebug37. beagle_x15_auto-userdebug38. car_x86_64-userdebug39. db845c-userdebug40. fuchsia_arm64-eng41. fuchsia_x86_64-eng42. hikey-userdebug43. hikey64_only-userdebug44. hikey960-userdebug45. hikey960_tv-userdebug46. hikey_tv-userdebug47. pixel3_mainline-userdebug48. poplar-eng49. poplar-user50. poplar-userdebug51. qemu_trusty_arm64-userdebug52. silvermont-eng53. uml-userdebug54. yukawa-userdebug55. yukawa_sei510-userdebugWhich would you like? [aosp_arm-eng] 31

3、编译

选择好编译目标,通过下面命令进行编译

//通过-jN 参数来设置编译的并行任务数,提高编译速度
make -j4

2000 years later~

在这里插入图片描述看到build completed successfully就代表我们构建成功了。
接下来运行模拟器

运行模拟器

emulator

因为我们是刚编译, 执行过envsetup脚本和lunch,否则需要先执行这两条命令

. build/envsetup.sh
lunch 31
emulator

备注:在启动模拟器的时候遇到了磁盘空间不足,我看了下整个AOSP文件夹占用了我200多G,其中隐藏文件.repo占用了50G,考虑了下因为是学习后期不使用repo
sync同步更新代码,所以就给删除了。

在这里插入图片描述
到这里我们的模拟器就成功运行起来了

4、修改代码运行

最后我们尝试下修改我们的Activity.java,重新编译看看有没有生效。可以通过find -name "Activity.java"命令找到我们的Activity.java

在这里插入图片描述
找到后给Activity.java的onCreate加一行日志打印。
在这里插入图片描述 修改后保存,重新编译

. build/envsetup.sh
lunch 31
make -j4

编译成功再次运行模拟器

. build/envsetup.sh
lunch 31
emulator

打开终端 通过adb shelllogcat 命令查看日志
在这里插入图片描述adb shell 的配置可自行百度。
点击模拟器中几个app后日志结果日下
在这里插入图片描述可以看到我们修改的代码确实生效了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/66713.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑马项目一阶段面试 项目介绍篇

我完成了一个外卖项目,名叫苍穹外卖,是跟着黑马程序员的课程来自己动手写的。 项目基本实现了外卖客户端、商家端的后端完整业务。 商家端分为员工管理、文件上传、菜品管理、分类管理、套餐管理、店铺营业状态、订单下单派送等的管理、数据统计等&…

LabVIEW使用边缘检测技术实现彩色图像隐写术

LabVIEW使用边缘检测技术实现彩色图像隐写术 隐写术是隐藏信息的做法,以隐瞒通信的存在而闻名。该技术涉及在适当的载体(如图像,音频或视频)中插入秘密消息。在这些载体中,数字图像因其在互联网上的广泛使用而受到青睐…

Dynamic Web TWAIN Crack

Dynamic Web TWAIN Crack 文件编辑 提供 GUI 和非 GUI 图像编辑器 内置基本图像编辑界面,如旋转、裁剪、镜像、翻转、擦除和更改图像大小 支持向图像添加彩色矩形 支持文字注释 提供图像交换功能 支持清除图像的指定区域并用颜色填充清除的区域 内置变焦 提供多图像…

机器学习笔记之优化算法(十二)梯度下降法:凸函数VS强凸函数

机器学习笔记之优化算法——梯度下降法:凸函数VS强凸函数 引言凸函数:凸函数的定义与判定条件凸函数的一阶条件凸函数的梯度单调性凸函数的二阶条件 强凸函数强凸函数的定义强凸函数的判定条件强凸函数的一阶条件强凸函数的梯度单调性强突函数的二阶条件…

MySQL库的操作

文章目录 MySQL库的操作1. 创建数据库2. 字符集和校验规则(1) 查看系统默认字符集以及校验规则(2) 查看数据库支持的字符集和校验规则(3) 案例(4) 校验规则对数据库的影响 3. 查看数据库4. 修改数据库5. 删除数据库6. 数据库的备份和恢复(1) 备份(2) 还原 7. 查看连接情况 MySQ…

Centos 从0搭建grafana和Prometheus 服务以及问题解决

下载 虚拟机下载 https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/17_0 cenos 镜像下载 https://www.centos.org/download/ grafana 服务下载 https://grafana.com/grafana/download/7.4.0?platformlinux …

「快学Docker」开启容器化时代的利器

「快学Docker」开启容器化时代的利器 引言背景和概述背景概述 容器化技术的兴起和应用场景Docker的基本概念与组成部分 安装和配置Docker环境Docker的安装方法 Docker的基本使用Docker命令行工具介绍 总结Docker的优势与挑战 引言 背景和概述 Docker是一个用于构建和管理应用程…

Ajax 笔记(四)—— Ajax 进阶

笔记目录 4. Ajax 进阶4.1 同步代码和异步代码4.2 回调函数地狱4.2.1 解决方法一:Promise 链式调用4.2.2 解决方法二:async 函数和 await 4.3 Promise.all 静态方法4.4 事件循环4.4.1 事件循环4.4.2 宏任务与微任务 4.5 案例4.5.1 案例一-商品分类4.5.2 …

echarts-convert.js使用

echarts-convert.js demo 点击下载 1、本地安装phantom.js插件 点击下载 2、更改文件路径 (D:\phantomjs-2.1.1-windows\bin)改为本地项目文件路径 3、打开cmd命令行,并格式化语言 运行以下命令 将命令行语言改为中文简体 chcp 65001…

QT的界面切换

QT的界面切换 步骤一: 创建一个新的 ui 界面

Spring事务

hi,大家好,今天为大家带来Spring事务相关介绍 🧊1.为什么要学事务 情景假设:疯驴子给王麻子转账100万,点击转账以后,界面突然黑屏了,那么疯驴子不知道王麻子收到钱还是没收到,所以转账和收款全部都一起成功或者一起失败,这就是事务的作用,保证了数据的完整性和一致…

HTTP和HTTPS协议

目录 一、HTTP和HTTPS区别🌻 二、有了https还有使用http场景吗🍊 三、https协议的工作原理💥 四、https协议的优点和缺点🍞 一、HTTP和HTTPS区别🌻 HTTP(Hypertext Transfer Protocol)和HTT…