| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 基于CarSystemUI实现左侧导航栏NavigationBar及下拉面板定制开发1——Android10智能座舱 -> 正文阅读 |
|
[移动开发]基于CarSystemUI实现左侧导航栏NavigationBar及下拉面板定制开发1——Android10智能座舱 |
文章目录前言随着车载智能座舱的不断发展,各种新能源车引领了大屏化趋势,Android系统自8.0以后也专门为车载开发做了设计和分支CarOS,CarOS相对传统的手机OS做了很多改变,例如音频控制CarOS使用CarAudioManager直接控制的硬件音量俗称硬音量,传统手机系统使用AudioManager软件控制音量俗称软音量,还有其它汽车周边硬件控制引入了hal开发等等,后续抽时间我会再写一篇文章介绍CarOS音频控制流程和其在车载中的具体应用设计,本篇我们还是按照标题介绍CarSystemUI相关内容。 一、需求说明公司有智能座舱的开发需求选取的平台是当红的芯驰系列x9m芯片,芯驰芯片主打一芯多屏,一颗芯片同时实现MP5和仪表,具体UI实现参照别克gl8 二、修改方案1.基于需求的两种设计构想1.按照以前项目经验可以在framework-PhoneWindowManager中将屏幕左侧裁剪出需要的宽度,再在裁剪的区域贴悬浮窗,这种方式我在6.0系统有实现过的案例。 2.用安卓SystemUI自带的导航栏来实现,先要将底部导航栏调到左侧竖直显示。 后有看到CarSystemUI的官网介绍决定选取第二种方式,按照惯例先到网上搜索Android 10 修改导航栏的位置,很容易就查到修改的为位置在这frameworks/base/servicescore/java/com/android/server/wm/DisplayPolicy.java
可以看到修改导航栏位置的方法是navigationBarPosition,这个方法里面是通过配置配置于persist.systemui.custom=1来实现左侧显示,当然我习惯性的去百度搜索配置于persist.systemui.custom字段,然后就打开了新大门有个兄弟写了这个需求,然后一看芯片用的也是芯驰的他用的是芯驰x9h我用的是x9m。
qemu.hw.mainkeys=0作用是显示导航栏 运行后效果如下图: 2.修改正确的高度及宽度按照我司设计图导航栏高度是130px,状态栏是64px
在android源码下搜索status_bar_height
是有效的,但是修改导航栏的高度
两个参数修改不起作用,这里脑海就会浮现那句经典语句:编程是一种思想!!!
看描述绝对是这里,我再改编译然后替换framework-res.apk,重启还是无效果。 分析既然status_bar_height的高度在android/packages/services/Car/car_product/overlay/frameworks/base/core/res/res/values/dimens.xml里面改有效果,当然我再次去里面改了一下状态栏高度验证有效,那么我把
这个拷贝到这个目录里面试试android/packages/services/Car/car_product/overlay/frameworks/base/core/res/res/values/dimens.xml
编译替换重启OK效果如下 会当水击三千里,自信人生二百年。 状态栏及导航栏高度改好以后就是用CarSystemUI替换现在的SystemUI。 三、替换CarSystemUI1.CarOS框架关于CarSystemUI的介绍https://source.android.google.cn/docs/devices/automotive/hmi/system_ui 2.替换CarSystemUI做这个双屏之前的也是基于Android10同样是芯驰x9m平台开发过一款单屏的MP5的产品,用的就是CarSystemUI实现的状态栏和下拉面板,使用特别流畅丝滑,具体实现有些复杂,后面文章再展开讲。 最后放一张我们公司现在的智能座舱产品图 总结这篇文章讲了SystemUI实现左侧导航栏NavigationBar的前期准备工作,后续有时间我再介绍状态栏及导航如用CarSystemUI何实现定制需求 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/10 15:05:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |