自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龚礼鹏的博客

有所学习,有所思考,有所总结,一起进步

  • 博客(262)
  • 收藏
  • 关注

原创 Android 13 骁龙相机点击拍照流程分析(二)——点击拍照到存入相册

Android 13 骁龙相机点击拍照流程分析(一)——点击拍照到更新到左下角缩略图-CSDN博客。

2023-10-09 16:39:42 1224

原创 001 Android13将Settings移植到AndroidStudio中(一)

首先环境,最好用我上面的AndroidStudio版本及gradle配置将代码整编得到out产物如下图内容复制到AndroidStudio的Settings对应目录下面复制后对应的Settings项目中如下:注意values可以按照需要保存相应的文件夹,我这边是只保留默认的values和中文的values的其实这些步骤也可以放到最后将所有模块导入差不多了在做Settings模块,不然会有很多报错,这里我暂时不说Settings的gradle配置的了,这些都放到最后来说。

2023-05-24 16:12:39 1400 5

原创 一篇文章彻底理解自定义View

对应标签。容易引起oom继承系统的TextView,实现在文字中间加一条横线}}}}) {canvas?}}可以看见文字中间是有一条横线的①.简单实现一个矩形的绘制}}}}) {canvas?}}添加自定义属性,添加自定义背景色先在values目录下面创建attrs.xml,添加自定义属性然后在代码中获取自定义属性,注意获取的资源要回收}//获取自定义属性对应的组名称//获取自定义属性//注意资源需要回收}}}

2022-12-02 17:37:45 1406

原创 flutter_easyrefresh 加载多次问题修复

flutter_easyrefresh是一个下拉刷新上拉加载的插件,具体我就不介绍了,这里主要是解决flutter_easyrefresh的bug,主要我在用此插件的时候遇到如下两个问题:①.上拉加载最后的footer不消失②.加载少量数据出现多次加载现象解决方案第一个问题现象如下,就是加载过程中在数据不能占满整个界面的时候footer是不会自动消失的解决方案:加载完成延时一...

2020-04-17 01:32:06 5149 6

原创 DevEco Studio编译不了native项目

此问题在网上找不到任何资料,我这边原因是公司电脑做了限制,让我cmake运行不了,导致报错。

2024-02-27 15:48:35 4

原创 Android 14源码单编卡在analyzing Android.bp中

Android14源码编译会卡住问题是内存占用太多了,需要64G内存,如果内存不够就会卡住很久,使用make单编也是同样卡住很久。这个也不会卡住,不过只能在单编中使用,整编不可行。解决方法一:内存条加到64G。这样单编整编都会很顺畅。

2024-02-20 11:37:46 16

原创 APN设置流程分析

2、进行delete操作时,TelephonyProvider通过URL_RESTOREAPN进行删除操作,会删除carriers表,同时删除首选APN,获取preferred-full-apn的SP,如果SP包含version1,表示apn已经存储起来了,删除该subId对应的version1字段以及APN唯一字段与subId组合在一起的字段,删除完成,重新初始化加载carrier表,然后我们分析APN的主要流程:重置APN流程、切换APN、新建APN、编辑APN。

2024-02-05 20:08:53 47

原创 网络选择流程分析(首选网络类型切换流程)

对应的入口源码位置在Settings的UniEnabledNetworkModePreferenceController中,当然其他平台可能在PreferredNetworkModePreferenceController中,流程上都是大同小异。然后点击切换按钮会调用到UniEnabledNetworkModePreferenceController的onPreferenceChange方法。中发送指令,至此从应用层到framework层到Modem层的流程就完成了。此方法中主要看圈出来的三个方法。

2024-02-05 16:00:28 521

原创 OpenHarmony隐藏应用(应用不在桌面显示,隐藏应用图标)

注意:此种方式是在OpenHarmony系统中生效。

2024-01-29 15:43:24 154

原创 OpenHarmony以及HarmonyOS封装接口提供SDK(har包)以及代码混淆

配置完环境变量需要点击一下如下的init.bat。如上两个环境变量需要加到系统变量的path中。然后应该就可以正常执行ohpm相关指令了。指令执行成功就可以在应用中调用了。

2024-01-26 11:46:36 86

原创 Compose Text中防止内容过多顶出去

里面的参数可以输入最小宽度和最大宽度,我们限制下最大宽度就可以防止顶出去。

2024-01-06 21:13:36 412

原创 OpenHarmony 快速集成轻量级存储(dataPreferences)工具类

OpenHarmony中也有类似于Android的SharedPreferences的轻量级存储,名字叫dataPreferences,这里省略介绍,直接放工具类。调用getPreferencesData方法获取值,第一个参数是key,第二个参数是value的回调。将上述的initPreferenceData方法在onWindowStageCreate中进行调用。调用putPreferencesData方法存入键值对,第一个是key,第二个是value。二.然后新建工具类拷贝如下代码。

2023-12-29 15:06:43 457

原创 OpenHarmony 应用通用签名

本次内容主要是OpenHarmony的手动签名。

