草庐IT

Android 12.0 rom定制专栏系列解读

安卓兼职framework应用工程师 2023-09-12 原文

一.前言

在从事android系统rom定制化的这几年里,经历了坎坎坷坷,开发过好几种类型的产品,也随着google对android系统的更新加快,也需要跟随上时代的进步,所以需要把平时工作中遇到的问题总结出来,及时做好记录归纳总结,然后进一步的提升自己能力,本专栏提供给在12.0的rom定制过程中需要寻求帮助的伙伴们给个指引,如有不到之处可以提出来探论,共同进步

二.专栏伙伴交流方式

订阅付费专栏伙伴内部交流qq群:621060806

android系统定制开发行业交流qq群:309212664

专栏博客每周会继续更新,当然博客到一定篇数,价格也会随之上涨

三.专栏博客主要内容的简单介绍

本专栏主要是12.0系统frameworks上层定制的内容 主要就是Launcher3,Settings,SystemUI,wifi,蓝牙,recovery,摄像头模块蓝牙模块TF卡模块短信电话模块adb模块otg模块USB模块NFC模块等系统应用和frameworks的相关内容的定制开发,博文内容讲解不当的地方请及时指出,以便及时改正更新。

如需了解更详细的专栏详情请点击:

android 12.0 Rom定制化系统讲解

3.1关于Launcher3的定制的部分博客介绍

android 12.0launcher3 workspace app列表页不显示某个app图标

android 12.0Hotseat 添加allapp button

Android 12.0无源码apk设置默认启动Launcher的相关属性

Android 12.0Launcher3 app列表页桌面图标按安装时间排序

猿创征文|Android 12.0Launcher3 时钟动态图标的定制化

猿创征文|Android 12.0Launcher3中app列表页的app名称分两行显示Android 12.0首次开机进入Launcher3前黑屏几秒的几种情况问题的总结Android 12.0Launcher3 禁止首屏时钟部件拖动到其他屏Android 12.0首次开机进入Launcher3前黑屏几秒的几种情况问题的总结

android 12.0Launcher3禁止拖拽app图标到第一屏

android 12.0Launcher3去掉默认的google搜索栏

android 12.0Launcher3修改某个app icon的图标

Android 12.0Launcher3 去掉workspace长按弹出壁纸弹窗

android 12.0Launcher3长按拖拽时,获取当前是哪一屏,获取当前多少个应用图标

android 12.0Launcher3长按拖拽时最后一屏未满时不让拖拽到后一屏(二)

android 12.0Launcher3修改workspace字体颜色

Android 12.0Launcher3 电话和短信app图标显示未读短信和未接来电的条数

Android 12.0Launcher3 禁止卸载某个第三方app

Android 12.0 Launcher3 app图标和hotseat 添加背景(焦点选中背景)
Android 12.0 屏蔽Launcher3桌面app图标的长按功能

以上这些都是些在12.0的系统开发中关于Launcher的部分详细常用的功能,关于一些Lancher3的定制相关内容还在后续陆续更新中

3.2 SystemUI相关定制化功能
Android 12.0 SystemUI 下拉状态栏背景增加高斯模糊背景
android 12.0 SystemUI的QSPanel添加日期布局
Android 12.0 QuickQSPanel添加亮度进度条布局
android 12.0 SystemUI首次下拉QSPanel高度调整
Android 12.0 SystemUI设置系统导航栏默认为系统手势导航
Android 11.0 SystemUI获取当前QSPanel和QuickQsPanel的高度
android 12.0 SystemUI下拉通知栏默认总是展开通知列表的修改
Android 12.0 SystemUI 下拉状态栏QSTileView的字体大小不随系统字体改变而改变时字体大小
Android 12.0 修改SystemUI 音量条的声音SeekBar样式
Android 12.0 SystemUI去掉下拉状态栏拖动亮度条QSPanel界面隐藏功能
Android 12.0 SystemUI修改下拉通知栏每条通知为圆角背景
Android 12.0修改下拉状态栏 QSTileBaseView 快捷图标的大小和样式
Android 12.0 关机界面全屏显示(UI全屏显示)
 
Android 12.0 SystemUI下拉状态栏增加响铃功能
Android 12.0 SystemUI下拉状态栏时间格式的修改(二)
Android 12.0 SystemUI下拉状态栏时间格式的修改(一)
Android 12.0 SystemUI状态栏屏蔽掉通知栏不显示通知
Android 12.0 SystemUI下拉状态栏背景为透明去掉阴影
Android 12.0锁屏界面默认不显示Notification通知
Android 12.0 SystemUI 状态栏下拉和通知栏始终居中
Android 12.0 SystemUI修改状态栏电池图标样式为横屏显示
Android 12.0状态栏居中显示时间和修改时间显示样式
android 12.0 SystemUI 状态栏下拉快捷添加截图快捷开关
android 12.0 SystemUI 状态栏时间显示秒
android 12.0 SystemUI状态栏高度设置为0时微信头部异常问题的解决
Android 12.0 SystemUI 下拉状态栏默认展开下拉框(展开下拉快捷)
android 12.0 SystemUI导航栏添加虚拟按键(二)
android 12.0 SystemUI导航栏 添加虚拟按键(一)
android 12.0 通知栏接收app通知开关(屏蔽app通知)
android 12.0 SystemUI屏蔽某个app的通知
android 12.0 SystemUI手势上滑显示导航栏和隐藏导航栏
android 12.0 SystemUI 屏蔽通知栏通知

以上就是关于12.0系统rom开发中关于SystemUI的常用功能的相关博文,后续在开发中的相关内容还在继续更新中。

3.3 Settings相关定制化主要博客
Android 12.0 系统Settings主页去掉搜索框
android 12.0 Settings系统默认字体大小的修改
android 12.0 Settings去掉二级三级菜单搜索功能
android 12.0Settings主页动态显示和隐藏设置项(一级菜单显示和隐藏)
android 12.0Settings 添加设置项 多个Launcher时设置需要启动Launcher
android 12.0 两个laucher动态相互切换(退出一个launcher到另外一个launcher桌面 )
Android 12.0 Settings 搜索功能屏蔽某个app
Android 12.0 Settings增加屏保功能(屏保时间必须小于休眠时间)

Android 12.0 系统设置 app详情页默认关闭流量数据的开关

以上就是在12.0的系统rom开发定制过程中的关于系统Settings的相关功能的部分博文,在后续的工作中关于系统Settings的定制化的博文还在陆续的更新中

3.4 recovery相关定制化主要博客
Android 12.0 进入recovery模式(等待用户选择recovery模式界面)进入自动恢复出厂设置模式
Android 12.0 recovery竖屏界面旋转为横屏
Android 12.0 修改Recovery字体图片的大小(正在清理)文字大小
Android 12.0修改recovery 菜单项字体大小
android 12.0去掉recovery模式UI页面的选项

以上就是关于在12.0的系统rom定制化开发中关于recovery的相关功能的部分博文,在后续的工作中,会继续更新关于recovery的定制化的相关博文

3.5 frameworks其他模块的部分主要博客

Android 12.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果

Android 12.0 第三方app安装完成后默认授予运行时权限Android 12.0首次开机默认授予app运行时权限(去掉运行时授权弹窗)
android 12.0 开机动画横屏显示
android 12.0 去掉前置摄像头闪光灯功能
Android 12.0 Camera2 静音时拍照去掉快门声音
android 12.0 去掉屏幕锁屏(屏幕默认锁屏方式改成无)
android 12.0 控制Camera开关
android 12.0 wifi开关控制
android 12.0 控制屏幕亮屏和灭屏操作
android 12.0 添加自定义系统服务接口给app调用
android 12.0 添加自定义api(类) 给app调用
android 12.0禁用电源键(屏蔽关机短按长按事件)
android 12.0设置app为默认浏览器
android 12.0 屏蔽所有电话来电功能
android 12.0 屏蔽短信功能(短信发送开关)
android 12.0 音量键功能开关(屏蔽音量加减功能)
android 12.0 设置wifi列表黑名单(ssid不显示wifi列表)
android 12.0删除连接wifi的配置信息
android 12.0 app应用卸载白名单
android 12.0卸载otg设备开机不加载otg设备
android 12.0 禁止app启动和允许app运行
android 12.0 默认授予悬浮窗 安装未知来源 读写 Camera等权限
android 12.0 去掉音量键+Power键组合键的屏幕截图功能
android 12.0 app安装黑名单(限制app安装)
android 12.0 设置上网应用白名单(上网app白名单)
android 12.0 framework系统api添加jni方法
android 12.0 系统Services(自定义服务) 添加jni方法
android 12.0 framework层 Camera旋转摄像头方向
Android 12.0 默认开启WLAN热点设置默认热点名称和密码
Android 12.0 SystemServer预安装app(大于50M比较大的app)
Android 12.0 根据包名授予app所需的权限
Android 12.0第三方app根据包名设置为横屏显示
Android 12.0添加自定义服务,并生成jar给第三方app调用
Android 12.0 遥控器点击输入框 弹不出输入法
Android 12.0 设置系统图标形状默认为squircle
Android 12.0 app添加校验锁(输入密码才能进入app)
Android 12.0 实现屏幕10s无操作自动播放视频
Android 12.0 系统上滑手势增加home的功能(相当于Home键)
android 12.0 framework user模式默认打开adb功能
android 12.0 Camera2 去掉后置摄像头 仅支持前置摄像头功能
android 12.0去掉android正在启动弹窗 屏蔽FallbackHome机制 直接进入默认Launcher
Android 12.0强制app横屏显示
android 12.0 自定义开机向导app
android 12.0 设置wifi白名单
Android 12.0 开机动画支持mp4 视频播放

