自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龚礼鹏的博客

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

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

原创 OpenHarmony 5.0 拨号键盘自定义暗码启动其他应用

有一个需求,需要自己写一个隐藏的应用,然后又不能让客户看到,需要在拨号盘输入特定的暗码进入此应用。上述就是截取*#*#到#*#*中间的数字,然后如下是对数字进行处理。处理module.json5文件,修改skills中的数数组。然后如果符合当前的暗码进行处理。constacts中。

2025-03-13 19:59:45 215

原创 OpenHarmony项目的应用在DevEco Studio配置项目中固定的一键签名

由于手动签名需要在DevEco Studio中将应用先编译出未签名的包,然后在手动签名这个未签名出来的包,步骤比较繁琐,所以考虑直接在DevEco Studio中配置签名可以进行一键安装。如上配置完成就可以一键安装了,并且和自动签名相比签名不会变化,后续可以将代码上传,其他小伙伴无需任何配置,直接可以一键安装了。上述可以看出来有四个步骤,然后第二步生成的 certChain 步骤中后缀名改成.cer。上面步骤会生成fctTest.cer 签名文件。

2025-03-13 17:06:16 357

原创 鸿蒙(openharmony) 5.0 光感接口崩溃

【代码】鸿蒙(openharmony) 5.0 光感接口崩溃。返回的值是undefined

2025-02-13 19:28:57 159 1

原创 OpenHarmony 源码单编流程

本章节介绍如何在OpenHarmony源码中进行hap的单编工作,这样可以大大提升我们的效率。

2025-02-10 19:39:16 167

原创 oh5.0调用soundPool.play接口报错5400102

应用层由于加载音频流程没走完,所以就是播放音频的时候需要延时一下,就是把上面的setTimeout给放开就行了,不过不推荐这种修改,如果无法修改Framework源码,那只能这样修改。上述的方法调用在创建音频池和加载音频中都成功了,但是最后播放音频报错了,错误码为5400102,这个错误码的意思是不能被允许的。其实就是加载音频的流程没有完成就调用了播放音频的方法,所以有两个解决方案。

2025-02-10 19:17:51 386

原创 OpenHarmony 5.0无法监听按键

上述的方式也是监听不到。

2025-02-06 17:24:22 339

原创 OH 5.0中设置full sdk

首先在DevEco Studio Next版本里面没有设置HarmonyOS的sdk位置,都是默认设置的public sdk,然后我们需要将HarmonyOS设置改成OpenHarmony设置,并且将full sdk放在对应OpenHarmony sdk的位置上,让其可以使用full sdk。其他位置的runtimeOS也改成OpenHarmony即可。然后我们就可以正确的使用full sdk了。

2025-02-06 10:55:58 390

原创 Oh3.2项目升级到Oh5.0(鸿蒙Next)具体踩坑记录二

然后继续记录踩坑,如下开始是代码中报错,主要是3.2中的一些api在5.0中不支持,所以要进行修改。

2025-02-05 19:44:52 470

原创 Oh3.2项目升级到Oh5.0(鸿蒙Next)具体踩坑记录(一)

我们将3.2的项目放在5.0的sdk以及deveco studio next上面的运行结果首先是报错如下:这里我们直接点击Migrate Assistant让他自动修复然后会让你选择当前版本,如果是5.0就选择5.0,如果是5.1就选择5.1,如下:点击migrate,我这里已经点击过了然后会继续报错如下:这里我们继续点击Auto-fix 让其自动修复。

2025-02-05 13:22:12 918

原创 Android 13 电池电量以及通知控制指示灯逻辑源码流程分析

BatteryService:电池服务,根据电池相关逻辑调用了灯控制相关逻辑config.xml:灯闪烁频率以及灯的颜色控制NotificationManagerService:通知管理服务,根据是否有通知以及通知的类别控制相关led灯的闪烁LightsService:灯相关的服务,内部类LightImpl调用灯控制流程,用于其他服务调用灯控制统一管理lights.cpp:灯控制的native层最终实现,调用节点控制灯逻辑。

2025-01-27 16:33:38 328

原创 Android 13 14 vpn中怎么实现pptp和l2tp模式

上面的日志其实已经说明我们客户端的Vpn已经和服务端连接成功了,但是pppd进程和Vpn进程状态没有同步,pppd进程其实已经告诉我们成功连接了,Vpn进程应该是读取超时,然后得到的是Vpn连接失败的状态,这点也可以从Vpn的打印日志和pppd的打印日志相差40s中看出来。可以看出来android 12中指定了路径,android 13中没有指定路径,所以执行脚本的地方就找不到这个脚本,然后我们把android 12的mk文件拷贝过来就行了,这样整个流程就通了。

2025-01-16 17:21:20 5031

原创 Caused by: java.lang.NullPointerException: Attempt to get length of null array

由于是客户的后台系统监控到crash报错,所以可能存在日志不全的情况下,然后日志不全一般我们都不会继续排查了,其实日志不全也可以继续排查的,错误日志如下:关键点:Caused by: java.lang.NullPointerException: Attempt to get length of null arrayat com.android.quickstep.GestureState.(Unknown Source:0)

2025-01-08 10:49:21 274

原创 刷入super镜像报错 FAILED (remote: ‘Error: Last flash failed : Volume Full‘)

可以看出来第二次刷入的底包super的大小为2203648,第一次刷入的底包super的大小为1900544,然后我们在看下分区提交记录那笔的diff。可以看出来时间点是在12月17号有提交,但是我们上述刷入的底包时间是11月27号,说明那个底包是在这笔提交之前的,所以前后分区大小不一致。由于是底包的分区大小和源码中的super镜像分区大小不一致导致的,我们就搜索下这个项目最近有没有一些分区的调整,直接搜索“分区”查看下。可以看见是有12月19号的底包的,然后我们先刷入这个底包,在刷入镜像尝试。

2025-01-02 20:06:49 1150

原创 android 外挂modem模块实现Telephony相关功能(上网,发短信,打电话)

android 外挂modem模块实现Telephony相关功能(上网,发短信,打电话)

2025-01-01 21:36:24 668

原创 鸿蒙 log抓取

一般场景我们可以通过DevEco Studio来抓取日志,但是现在有一个这个场景,设备在出问题期间是连接不上电脑的,无法抓取实时日志,这时候我们就需要让设备在本地抓取日志。则需要重新启动设备就可以开启日志抓取了。如下是指令执行成功后的效果。然后就开始抓取日志了。

2024-12-24 14:27:27 1166

原创 OpenHarmony 3.2 调用获取指定网络接口信息报错,DHCP报错:callback error 29189

查看日志可以看出来在29189附近有crash,是netmanager出现了crash,而我们这个就是和网络有关的,所以怀疑是这个netmanager crash导致功能不正常,然后我们继续排查crash日志,如下。客户在设置里面调用这个接口,获取以太网信息,问题是刚连上网点击设置中的以太网会提示报错,并且不可恢复,需要关机重启才能恢复。这样客户调用此接口就不会一直报错,只有在网卡没有初始化好,ip地址没有获取到之前可能会有报错,ip地址获取成功后就不会报错了。添加判空并返回错误码即可。

2024-12-23 20:15:45 353

原创 OpenHarmony 3.2 网卡获取ip地址缓慢分析

然后其实就是调用到CheckReadBytes函数和CheckPacketIpSum函数,再看下CheckPacketIpSum函数的内容,可以对比下如上日志,这个500ms的耗时就是这么来的。另外,在DHCP client进程收发包时,由于设备是没有IP地址的,因此在通过socket收包时要使用raw socket来接收报文。现在就是最后一步,等待服务端响应,从前面的梳理可以看出来基本和前面的响应是差不多流程的,然后就是在响应的类型不一样,是Ack,看一下如下日志。考虑下这里进程睡眠500ms的影响?

2024-12-21 21:21:26 270

原创 OpenHarmony中HDC相关操作源码

目前所知道的路径就是在/developtools/hdc/src/daemon/daemon_unity.cpp中进行指令的执行。本次主要记录OpenHarmony中的HDC相关操作的源码位置,为后续有hdc相关修改可以进行快速的查询。也可能在具体的函数中,比如之前说的切换usb连接还是切换ip连接的就是在 SetDeviceRunMode方法中。首先找到hdc相关的代码逻辑模块位置,路径:xxx\developtools\hdc。如果想干掉hdc的所有功能,就是如下的patch。

2024-12-05 19:32:10 227

原创 鸿蒙应用获取wifi连接的ip地址(官方文档获取的格式转换成192.168.1.xxx格式)

本次来学习如何获取到鸿蒙设备连接wifi后的ip地址,由于官网文档中获取的ip地址和我们平时看到的192:168:xxx:xxx有所不同,需要进行下转换,所以记录下,如下的流程是在OpenHarmony 3.2 Release版本进行开发测试的。获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,macAddress 返回空字符串。所以这个格式和我们看到的192.168.xxx.xxx是不符合的,所以需要进行转换。

2024-12-05 14:40:40 589

原创 OpenHarmony修改hdc默认为局域网连接模式

当前是基于OpenHarmony 3.2的版本做的定制,然后由于当前版本后续会干掉usb连接,需要将hdc从默认的usb连接模式修改成局域网连接模式。

2024-12-05 11:19:38 386

原创 OpenHarmony源码中添加预置应用

有一个这样的需求,需要将我们自己的测试工具hap包集成到OpenHarmony系统中,在刷机的时候就可以像系统应用一样是系统自带的应用,所以下面我们就来介绍如何将应用集成到系统中。将编译好的hap包放到xxx\applications\standard\hap路径下,如下就是我们将测试工具Fct.hap放到路径下面。vendor/xxx/xxx/preinstall-config/install_list.json添加代码,配置其可以安装。代码如下:其中xxx.xxx.xxx是包名。

2024-12-05 09:59:07 597

原创 鸿蒙应用如何进行文件下载(官方文档13499999错误解决方案)

为何记录鸿蒙应用下载文件的流程,主要是因为官网的文档有坑,写的有问题,我是在3.2版本的进行开发的,如下是3.2的OpenHarmony关于文件上传和下载方面的文档,其实上传我没有尝试,但是应该是同一个问题。最后就是调用如上的downloadTest方法,其中progresCallback中是显示进度的,如下就是正在下载中。然后下载完成会在应用的包名下面找到,由于有沙箱机制,所以代码中的路径和实际路径是有差异的,如下就是下载后的文件。如下是完整代码,其中下载地址我也写上去了,目前还能用,可以直接测试。

2024-11-28 20:00:53 380

原创 Ubuntu 20.04 配置开发环境(持续更新)

搜狗输入法不能显示中文。

2024-11-14 15:47:22 524

原创 鸿蒙开发与Android开发对比

前期主推JavaScript Framework(JSF)进行UI和业务逻辑开发,同时也支持Java和Kotlin,当前的纯血鸿蒙开发只能使用ArkTs语言进行开发。总结,鸿蒙和Android在开发体验、生态系统和目标市场等方面存在显著差异,开发者在选择时需考虑这些因素以及各自的项目需求。Java和Kotlin是主要的开发语言,Java曾是传统选择,Kotlin现在被广泛推荐并成为首选。具有庞大的开发者社区和丰富的应用市场,Google Play商店提供大量应用。

2024-10-28 15:03:04 1056

原创 状态栏黑底白字后如何实现圆角以及固定状态栏

上述是将状态栏实现黑底白字+圆角+状态栏固定的逻辑。

2024-10-25 20:06:45 243

原创 android SELinux权限适配

添加权限(sepolicy 1),然后编译,刷机,重新验证。这时候又遇到(sepolicy 2)的权限策略,又需要进行添加权限的设置。如果程序需要多个权限,就需要反复进行设置权限。对于将selinux设置为permission mode,分二种方法:1,执行setenforce 0命令即可。2,修改init代码,在初始化的时候设置为permission mode,不同版本方式不一样。遇到neverallow问题需要自定义权限域,如下是添加到vendor_sysfs_usb_supply权限域中。

2024-09-29 16:11:25 1304

原创 Android 13 固定systemUI的状态栏为黑底白字,不能被系统应用或者三方应用修改

在colors.xml编写自定义的状态栏背景色以及状态栏内容的颜色,然后后续所有的位置都是用这两个自定义的颜色进行填充,这样的好处是后续我们想改变状态栏背景色或者状态栏的内容颜色直接改变这两个颜色值即可。

2024-09-12 19:47:22 893

原创 Framework源码整编、单编、烧录过程

源码编译分为整编和单编,整编通常耗时较长,单编则速度很多,如果我们进行一个小的修改想要立马验证的话单编就很合适。

2024-08-01 19:03:13 515 1

原创 Android 基带版本号显示不正确,显示了多个一样的基带版本号

Android Framework层基带版本号

2024-07-27 19:45:24 275

原创 ubuntu中git log中文乱码

要在 Ubuntu 上永久设置环境变量,你可以将其添加到你的 shell 配置文件中。

2024-07-22 19:41:41 603

原创 鸿蒙应用开发将Promise的多个异步处理改成同步处理,解决回调地狱问题

其实在实践过程中大家会发现鸿蒙中的很多api都是异步的,我们如果用异步开发的步骤需要在回调中进行处理,如果有多个异步操作就会嵌套多层,这样看起来代码很紊乱。如果是在for循环中添加多个异步操作,则数据会造成紊乱,因为是异步操作for循环不会等待异步操作完成再进行下一个循环,他会立即进入循环,所以就会出现数据紊乱。

2024-06-18 09:47:43 809

原创 OpenHarmony及鸿蒙应用的屏幕亮度获取以及设置

对应的OpenHarmony版本:V3.2查找资料发现V3.2版本的OpenHarmony没有获屏幕亮度的接口,只有设置屏幕亮度的接口,这个就很奇怪,所以我最终的方案是获取屏幕亮度使用老的接口,设置屏幕亮度使用新的接口,这样就完成了这个需求。

2024-05-31 10:58:33 712

原创 OpenHarmony以及HarmonyOS应用监听亮屏息屏

表示设备屏幕关闭且设备处于睡眠状态的普通事件的动作。表示设备屏幕打开且设备处于交互状态的公共事件的操作。

2024-05-30 19:51:38 552

原创 OpenHarmony应用开启Service以及完成自启动和常驻

由于有需求实现一个后台常驻服务,这里就是来实现在鸿蒙里面如何实现后台服务并且实现自启动和常驻。

2024-05-28 20:12:47 2368 2

原创 OpenHarmony应用在DevEco Studio配置默认密钥为123456的签名如何进行一键签名,运行起来

可以看出上面的要求纯数字是不行的,但是按照上面的签名方式步骤又很复杂,所以我还是喜欢一步到位的操作,目前来看官方的方式肯定不行了,需要另辟蹊径,思路是1.完成自动化签名操作 2.将自动化签名操作放到DevEco Studio中。最后两个 属性是未签名的hap路径以及签名过后的路径,签名输出的路径最好就是和DevEco Studio的一致,这样好进行后续的DevEco Studio配置。注意路径都是绝对路径,我这边尝试相对路径是报错的,我这边对应的文件如下,如果有不明白的需要参考。然后在Name中添加名称。

2024-05-28 19:41:07 602

原创 应用中添加ServiceExtensionAbility然后安装HAP时提示“code:9568344 error: install parse profile prop check error”错误