2023-12-29 10:53:55 1047

原创 openHarmony添加system_basic权限安装报错

3.修改apl字段为system_basic或者在allowed-acls中加入需要申请的权限,如下是方便演示我将两处都修改了。2.然后找到对应的openHarmony 的SDK路径,如下记得要切换成OpenHarmony。5.然后进行自动签名,注意此处不要勾选Support HarmonyOS,只要勾选后面那个选项。openHarmony添加system_basic权限安装报错。1.首先查看当前的api level。签名完成就可以安装了。

2023-12-14 14:16:37 604

原创 Android 13 Settings蓝牙列表卡顿问题排查及优化过程

此时我们的卡顿优化基本完成了,我们应该要考虑内存是否会泄漏,如果大家不知道哪些需要回收可以用leakcanary和android profiler进行内存检测,看代码有没有内存泄漏。

2023-12-07 17:06:45 1056

原创 Android 13 骁龙相机点击录像流程分析

录像的流程大概分为几个阶段:进行预览、点击开始录像(跳过)、点击按钮结束录像、数据库保存生成uri、根据uri保存左下角缩略图、将uri保存内存中、点击左下角进入相册,下面我们一步一步进行分析。

2023-10-11 15:11:38 731

原创 Android 13 骁龙相机点击拍照流程分析(一)——点击拍照到更新到左下角缩略图

拍照的流程大概分为几个阶段:打开相机进行预览、点击按钮进行拍照、生成缩略图、生成图片并保存、数据库保存生成uri、点击左下角进入相册,下面我们一步一步进行分析。

2023-10-09 14:53:39 1303

原创 android跳转到Settings中各个界面的方式

【代码】android跳转到Settings中各个界面的方式。

2023-09-13 22:11:26 849

原创 Ubuntu 常用命令

在当前目录中寻找名字为filename的文件。grep "无障碍" ./ -rin。打开android studio。

2023-08-29 19:08:07 80

原创 Ubuntu编译Android源码报错files = files.strip().replace(ANDROID BUILD TOP,‘‘).split(‘\n‘)TypeError: a bytes

输入sudo update-alternatives .-config python。然后选择python版本。

2023-08-29 11:53:24 66

原创 Android 13 像Settings一样获取当前语言地区及多语言地区

用户需要定制获取到当前语言地区,类似与Settings那样,不过Settings获取的是当前添加的多个语言,本文会介绍当前的多个语言获取和只获取第一个语言。

2023-08-29 11:12:52 337

原创 【自定义系统服务】【android13】添加自定义java系统服务

Binder默认可以传输基本类型的数据,如果要传递类对象,则这个类需要实现序列化。我们先定义一个序列化的自定义类型,用于binder间参数传递。主要分为两步:创建自定义类型,实现Parcelable接口// 注意定义成员变量的顺序,后面读取和写入都必须按这个顺序// 注意定义成员变量的顺序@NonNullmAge = age;//@Override// 注意定义成员变量的顺序。

2023-08-18 13:22:50 503

原创 Android 13 像Settings一样开启关闭深色模式

由于客户定制的Settings需要开启关闭深色模式,所以需要自己调用开启关闭深色模式。

2023-08-16 15:00:10 603

原创 Android 13 开启关闭飞行模式

调用开启关闭飞行的api,具体主要是在AirplaneModeEnabler这个类中获取和开启关闭飞行模式,具体需要定义AirplaneModeEnabler类全局变量,然后初始化这个全局变量,并且在Activity生命周期中对这个变量进行相应的状态处理,而且需要从这个变量获取当前的飞行模式状态,最后还有一个飞行模式状态监听,不过这一步可以跳过。

2023-08-16 14:41:43 586

原创 Android 13 像Settings一样获取VPN信息

由于客户定制的Settings里面需要获取到VPN状态信息,所以需要实现此功能。

2023-08-16 13:53:06 689

原创 Android 13像Settings一样获取SIM卡信息

由于客户定制的Settings里面需要获取到SIM卡信息,所以需要实现此功能。

2023-08-16 13:46:56 374

原创 Android 13像Settings一样获取热点和网络共享

由于客户定制的Settings里面需要获取到热点和网络共享状态,所以需要实现此功能。上述文档的第三部第四步有详细介绍。

2023-08-16 13:37:19 473

原创 Android 13 Launcher——屏蔽上拉到应用列表

Launcher定制需要将原先的应用列表去掉,可以从根源去掉,就是将上拉出现应用列表的上拉手势直接屏蔽,让其不能上拉出现应用列表界面,在研究的过程中顺便将下拉出现负一屏的逻辑也研究了下,如下就是具体实现。如果需要拦截让其不上拉出现应用列表可以修改成如下代码即可。

2023-08-14 20:43:13 626

原创 Android 13 Launcher——如何区分长按图标是hotseat还是Launcher还是应用列表中的