Android 12.0 ResolverActivity.java多个app选择界面去掉始终保留仅有一次

Android 12.0 手动安装Persistent app失败的解决方案

Android 12.0 修改系统签名文件类型test-keys为release-keys

以上就是关于在12.0的系统开发rom定制过程中的相关的frameworks各个模块定制功能实现的相关技术博文,这些也是在定制过程中常用的功能,有不当之处,可以及时提出来探讨解决问题,后续关于其他相关rom的定制功能会陆续更新中....

4.总结

在12.0的系统rom定制化过程中,虽然相比起11.0在framework某些模块方面做了部分大的改动,但是相对来说还是可以根据11.0的总结的相关工作经验来解决问题,

本专栏也是在rom开发工作中的一些经验的积累,一方面更熟悉的了解工作流程,一方面指导专栏伙伴一起完成相关功能的开发,能力有限如有不当之处请指正,来更新专栏文章内容

有关Android 12.0 rom定制专栏系列解读的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  3. ruby - 如何进行排列以有效地定制输出 - 2

    这是一道面试题,我没有答对,但还是很好奇怎么解。你有N个人的大家庭,分别是1,2,3,...,N岁。你想给你的大家庭拍张照片。所有的家庭成员都排成一排。“我是家里的friend,建议家庭成员安排如下:”1岁的家庭成员坐在这一排的最左边。每两个坐在一起的家庭成员的年龄相差不得超过2岁。输入:整数N,1≤N≤55。输出:摄影师可以拍摄的照片数量。示例->输入:4,输出:4符合条件的数组:[1,2,3,4][1,2,4,3][1,3,2,4][1,3,4,2]另一个例子:输入:5输出:6符合条件的数组:[1,2,3,4,5][1,2,3,5,4][1,2,4,3,5][1,2,4,5,3][

  4. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  5. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  6. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  7. ruby - 从结束值创建一系列字符串 - 2

    我使用irb。下面是我写的代码。“斧头”..“bc”我期待"ax""ay""az""ba"bb""bc"但结果只是“斧头”..“bc”我该如何纠正?谢谢。 最佳答案 >puts("ax".."bc").to_aaxayazbabbbc 关于ruby-从结束值创建一系列字符串,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7617092/

  8. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  9. ruby-on-rails - 用一系列时间增量填充选择,加上其他选项 - 2

    使用RubyonRails,我使用给定的增量(例如每30分钟)用时间填充“选择”。目前我正在YAML文件中写出所有的可能性,但我觉得有一种更巧妙的方法。我想我想提供一个开始时间、一个结束时间、一个增量,并且目前只提供一个名为“关闭”的选项(想想“business_hours”)。所以,我的选择可能会显示:'Closed'5:00am5:30am6:00am...[allthewayto]...11:30pm谁能想出更好的方法,或者只是将它们全部“拼写”出来的最佳方法? 最佳答案 此答案基于@emh的答案。defcreate_hour

  10. ruby-on-rails - 无法构建 gem native 扩展 (mkmf (LoadError)) - Ubuntu 12.04 - 2

    这个问题在这里已经有了答案:Unabletoinstallgem-Failedtobuildgemnativeextension-cannotloadsuchfile--mkmf(LoadError)(17个答案)关闭9年前。嘿,我正在尝试在一台新的ubuntu机器上安装rails。我安装了ruby​​和rvm,但出现“无法构建gemnative扩展”错误。这是什么意思?$sudogeminstallrails-v3.2.9(没有sudo表示我没有权限)然后它会输出很多“获取”命令,最终会出现这个错误:Buildingnativeextensions.Thiscouldtakeawhi

随机推荐