位置: IT常识 - 正文

车载技术—CarFramework框架【AOSP 源码编译】(carplcy车载有什么用)

编辑:rootadmin
车载技术—CarFramework框架【AOSP 源码编译】 repo

推荐整理分享车载技术—CarFramework框架【AOSP 源码编译】(carplcy车载有什么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:车载??,车载??,车载calife,车载??,车载ⅴcd,车载car是什么意思,车载calife,车载car是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

安卓源码包含数百个git库, googole开发了 repo工具来管理安卓版本库。 repo 使用python对git进行了封装。

内核源码

AOSP源码中不包含内核源码,需要单独下载。

common 通用的 linux内核源码msm 用于高通 MSM芯片的 linux内核源码goldfish 是用于安卓虚拟机的 linux内核源码编译AOSP 能做什么定制 Android 系统将 Android 系统 刷入设备将整个系统源码导入到 Android Studio 中动态调试 Android 系统源码

其中第三条和第四条也可以不用编译源码来实现, 第三条

只要有对应 Android 源码版本的 android.iml 和 android.ipr 两个文件就可以将源码导入到 Android Studio 中

第四条

动态调试系统源码不一定非要导入整个系统源码进行调试。关于第三条和第四条的具体内容,我会在以后的内容中进行讲解。编译系统概述

了解以下一些概念,会对 Android 编译系统有大概的了解。 Makefile Android 平台的编译系统,其实就是用 Makefile 写出来的一个独立项目。它定义了编译的规则,实现了 “自动化编译”,不仅把分散在数百个 Git 库中的代码整合起来、统一编译, 而且还把产物分门别类地输出到一个目录,打包成手机 ROM,还可以生成应用开发时所使用的 SDK、NDK 等。 因此,采用 Makefile 编写的编译系统,也可以称为 Makefile 编译系统。 Android.mk Makefile 编译系统的一部分,Android.mk 是 android 编译环境下的一种特殊的 “makefile” 文件, 它是经过了 android 编译系统处理的。Android.mk 中定义了一个模块的必要参数,使模块随着平台编译。通俗来讲就是告诉编译系统,以什么样的规则编译你的源代码,并生成对应的目标文件。

Ninja Ninja 是一个致力于速度的小型编译系统,如果把其他的编译系统看作高级语言,那么 Ninja 目标就是汇编。使用 Ninja 主要目的就是因为其编译速度快。

Soong Soong 是谷歌用来替代此前的 Makefile 编译系统的替代品,负责解析 Android.bp 文件,并将之转换为 Ninja 文件

Blueprint Blueprint 用来解析 Android.bp 文件翻译成 Ninja 语法文件。

kati kati 是谷歌专门为了 Android 而开发的一个小项目,基于 Golang 和 C++。 目的是把 Android 中的 Makefile,转换成 Ninja 文件。

车载技术—CarFramework框架【AOSP 源码编译】(carplcy车载有什么用)

Android.bp Android.bp,是用来替换 Android.mk 的配置文件。

关系图 Android.mk、Ninja、Soong、Blueprint、kati、Android.bp 的概念之间的联系为:

Blueprint 负责解析 Android.bp 文件内容,Blueprint 类似一个处理相关语法的库文件,Soong 则是定义具体如何处理相应的语法以及命令实现。通俗来讲就是 Soong 借助于 Blueprint 定义的 Android.bp 语法,完成 Android.bp 的解析,最终转换成 Ninja 文件。 Makefile 文件会通过 kati 转换为 Ninja 文件。 随着 Android 工程越来越大,采用 Makefile 的编译系统花费的时间也越来越长,因此谷歌在 Android 7.0 开始引入了 Ninja 来编译系统,相对于 Makefile 来说 Ninja 在大的项目管理中速度和并行方面有突出的优势。 Makefile 默认文件名为 Makefile 或 makefile,也常用. make 或. mk 作为文件后缀。 Ninja 的默认文件名是 build.ninja,其它文件以. ninja 为后缀。Makefile 与 Ninja 的区别在于, Makefile 是设计来给开发编写的,而 Ninja 设计出来是给其它程序生成的。如果 Makefile 是 Java 语言,那么 Ninja 就是汇编语言。

编译源码的方式

Androd 系统源码编译有很多种方式,主要有以下几种:

在 Linux 中直接进行系统源码编译(Android 官方支持)在 Mac OS 中直接进行系统源码编译(Android 官方支持)使用 Docker 编译,支持 Mac OS 和 Windows

其中需要注意的是,Docker 的最低支持版本为 Windows7,建议用 Windows10 环境下使用 Docker,因为在 Windows7 中还需要借助 Docker Toolbox 和 VirtualBox 中的容器进行通信,效率相对低些。 考虑到大多数人的设备和上手难易程度,本为讲解在 Linux 中直接进行系统源码编译。

编译步骤编译三部曲:初始化编译环境选择产品编译​ldswfun@android:/mnt/ext-disk1/a10-aosp$ source build/envsetup.sh​ldswfun@android:/mnt/ext-disk1/a10-aosp$ lunch​You're building on Linux​Lunch menu... pick a combo:​ 1. aosp_arm-eng 2. aosp_arm64-eng 3. aosp_blueline-userdebug 4. aosp_bonito-userdebug 5. aosp_car_arm-userdebug 6. aosp_car_arm64-userdebug 7. aosp_car_x86-userdebug 8. aosp_car_x86_64-userdebug 9. aosp_cf_arm64_phone-userdebug 10. aosp_cf_x86_64_phone-userdebug 11. aosp_cf_x86_auto-userdebug 12. aosp_cf_x86_phone-userdebug 13. aosp_cf_x86_tv-userdebug 14. aosp_coral-userdebug 15. aosp_coral_car-userdebug 16. aosp_crosshatch-userdebug 17. aosp_crosshatch_car-userdebug 18. aosp_flame-userdebug 19. aosp_marlin-userdebug 20. aosp_sailfish-userdebug 21. aosp_sargo-userdebug 22. aosp_sunfish-userdebug 23. aosp_taimen-userdebug 24. aosp_walleye-userdebug 25. aosp_walleye_test-userdebug 26. aosp_x86-eng 27. aosp_x86_64-eng 28. beagle_x15-userdebug 29. car_x86_64-userdebug 30. fuchsia_arm64-eng 31. fuchsia_x86_64-eng 32. hikey-userdebug 33. hikey64_only-userdebug 34. hikey960-userdebug 35. hikey960_tv-userdebug 36. hikey_tv-userdebug 37. m_e_arm-userdebug 38. mini_emulator_arm64-userdebug 39. mini_emulator_x86-userdebug 40. mini_emulator_x86_64-userdebug 41. poplar-eng 42. poplar-user 43. poplar-userdebug 44. qemu_trusty_arm64-userdebug​Which would you like? [aosp_arm-eng] //选择27​ldswfun@android:/mnt/ext-disk1/a10-aosp$ make -j6编译出错处理

A交换分区扩大到3-4G, 请参考以下链接:

B 若扩展好之后还报错,可尝试虚机关机,然后重启再编译一次。

user和eng版本说明

镜像使用

Android源码编译出来的镜像,可以通过Android自带的emulator来运行。emulator就是平常所说的模拟器, 在用户没有真机的情况, 通过启动模拟器来完成对系统和程序的调试和开发。emulator内部是基于Qemu+KVM虚拟化技术, 通过Qemu模拟出CPU ,硬件总线和外设,emulator在传统的qemu技术上, 增加了各种传感器的模拟, 如重力传感器, gps,电话模块等, 从而实现模拟出一个虚拟机的手机。

emulator启动方法:ldswfun@android:/mnt/ext-disk1/a10-aosp$ source build/envsetup.sh​ldswfun@android:/mnt/ext-disk1/a10-aosp$ lunch aosp_x86_64-eng​ldswfun@android:/mnt/ext-disk1/a10-aosp$ emulator -verbose -show-kernel -cores 4

总结

Android源码编译是比较费资源的, 并且启动emulator需要的cpu和内存负载都比较大, 如果慢的话,属于正常现象。

本文链接地址:https://www.jiuchutong.com/zhishi/300253.html 转载请保留说明!

上一篇:终于见识到 Python 的天花板。。(终于见识到什么叫云横秦岭了)

下一篇:python如何快速采集美~女视频?无反爬(python快速检索)

  • 乐视手机pro3参数(乐视手机pro3)(乐视手机1pro参数)

    乐视手机pro3参数(乐视手机pro3)(乐视手机1pro参数)

  • vivox70怎么设置定时开关机(vivox70怎么设置动态壁纸)

    vivox70怎么设置定时开关机(vivox70怎么设置动态壁纸)

  • 手机qq如何临时对话(手机qq怎么临时对话)

    手机qq如何临时对话(手机qq怎么临时对话)

  • 1660oc什么意思(显卡1660oc什么意思)

    1660oc什么意思(显卡1660oc什么意思)

  • 英特尔和酷睿有什么区别?(英特尔和酷睿有什么不同)

    英特尔和酷睿有什么区别?(英特尔和酷睿有什么不同)

  • 防辐射贴贴在手机壳上还是手机上(防辐射贴贴在手机哪里)

    防辐射贴贴在手机壳上还是手机上(防辐射贴贴在手机哪里)

  • 快手极速版怎么横屏播放(快手极速版怎么取消绑定手机号)

    快手极速版怎么横屏播放(快手极速版怎么取消绑定手机号)

  • 钉钉连麦可以开美颜吗(钉钉连麦可以开视频吗)

    钉钉连麦可以开美颜吗(钉钉连麦可以开视频吗)

  • 耳机电流麦怎么解决(耳麦电流声怎么解决)

    耳机电流麦怎么解决(耳麦电流声怎么解决)

  • 直播对手机内存有要求吗(直播对手机内存要求高吗)

    直播对手机内存有要求吗(直播对手机内存要求高吗)

  • 微信被锁是什么原因(微信被锁是什么意思)

    微信被锁是什么原因(微信被锁是什么意思)

  • 相机电池怎么充电(相机电池怎么充电很久没用)

    相机电池怎么充电(相机电池怎么充电很久没用)

  • 手机如何打希腊字母(手机怎么打出希腊的数字)

    手机如何打希腊字母(手机怎么打出希腊的数字)

  • 墙上的网线插口可以直接连电脑吗(墙上的网线插口网线插不进去)

    墙上的网线插口可以直接连电脑吗(墙上的网线插口网线插不进去)

  • iphone7运行内存(iphone7运行内存不足怎么清理)

    iphone7运行内存(iphone7运行内存不足怎么清理)

  • vsco被扣了138元怎么办(vsco自己扣费了怎么找回)

    vsco被扣了138元怎么办(vsco自己扣费了怎么找回)

  • 苹果云盘照片怎么查看(苹果云盘照片怎么恢复)

    苹果云盘照片怎么查看(苹果云盘照片怎么恢复)

  • 数字图书馆怎么登录(数字图书馆怎么下载pdf)

    数字图书馆怎么登录(数字图书馆怎么下载pdf)

  • 华为随行wifi要缴费吗(华为随行wifi要插卡吗)

    华为随行wifi要缴费吗(华为随行wifi要插卡吗)

  • 华为mate30系统是鸿蒙吗(华为mate30的系统)

    华为mate30系统是鸿蒙吗(华为mate30的系统)

  • 网易云附近的人在哪(网易云附近的人在哪打开)

    网易云附近的人在哪(网易云附近的人在哪打开)

  • 华为保密柜怎么打开(华为保密柜怎么用)

    华为保密柜怎么打开(华为保密柜怎么用)

  • lte是什么网络类型(什么叫lte网络)

    lte是什么网络类型(什么叫lte网络)

  • 中国号码在国外能用吗(中国号码在国外拨打中国电话怎么打)

    中国号码在国外能用吗(中国号码在国外拨打中国电话怎么打)

  • 如何查看QQ登录记录(如何查看QQ登录设备记录)

    如何查看QQ登录记录(如何查看QQ登录设备记录)

  • 电脑爱奇艺网页打不开怎么办(电脑爱奇艺网页版怎么投屏)

    电脑爱奇艺网页打不开怎么办(电脑爱奇艺网页版怎么投屏)

  • 手机扩音器怎么清理(手机扩音器怎么关闭)

    手机扩音器怎么清理(手机扩音器怎么关闭)

  • 手机没玩两下就变烫(手机没玩两下就变烫是什么原因)

    手机没玩两下就变烫(手机没玩两下就变烫是什么原因)

  • 微信怎么开启红包提醒功能(微信怎么开启红色感叹号)

    微信怎么开启红包提醒功能(微信怎么开启红色感叹号)

  • 发票冲红重开,重开时是按新税率还是旧税率
  • 个人所得税申诉已受理多久出结果
  • 公司处理固定资产的账务处理
  • 小规模纳税人可以收专票吗
  • 代第三方收取的款项作为什么处理
  • 粗纤维测定仪使用方法
  • 月报和季度报的区别
  • 增值税进项税额计算公式
  • 金蝶k3生产领料单怎么导入
  • 公司简易注销需要清算吗
  • 不征税收入怎么申报企业所得税
  • 购进商品交印花税
  • 应有财务软件
  • 制造费用属于成本类还是损益类
  • 企业个人补偿款需要缴税吗?
  • 企业营改增对企业税负影响分析
  • 可以对开发票吗
  • 收到银联客户备注短信
  • 物流行业主营业务成本会计分录
  • 人力资源外包服务收费标准
  • 采购均价怎么计算
  • 劳务派遣一般纳税人可以简易征收吗
  • 利润分配的余额
  • 高速公路过路费税率是多少
  • 旧macbookpro
  • 为离职员工代缴社保 论
  • 预付工程款如何计提坏账
  • 出租房子收入计入什么科目
  • 软件研发公司有哪些岗位
  • 个人所得税和企业所得税都要交吗
  • 收到承兑汇票会计分录
  • win7电脑怎么样
  • 资产处置收益的项目有哪些
  • 修改apache的http服务端口为8080
  • 外销收入申报表怎么填
  • 房贷贷款利息计算
  • 计提本月固定资产折旧会计科目
  • php 堆排序
  • php curl命令详解
  • thinkphp框架怎么用
  • php redis操作
  • 网页单行文本框
  • 工程施工科目下的招待费,汇算清缴
  • php哪本书最好
  • 财政拨款结转的二级科目有哪些
  • 公司在银行买的理财产品怎么做账
  • 加油站的卷式发票能抵扣吗
  • 车改补贴算工资吗
  • 发票含税和不含税的区别
  • datatable怎么用
  • 新准则下开办费摊销
  • 企业成本计算的依据是什么
  • 出口收入没有及时申报怎么处罚
  • 租赁公司账务科目
  • 购买金税盘未抵税怎么办
  • 长期待摊费用是当月摊销还是次月摊销
  • 固定资产报废需要进项税额转出吗
  • 装修费用怎么结算
  • 账簿设计要以()为前提
  • Windows下安装爱思助手V8
  • Linux系统下mysqlcheck修复数据库命令(详解)
  • 复制糸统
  • mac trim功能
  • win7修改sid
  • CoverDesigner.exe是一个安全进程吗 CoverDesigner进程查询
  • rsrcmtr.exe - rsrcmtr是什么进程 有什么用
  • scrnsave.exe
  • win7系统怎么操作
  • firefox document
  • node.js使用教程
  • android 一个绚丽的loading动效分析与实现!
  • node.js用途
  • js 构建树
  • jquery选择器的作用
  • 病历证明在医院保存多久
  • 税法税收保全的适用范围
  • 江之都财税服务集团有限公司地址
  • 增值税发票怎么购票
  • 广西税务局发票查验平台
  • 成品油消费税税率表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设