由于当前有个定制Launcher需求需要长按图标的ui效果根据在不同的布局(hotseat、Launcher、应用列表)中不一样,所以需要区分长按图标是Hotseat还是Launcher中还是在应用列表中,如下就是如何进行区分。如上定制的实现是在Launcher中和应用列表中弹框与在Hotseat中弹框的内容不一样的,具体效果如下,此处只说的是三者的区别,具体弹框逻辑这里没有。

2023-08-14 16:31:04 433

原创 Android 13 Launcher——屏蔽长按非icon区域出现弹窗

长按Launcher非icon区域也是会有弹窗的,会显示小组件等信息,定制开发要求长按非icon区域不要弹窗,我们来实现此功能,先看下未修改前的长按非icon区域的效果。如上图可以看出长按功能显示出壁纸、微件、主屏幕设置这些内容。实现效果是长按不会出现任何内容了。

2023-08-08 20:21:36 544

原创 Android 13 Launcher——长按图标弹窗背景变暗

主要代码逻辑在ArrowPopup中的reorderAndShow方法和closeComplete方法中,其中reorderAndShow方法是为了让其显示的时候背景变暗,closeComplete方法是为了在弹窗关闭的时候背景恢复。客户定制需要长按图标弹窗让其背景变暗,所以需要进行定制,如下是定制流程,本篇是接上篇。修改后的效果图如下所示,可以看出背景效果了。

2023-08-08 17:23:34 600

原创 Android 13 Launcher——长按图标弹窗内容修改以及小组件等隐藏起来

由于定制化开发需要将原先的长按图标原生弹窗界面隐藏,然后显示自定义的弹窗界面,如下就是我们来实现自定义的弹窗界面。然后运行代码此时就是可以看到我们自定义的布局文件了,这里我就不演示了,到最后一起演示。实现思路是在布局文件中加入自定义的弹窗布局,然后在代码中隐藏原先的布局内容。

2023-08-08 17:13:14 1930

原创 Android 13 Launcher界面——移除Launcher的删除和卸载功能

可以看出主要是有三处需要修改的,首先是功能屏蔽,将移除功能和卸载功能关闭,然后是UI界面中隐藏Remove和Uninstall按钮,最后需要注意的是落点到Uninstall和Remove时是有个图标编写的动画的,为了最佳用户体验,可以将这个变小动画也去掉。下面我们就从这三个方面来进行实践。由于Launcher定制开发,需要自定义删除和卸载功能,将拖动图标进行删除和卸载应用的功能去除,下图是原生的删除和卸载功能,是正在拖动中的图和卸载进行时的图。修改后的效果如下所示,可以看出是没有图标变小的效果了。

2023-08-08 16:16:21 1043

原创 Android 13 Hotseat定制化修改——005 hotseat图标禁止形成文件夹

由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher中,本篇介绍如何实现hotseat图标禁止形成文件夹。

2023-08-08 13:51:17 558

原创 Android 13 Hotseat定制化修改——004 hotseat布局位置

由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher中,此处介绍hotseat布局位置修改。然后修改代码,代码中主要是确定Hotseat的位置及宽高。

2023-08-08 13:48:08 663

原创 Android 13 Hotseat定制化修改——003 hotseat图标大小修改

由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher中,本篇来介绍下hotseat图标大小修改。

2023-08-08 13:41:03 753

原创 Android 13 Hotseat定制化修改——002 hotseat图标数量修改

由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher中,本篇来介绍下Hotseat图标数量修改。hotseat的图标数量是根据设备分辨率来灵活分配的,但是如果有需求需要固定hotseat的图标数量怎么办呢。

2023-08-08 13:35:58 719

原创 Android 13 Hotseat定制化修改——001 hotseat布局方向

由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher中,下面开始一一介绍实现方式。第二种方式是直接修改DeviceProfile类中的isVerticalBarLayout方法让其全局修改成横屏或者竖屏,如下是修改成横屏方式,修改成hotseat效果和上面一样。

2023-08-08 13:23:31 670

原创 Android 13 Hotseat定制化修改——006 hotseat图标禁止移动到Launcher中

如上修改后可以看出hotseat中的图标就不会移动出去了,如果需要定制化启动的模块,比如Launcher的图标滑动方式和区域,也可以在上述两个方法中进行修改即可。思路:在事件拦截的地方判断是否触摸的开始位置在Hotseat区域,如果是在Hotseat区域然后在事件监听的地方进行特殊处理,让其不能移动到Hotseat区域外。原生的Hotseat与Launcher是可以相互移动的,然后现在的需求是Hotseat中的图标只能在Hotseat中移动,所以需要做下限制。

2023-08-08 13:15:41 640

原创 Android 13 Hotseat定制化修改

由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher中,下面开始一一介绍实现方式。先看下目前的Launcher中hotseat显示方向。

2023-08-08 11:34:43 759

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

2023-12-07

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

2023-12-07

Android 13 Launcher界面-移除桌面的删除和卸载功能

Android 13 Launcher界面-移除桌面的删除和卸载功能

2023-08-08

TextField演示效果

TextField演示效果

2023-07-14

framework.jar

framework.jar

2023-05-30

空空如也

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

TA关注的人

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