
aosp环境搭建
文章平均质量分 85
千里马学框架
安卓架构师,安卓技术专家,android framework
展开
-
车载开发之aaos 13/14源码环境之模拟器编译详细步骤
在前面学习android framework开发时候,搭建ubuntu系统上源码环境时候都是以手机为主,还没有专门针对车机模拟器的编译进行详细的介绍,虽然二者其实差异就一个lunch目标及一个emulator的差异点,所以前面也没有针对aaos的车机模拟器编译专门写文章,但是近来比较多学员朋友都有问到了车机模拟器的编译相关文章有没有,这里干脆给大家拿老文章修改一下专门针对车载aaos相关模拟器编译。更多framework干货请关注“千里马学框架”修改根目录的~/bin/repo文件。原创 2025-06-03 00:01:37 · 510 阅读 · 0 评论 -
aosp系统定制之如何高效的裁剪系统?
经常在企业做一个设备产品时候,都会有需要对原生的aosp进行相关的定制,定制中有一个很重要功能就是裁剪掉系统的很多没有用的模块,只留下自己最核心的一些模块。核心思路就是确定要删除的目标名字,去相关的devices或者build目录进行grep名字,然后找到对应的PRODUCT_PACKAGES列表,从列表中删除对应的目标。接下来的核心部分就是在mk中读取txt中这些要删除的目标,然后把这些目标赋值给一个全局PRODUCT_DEL_PACKAGES变量的变量。正常原生代码有很多个模块都集成的情况。原创 2025-04-28 00:33:36 · 481 阅读 · 0 评论 -
system.img无法打包非PRODUCT_PACKAGES目标解析
不过在文件查找发现并没有我们新编译的目标没有加入PRODUCT_PACKAGES的文件,所以基本上我们就可以断定,aosp15相比aosp14就是在打包img时候,多了这个file_list.txt文件作为过滤依据,在打包img文件时候就是只会打包只有在file_list.txt文件中的,不在文件中也就不会打包。明显多了了个文件file_list.txt和file_list.txt.rsp,这里其实主要就是看file_list.txt文件既可以,可以看看它的内容。c.通过前置过滤机制保障输入目录纯净度。原创 2025-04-25 10:10:19 · 772 阅读 · 0 评论 -
aosp15 VSCode调试 native程序完整笔记
对于代码调试,原来也只实战讲解过Java代码在Android Studio进行Debug,虽然Debug不适用于所有场景,但是在分析源码堆栈,调用关系时候还是非常有作用,所以学员朋友们也一直希望native 代码也有很方便的调试Debug方法,可以看到native代码的调用堆栈,这样也可以大大提高native代码的分析效率。这个报错暂时也没深入查找原因,重启模拟器设备后,重新调试就好了,大家也可以尝试重启。c++/c部分代码 ---->使用VSCode进行代码查看。在开启调试过程中发现偶尔会出现如下报错。原创 2025-04-16 16:33:45 · 473 阅读 · 0 评论 -
Android.mk和Android.bp同时需要定义一个目标怎么办?
如果Android.bp和Android.mk同时存在情况下,什么也修改,那么会怎么样呢?明显报错already defined ,这个其实完全可以理解,因为Android.bp和Android.mk都同时哟定义目标linux_thread。所以Android.mk和Android.bp要同时存在的话,必要考虑解决重复定义的问题,即一套代码只能允许一个生效,要么是Android.mk生效,要么Android.bp生效。原创 2025-04-14 12:50:55 · 827 阅读 · 0 评论 -
Android.bp中添加条件判断编译方式
面临上面要适配多个机型差异的问题,大家可能第一时间会想到用不同的代码分支不就行了么,但是大家注意如果用不同的代码分支同时意味着每个分支的代码你都需要进行维护,维护工作量极大,也就是经常可能修改了一个bug,做了一个新需求,你不得不同步一遍到多个分支,这样一旦机型多了,差异多了,你的维护成本会越来越多。情况2:代码编译依赖api或者库都有差异,即会有编译上的差别情况,那么这种就一定需要通过Android.mk,Android.bp中进行相关的条件判断才可以。案例1:使用不通过的依赖代码文件夹。原创 2025-04-11 12:42:15 · 1039 阅读 · 0 评论 -
Ninja,Kati,Soong等知识深入扫盲
最开始,Ninja 是用于Chromium 浏览器中,Android 在7.0 中也引入了Ninja,因为随着Android系统和应用程序的增长,这种构建方式变得越来越慢,尤其是在大型项目中。为了解决这个问题,Google开始引入新的构建系统来提高编译速度和效率。Ninja是一个小型的、专注于速度的构建系统,最初由Google的程序员Chris Manson开发,最初用于加速Chrome浏览器的构建过程。Ninja的设计思路简化构建过程,通过精确指定输入和输出关系,实现快速增量构建。原创 2025-04-07 01:27:57 · 771 阅读 · 0 评论 -
自由开发者aosp源码修改部分如何提交保存上传服务器?-记录AI帮助我们实现过程
虽然AI无法完美满足你的实战需求代码,但是AI确实可以给你生成一个基本上可以用的成品代码,这个已经最少帮你节省了%70以上时间了,万事开头难,AI都帮助你开好了头,也帮你实现了一个基本可用的代码,你只需要在这个基础上改善完善他的功能,修复一些bug既可以,所以AI完全替代程序员这个事情是不太存在的,但是AI可以大大提升我们每个程序员的开发效率,让AI做出一些基本可用的模块类工作,节省我们大量的时间成本,我们程序员注意力集中在更高难度的一些AI无法实现需求和bug上。下面介绍2种常见方案来解决该痛点。原创 2025-04-01 11:25:58 · 1034 阅读 · 0 评论 -
android studio调试aosp手机userdebug版本无法查看局部变量和参数问题如何解决?
针对上面的问题,大家第一反应可能会说,既然eng版本没有问题,那么是否可以考虑编译一个整体eng的包不就行了?这种方法其实有条件情况下确实是一个最省事方法,但是很多时候出版本的不一定是自己,大家可能都是取公司编译好的版本用,然后修改自己模块push进去就行,所以很多时候不一定有完全eng的大版本可以使用。因为我们都是使用模拟器居多,模拟器编译的版本一般都是eng版本,所以没有这个同学问题,针对这样一类问题一般都是可能和自己的手机设备版本类型有关系,这个有问题版本确定是一个userdebug版本。原创 2025-03-28 13:37:56 · 622 阅读 · 0 评论 -
安卓15/aosp15/lineage21使用brunch编译老是报错OOM内存不足
原理:因为breakfast,brunch其实属于lineage os自定义的函数帮助我们包装了一些操作而已,本身aosp是没有的,lineage os本质还是基于aosp的,所以自然aosp的所有编译命令也可以正常使用。1、物理解决方法,直接增加内存条,把内存变成64G,这种方式可能最简单啥也不需要改变,不过很多同学可能也有条件限制不一定可以,比如内存插槽不够,或者是内存条贵。2、增加swap虚拟内存,这种方法也是可以的,但是也需要消耗相关的硬盘空间等,需要重新扩展swap。原创 2025-03-19 16:22:12 · 631 阅读 · 0 评论 -
小米手机解锁刷lineage os踩坑记录
学习framework课程时候,很多学员朋友问我是否需要买开发板啥的,我经常建议买个便宜二手小米手机然后刷开源的lineage os系统既可以,这样做的性价比最高,二手小米手机等价钱较低,而且还可以刷入有系统源码的lineage系统。但是针对小米手机的解锁部分,很多同学都发现有点难搞,经常还需要去花钱请求淘宝外援10-20块来远程控制帮忙解锁,今天针对小米手机的解锁到刷入lineage系统来手把手指导。注意如果解锁失败一般会有相关的提示,主要就是账号要绑定,要插入sim卡等,这些步骤不能少。原创 2025-02-11 08:00:00 · 1751 阅读 · 0 评论 -
Ubuntu20.04编译安卓aosp 15源码编译到模拟器运行
aosp15也开始悄悄在各个手机厂商开始酝酿了,感叹时间很快,今天也准备针对aosp15进行一下源码环境的搭建,整体aosp15的搭建和13/14其实没啥大的差别,只不过在lunch目标这个地方确实很大不同,还有就是模拟器启动后的大小不太合适。那么第一部分的Product是如何确定的,这里怎么就知道是sdk_phone64_x86_64,而不是以前的sdk_phone_x86_64。第一部分:aosp_cf_x86_64_phone这个是可变的,需要根据我们自己情况选择,具体怎么选稍后说。原创 2024-10-20 00:30:29 · 3868 阅读 · 2 评论 -
aosp源码导入android studio无法跳转-学员答疑
这里可以看到其实自带excludeFolder目录很少,其实对于我们来说主要就只需要framework,packages目录既可以,所以这里大家可以自己添加较多的excludeFolder,具体看下面我的iml源码,大家可以参考我的来。可以看到orderEntry其实就是依赖顺序,一大堆的jar等排在sourceFolder前面,所以这个就是跳转不了的根源,这里大家可以把 前面的orderEntry全部删除。具体详细iml文件可以直接下载和你原生编译进行对比然后修改,偷懒也可以直接使用我提供的。原创 2024-08-21 11:08:02 · 1753 阅读 · 0 评论 -
aosp13/aosp14编译模拟器emulator的kernel源码(保证通过运行,拒绝水文)
明显看到分区无法加载等,这个就是只编译kernel想只替换kernel既可以的情况,就是virtio_blk.ko的报错,无法进入android,主要原因还是模拟器自带的virtio_blk与我们编译kernel是不兼容的,这个接下来还需要编译相关Virtual的ko。可以看到有bzImage和一堆的ko等文件,这里的 bzImage其实就是我们的kernel,难道直接就可以拿这个bzImage去运行了么。这里是6.1的kernel,那么就知道我们应该选着6.1的版本。原创 2024-08-12 17:29:08 · 1731 阅读 · 0 评论 -
aosp12/13/14模拟器如何进行单模块更新-安卓Framework开发实战小技巧
1、单模块编译更新,需要我们对自己模块修改后编译生成对应的so,apk,jar很熟悉,这样我们才可以考虑单模块编译push,如果不清楚的话请大家还是整编最为保险,以防出现不生效啥的情况2、每次启动模拟器要带上emulator -writable-system,而且第一次adb remount要进行重启生效更多framework详细代码和资料参考如下链接其他课程七件套专题:点击这里更多framework假威风耗:androidframework007。原创 2024-08-11 16:07:22 · 1117 阅读 · 0 评论 -
ubuntu 20.04 aosp 13/14/android s/android T/android12/android13 build
这里repo时候如果不指定分支就是默认master分支,master可能不稳定,最好末尾加上 -b android-13.0.0_r6。原创 2021-11-18 22:27:18 · 10511 阅读 · 5 评论 -
安卓/aosp14上userdebug版本无法进行as调试debug问题
模拟器其实并不是persist.debug.dalvik.vm.jdwp.enabled控制的,哪怕模拟器上这个属性设置0,也一样是可以见到debug的所有进程。这个就需要进一步看看,难道是14模拟器目标默认编译persist.debug.dalvik.vm.jdwp.enabled就是为1?注意啦,这个就是为啥aosp13上没有问题,14有问题原因,疑问这个ENABLE_JDWP变量属于新加入的,在13代码上并没有。为啥aosp13上面可以,aosp14不可以,还有为啥aosp14的模拟器可以?原创 2024-03-20 17:56:20 · 1906 阅读 · 0 评论 -
lineageos 21/aosp14环境搭建小米,nubia手机差异补充
马哥这边也是一直密切关注着lineageos这边是否有及时升级到最新的android 14,今天去官网一看已经确实升级了,马哥这边也第一时间进行环境搭建编译,但是期间也发现了有一些差异相比原来的版本,这里就需要进行一些记录补充方便各位学员们参考,不至于无法搭建成功,有马哥在前面给大家采坑搭建就可以节省很多时间。访问的地址还是有比较大差别,那么这里尝试用老版本的vendor/lineage/build/tools/roomservice.py。2、从上一套编译通过的代码吧webview.apk拷贝。原创 2024-02-29 12:57:25 · 2335 阅读 · 0 评论 -
Ubuntu上安装VMware+win11系统手册
Linux 版下载地址:https://www.vmware.com/go/getworkstation-linux。再出现下面界面其实也没问题,等一会就行,然后会出现如下界面。剩下其他步骤一步步点击既可以,最后上传成功的图片。出现如下界面其实没有关系,等一会。按一下enter其实就可以继续。原创 2024-01-08 09:46:08 · 2505 阅读 · 0 评论 -
自学成为android framework工程师需要准备哪些装备-千里马车载车机系统开发学习
目前高版本的aosp版本编译都是耗费内存巨大的,所以这里的建议内存最少要有16G,内存不足,那么导致的结果那就是,经常编译源码时候无故退出,停止,oom等,这个时候最简单方式加内存条,不加那就只能减少make的线程,比如make -j 1,单线程编译让编译过那块的耗内存任务。具体需要什么配置呢?建议intel cpu(amd cpu也可以),一般都可以满足,越多核越好,这个是影响你编译速度关键,差异也巨大,比如学员里面编译8.1的老代码为例,有的编译源码10小时,有的16分钟。不然你就只能保留一套代码。原创 2023-11-22 09:49:32 · 2205 阅读 · 0 评论 -
ubunutu20/18/22 编译android 5相关的问题汇总-千里马framework开源代码平板编译过程
hi,粉丝朋友们:闲鱼50块钱淘到了一个开源平板,注意这个平板是有源码的,可以进行相关的编译修改。哈哈哈,马哥这边就体验了一下50块钱平板是否可以拿来做framework呢?哈哈,说好就开干了,拿到了相关资料,发现居然是aosp 5.0的源码。。。。原创 2023-09-18 10:02:08 · 418 阅读 · 0 评论 -
Android源码环境搭建(aosp Ubuntu 16.04 20.04)
Android源码环境搭建(aosp Ubuntu 16.04)作者:千里马课程要求:电脑配置:双核,内存最少 16G,硬盘 200G 以上,独立安装 Ubuntu16.4 系统学员要求:最少 1 年以上应用开发经验,推荐在 3 年左右 Android 应用开发经验,熟悉 Java 语言,可以看懂 C/C++1、安装 ubuntu16.04(因为这个版本可以直接安装 openjdk-8,如果其他版本自行找方法)2、openjdk 8 的安装sudo apt-get install openj原创 2020-08-08 23:07:04 · 19799 阅读 · 3 评论