自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 安卓虚拟化实战教学(五):Framework & APP

这个专题到这里就接近尾声了,通过上面的实际案例我想给读者传达的信息是通过模拟器我们有办法模拟底层的驱动和hal服务并进一步给上层对应的framework提供服务。虚拟化的开发可以大大的帮助我们脱离硬件的依赖,加速我们的开发。排除BT/WIFI/CAMERA/AUDIO等强硬件依赖,其他核心服务比如PMS,WMS,AMS等等aosp的服务我们可以非常方便的在模拟器环境中对OS展开定制,硬件依赖的我们也有办法通过定制达到目的。

2024-12-17 14:29:13 607

原创 安卓虚拟化实战教学(四):Camera HAL 定制与调试

首先来一张官方对于这个模块自定义的说明:如果是作为一个完整的项目,上面说的编码是一个非常重要的点,目前该模块用的还是libyuv软编解码这样会占用大量的CPU,实际情况必须采用硬解码。除上面说的这些点外,目前External Camera HAL只支持两种视频的输入格式,分别是:V4L2_PIX_FMT_MJPEG和V4L2_PIX_FMT_Z16。分析HAL的源码发现它会把对应的MPJEG数据转换成I420:所以我想新增YUV420和H264(TODO)的格式数据。

2024-12-16 14:03:26 520

原创 安卓虚拟化实战教学(三):深入解析 HAL 层开发与定制

HAL在很多公司都是一个单独的岗位只需要负责这个领域,更具体点只需要focus在具体的某个功能的HAL,如蓝牙,audio,WiFi等等。所以里面牵扯到非常多的知识点和经验积累,这么短的一章不可能把什么内容都解释清楚,但是希望给各位开发者引入HAL开发的概念,如果有丁点帮助那也已经是非常成功了。

2024-12-13 14:19:08 976

原创 安卓虚拟化实战教学(二):Linux 内核与驱动定制详解

如果有同学按照官方/本文的Guide下载了指定的内核版本,并且生成了自己的驱动文件,但是push到设备里面执行insmod xxx,你会发现模块加载失败,提示错误。分析原因发现这里是vermagic不匹配引入的。vermagic是 Linux 内核模块的重要元数据之一,表示。它的全称可以理解为,主要用于模块和内核之间的兼容性检查。

2024-12-12 14:17:40 1182

原创 安卓虚拟化实战教学(一):环境搭建与常用命令

如果开发人员在执行lunch选项的时候无法显示或者有问题都是正常现象,请关注build_build_var_cache命令,系统开发人员需要好好的了解make系统的变化。如果你能正常的从源码目录启动模拟器,那么你已经可以基于AVD(emulator)来做OS层面的开发验证了,当你理解了其中的原理,那么CVD(cuttlefish)也是差不多的,其中包括了更多的virt-io等技术。鉴于不少同学不容易浏览外网,本章节会对AOSP源码下载编译,模拟器启动,包括常用的命令使用等都做一个总结。

2024-12-11 15:38:38 402

原创 安卓虚拟化实战教学

1. Android目前的虚拟设备主要包括Emulator和Cuttlefish,官方介绍和绝大部分的人认知Emulator主要是通过android-studio开放给app人员开发,Cuttlefish主要用于OS层面的虚拟化开发。2. 作为android系统开发人员,本地拥有AOSP/AAOS的源码环境,那么就可以通过command形式启动emulator,从而达到使用emulator深入定制android OS的目的,该方式的原理和cuttlefish是一样的。

2024-12-11 10:28:15 2192

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除