该问题可能是由于应用使用了应用特权,但应用的签名文件发生变化后未将新的签名指纹重新配置到设备的特权管控白名单文件install_list_capability.json中,请通过如下步骤进行解决。在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile prop check error”错误信息。去掉冒号后的签名指纹为:5753DDBC1A8EF88A62058A9FC4B6AFAFC1C5D8D1A1B86FB3532739B625F8F3DB。

2024-05-27 16:47:11 811

原创 息屏休眠功耗超标问题排查流程及解决方案

日志中可以看出来红框的部分是第一次NetworkTimeUpdateService类到NtpTrustedTime类中进行的时间同步完成流程,可以看出耗时了40s,然后再看蓝框的部分是第二次时间同步,可以看出由于第一次时间同步未完成,然后还在锁住状态,所以sychronized。这个日志可以看出前面的唤醒锁很多,到后面逐渐变少直到最后没有了,这些锁就是导致当前不能休眠的原因,分别从最前面的size=5开始查看。上述修改是生效的,但是不一定正确,一般是把分析结果呈现出来,尽量不修改。

2024-05-17 17:07:23 307

原创 wireshark工具的安装和使用

任何捕获的数据包都有它自己的层次结构,Wireshark 会自动解析这些数据包,将数据包的层次结构显示出来,供用户进行分析。默认情况下,Wireshark 会捕获指定接口上的所有数据,并全部显示,这样会导致在分析这些数据包时,很难找到想要分析的那部分数据包。例如,要从捕获到的所有数据包中,过滤出 DNS 协议的数据包,这里使用 dns 显示过滤器,过滤结果如图所示。显示过滤器是基于协议、应用程序、字段名或特有值的过滤器,可以帮助用户在众多的数据包中快速地查找数据包,可以大大减少查找数据包时所需的时间。

2024-05-08 19:44:18 963

原创 Android Telephony架构讲解

采用了分层结构的设计,共跨越了三层:应用层、应用框架层和系统运行库层,与Android操作系统整体分层结构保持一致,从上到下共分三层:Telephony应用、Telephony框架、,无线通信接口层,主要位于系统运行库层的HAL中)。学习过程中一般选取一个模块,从上往下看,比如打电话,从Dialer到Telephony到RIL(RILJRILDRILC),再比如SMS,数据拨号,这样梳理两三个流程,就会豁然开朗。

2024-05-08 19:31:58 1945

原创 Android 11 12 13耳机图标不显示问题解决方案以及整个图标显示流程

【代码】Android 11 12 13耳机图标不显示问题解决方案。

2024-04-30 10:05:16 1132 1

OpenHarmony 5.1.0 full sdk公版的previewer-windows-x64-5.1.0.107-Release部分,注意此处是解压替换的路径和之前的不一致

OpenHarmony 5.1.0 full sdk公版的previewer-windows-x64-5.1.0.107-Release部分,注意此处是解压替换的路径和之前的不一致

2025-05-23

OpenHarmony 5.1.0 full sdk公版的js-windows-x64-5.1.0.107-Release部分

OpenHarmony 5.1.0 full sdk公版的js-windows-x64-5.1.0.107-Release部分

2025-05-23

OpenHarmony 5.1.0 full sdk公版的ets-windows-x64-5.1.0.107-Release部分

OpenHarmony 5.1.0 full sdk公版的ets-windows-x64-5.1.0.107-Release部分

2025-05-23

OpenHarmony 5.1.0 full sdk公版的native-windows-x64-5.1.0.107-Release部分

OpenHarmony 5.1.0 full sdk公版的native-windows-x64-5.1.0.107-Release部分

2025-05-23

OpenHarmony 5.1.0 full sdk公版的toolchains-windows-x64-5.1.0.107-Release部分

OpenHarmony 5.1.0 full sdk公版的toolchains-windows-x64-5.1.0.107-Release部分

2025-05-23

SIM卡相关压测工具使用

SIM卡相关压测工具使用

2024-08-13

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关注的人

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