自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

十年饮冰,难凉热血

技术等于兴趣

  • 博客(458)
  • 资源 (145)
  • 问答 (2)
  • 收藏
  • 关注

原创 驱动-传参实验-ioctl

用户如果要对外设进行操作,对应的设备驱动不仅要具备读写的能力,还需要对硬件进行控制。以点亮LED灯驱动实验为例,应用程序通过向内核空间写入1和0从而控制LED灯的亮灭,但是读写操作主要是数据流对数据进行操作,而一些复杂的控制通常需要非数据操作,这时本章节要学习的ioctl函数就闪耀登场了。

2025-05-16 11:05:17 169

原创 驱动-定时-秒-字符设备

这个程序实验,用到了原子操作+定时器timer_list+字符设备操作。简要了解即可,加深前面知识印象。

2025-05-15 19:03:26 384

原创 驱动-Linux定时-timer_list

硬件为内核提供了一个系统定时器来计算流逝的时间(即基于未来时间点的计时方式, 以当前时刻为计时开始的起点, 以未来的某一时刻为计时的终点) , 内核只有在系统定时器的帮助下才能计算和管理时间, 但是内核定时器的精度并不高, 所以不能作为高精度定时器使用。并且内核定时器的运行没有周期性, 到达计时终点后会自动关闭。如果要实现周期性定时, 就要在定时处理函数中重新开启定时器。Linux 内核中使用 timer_list 结构体表示内核定时器, 该结构体定义在“内核源码/include/li。

2025-05-15 17:18:24 745

原创 驱动-互斥锁

将信号量量值设置为 1, 最终实现的就是互斥效果, 这里要了解的互斥锁功能相同, 虽然两者功能相同但是具体的实现方式是不同的, 但是使用互斥锁效率更高、更简洁, 所以如果使用到的信号量“量值”为 1,一般将其修改为使用互斥锁实现。当有多个线程几乎同时修改某一个共享数据的时候, 需要进行同步控制。线程同步能够保证多个线程安全访问竞争资源, 最简单的同步机制是引入互斥锁。互斥锁为资源引入一个状态: 锁定或者非锁定。某个线程要更改共享数据时, 先将其锁定, 此时资源的状态为“锁定” , 其他线程不能更改;

2025-05-09 18:07:11 956

原创 驱动-信号量

信号量是操作系统中最典型的用于同步和互斥的手段, 本质上是一个全局变量, 信号量的值表示控制访问资源的线程数,可以根据实际情况来自行设置, 如果在初始化的时候将信号量量值设置为大于 1, 那么这个信号量就是计数型信号量,允许多个线程同时访问共享资源。如果将信号量量值设置为 1, 那么这个信号量就是二值信号量, 同一时间内只允许一个线程访问共享资源,注意!信号量的值不能小于 0。当信号量的值为 0 时, 想访问共享资源的线程必须等待, 直到信号量大于 0 时,等待的线程才可以访问。

2025-05-09 15:56:52 755

原创 Launcher3-实现家长管控-儿童模式-老人模式

借助之前文章分析,开机自启应用的一个逻辑,判断是否设置过模式【开机自启APP】+ HOME 按键监听 来实现逻辑默认的Launcher 是 安卓自带的Launcher3. 这篇文章借助于系统实现了功能。如果Launcher 是第三方应用自己开发,则在其它Launcher 中实现逻辑即可。

2025-04-29 13:48:43 708

原创 MTKAndroid12-13-开机应用自启功能实现

这里从系统角度 给出了应用自启的一个解决方案,建议不要用开机广播实现涉及到的知识点需要了解基本的Launcher3 源码 和 Settings.System, Settings.Secure和Settings.Global存储的应用。

2025-04-28 17:46:23 1085

原创 MTK Android12-13 App卸载加锁

多分析源码,看流程看业务MTK Android12 安装app添加密码锁限制PMS 本身功能比较多,代码量大,多打日志看流程。用 IDE 开发工具查看源码,提高代码阅读效率。

2025-04-28 12:16:20 720

原创 Android 13.0 MTK Camera2 设置默认拍照尺寸功能实现

实现了MTK Android13 平台下默认图片大小的逻辑分析了解决问题的思路,源码分析流程建议对Camera2 相关知识需要一定的了解最好在查看源码的过程中,难免找不到关键字,不知道修改哪里。可以借助IDE- AS VS 操作,方便定位源码位置。

2025-04-27 11:46:17 1022

原创 MTKAndroid13-Launcher3 屏蔽部分app不让显示

这个需求解决方案,完全根据代码找到并进行修改实现,思路还是很清晰的建议多看看Launcher 相关基础知识,对业务和流程分析非常有好处的。

2025-04-25 14:09:04 745

原创 驱动-自旋锁死锁

通过程序验证,和自旋锁死锁 有了初步认识为什么会死锁,为什么之前的自旋锁环境没有死锁,这个地方需要思考下。指定了CPU、内核睡眠等待、其它进程重复获得自旋锁等原因造成的自旋锁的实际案例和规避死锁,后面再进一步理解的要。

2025-04-19 12:56:11 832

原创 驱动-自旋锁

这里简单介绍了自旋锁的应用场景,需要了解原理和使用api 即可。

2025-04-18 00:15:00 740

原创 驱动-原子操作

原子操作可以理解为一个计数器,一个原子变量,更具原子变量的值是否是预设的值来保护程序,防止程序资源竞争。

2025-04-17 15:02:12 665

原创 驱动-并发与竞争

并发与竞争这么多年接触下来,操作系统下 不同的编程语言都有对应的 并发、并行、线程、进程、同步、异步一说。这些核心本质其实是操作系>统的机制。那么不同开发语言下面对应的形态不一样而已,表现形式不一样,但是基本概念、实现原理 都是基于操作系统的。在上学课本上面操作系统学科里面 应该是第一次接触进程、线程、这些基本理论的。这里我们在驱动层面 理解 实验。

2025-04-17 11:19:06 765

原创 MTK-Android12 13 屏蔽掉Viewing full screen

一个简单的需求,知道修改方案,解决方法最重要。

2025-04-16 14:47:30 1534 4

原创 驱动-兼容不同设备-container_of

本篇其实还是对以前技术的总结,这里着重用到了函数 container_of,有点面向对象的意思。这里适配不同的驱动设备只是一个案例而已。

2025-04-16 00:15:00 643

原创 驱动-文件私有数据

Linux 中并没有明确规定要使用文件私有数据, 但是在 linux 驱动源码中, 广泛使用了文件私有数据, 这是 Linux 驱动遵循的“潜规则” , 实际上也体现了 Linux 面向对象的思想。structfile 结构体中专门为用户留了一个域用于定义私有数据这里对私有数据 结构体 file,通过它实现了了私有数据的共享,file 在open 、read、write 等文件操作中共享,利用共享的私有数据 定义的又是指针类型,然后封装数据,实现效果的。

2025-04-15 01:00:00 650

原创 MTK Android12-13 -Intent Filter Verification Service 停止运行

分析源码、参考资料解决 Intent Filter Verification Service 停止运行 错误这里其实其实延伸来看就是屏蔽部分包名ANR、崩溃弹框的解决方案。

2025-04-15 00:15:00 1424 2

原创 开源项目Syncthing-Android环境搭建与编译

自己花了好几周,找了好多资料,测试无数测最终解决了编译问题:其实就是两个大问题,需要看到具体日志,然后解决。github 依赖的资源无法访问,需要解决ubuntu 访问github 问题,修改dns 路由解决go 在编译过程中编译不成功,需要解决网络接口不可达,设置go 代理来解决。

2025-04-12 12:04:23 1140

原创 驱动-内核空间和用户空间数据交换

copy_from_user 和 copy_to_user 是 Linux 内核中用于在用户空间和内核空间之间安全传输数据的两个重要函数。内核和用户态数据传递就是通过两个方法调用来实现,回调到用户态其实就是指针传递。

2025-04-12 00:15:00 1157

原创 驱动-杂项设备

看杂项设备还是要和标准字符设备对比来看,主设备号固定为10,次设备号动态分配,简化了字符设备驱动的注册流程,适用于功能简单的设备杂项设备也有自己的结构体miscdevice 、file_operations ,却别与标准字符设备的 设备号结构体dev_t ,注册的字符设备结构体cdev ,文件操作集合结构体file_operations。

2025-04-11 09:00:33 677

原创 驱动-字符设备驱动框架

这里是对字符设备的一个总结,前面知识的进一步理解字符设备最终通过 文件结构体 file_operations 来实现,系统和驱动之间文件操作方法的映射。

2025-04-11 00:15:00 933

原创 MTK-删除设置首页菜单项

实现屏蔽系统设置中壁纸菜单的需求,了解系统设置一级菜单的加载显示原理这里设计到的相关内容也是设置里面需要重点掌握的基础知识。

2025-04-09 12:18:28 837

原创 驱动-创建设备节点

字符设备知识点中的 设备节点创建内容熟悉结合以前的知识,字符设备设备号申请,字符设备注册内容进一步熟悉设备注册、类、设备创建后 在驱动卸载的时候记得 卸载。

2025-04-09 00:15:00 658

原创 MTK-Android12-13 屏幕永不休眠功能实现

这里重点是PMS 在息屏时间上面的一个功能分析关联到PMS 里面实现的另外一个功能 屏保功能 都是跟息屏相关,部分逻辑业务关联的对于默认息屏时间,这里属于新增息屏时间选项的一个功能。如果需要新增其它息屏时间选项,只需要在修改息屏时间源即可 就 不需要修改PMS了。

2025-04-08 12:18:32 1520

原创 MTK-Android12-13 修改默认息屏时间

实现需求很简单的,找到对应配置即可如果需要了解实现业务、逻辑,还需要进一步看一看代码流程和代码思路,在代码里面找答案。

2025-04-08 01:00:00 1881

原创 驱动-注册字符设备

字符设备号申请-字符设备注册 基本知识进一步熟悉字符设备注册几个函数要掌握 cdev_init - cdev_add - cdev_del涉及到的结构体 需要理解,后面才能举一反三,接下来还有其它基本知识需要掌握。

2025-04-07 17:59:18 589

原创 驱动-申请字符设备号

之前的动态传参实际应用设备号的理解,动态和静态申请设备号熟悉理解,后续必须用到的基础知识字符设备号在系统位置的熟悉。

2025-04-07 15:24:41 756

原创 驱动-内核模块开发中的符号导出机制

如何实现模块之间变量和函数的共享传递,用到EXPORT_SYMBOL 导入、extern 导入。

2025-04-07 12:20:48 841

原创 MTK-GMS版本国内WIFI受限问题

MTK-GMS版本国内WIFI受限问题解决。

2025-04-03 23:12:38 474

原创 驱动模块传参实验

驱动传参,先声明方法,如上是基本数据类型,声明出来 module_param,并给类型和权限【一般就写0644,对于新手而言】传参引入的头文件是 <linux/module.h> ,不要写成了 <linux/moduleparam.h>,或者同时存在时候规避一下,不然引用头文件加载同一个方法导致传参失败boolean 类型传参,实际传递参数是0 和1,如果用true 和 false 就会失败的,系统不认识。如上实验打印信息。

2025-04-03 14:28:38 938

原创 播放本地视频-实现视频画廊功能

针对市场上面播放显示效果做了一个简单的总结 和 避坑指南,实际效果确实不一样,很nice。

2025-03-27 19:51:11 479

原创 Android 动态设置默认Launcher(默认应用 电话-短信-浏览器-主屏幕应用))

所以,整套流程分析下来,设置默认App,这里HomeLauncher 举例,核心逻辑就是给包名一个role 权限,然后写入到文件,最后同步一次,通知系统。如上分析了一整套默认Launcher 的代码逻辑业务,同理对于默认浏览器、短信、打电话等完全适用。通过反射实现 想要的功能,反射RoleManager 类,的addRoleHolderAsUser 方法比较合适,而且有回调。整个流程里面发现其它类的调用并不合适。

2025-03-27 19:15:39 1186

原创 MTK平台 Android12-Android13 默认搜狗输入法

常用客需功能,仅供参考,在MTK平台上面的实践,在RK平台上面只有内置方式不一致而已,默认方式和授权其实一样的。这里只是搜狗输入法的默认方式一次探讨,其它输入法默认 思路完全一样。每种输入法有自己优劣,具体场景具体客需具体对待。

2025-03-25 19:00:00 1080

原创 MTK Android12-Android13 设置系统默认语言

上面看到PRODUCT_LOCALES 引用地方, 赋值了PRODUCT_DEFAULT_LOCALE 变量,其实调用了方法get-default-product-locale 传递了参数 PRODUCT_LOCALES,这里就是 变量 PRODUCT_DEFAULT_LOCALE 的定义接下来其实就要继续看 变量PRODUCT_DEFAULT_LOCALE 在哪里引用 已经 get-default-product-locale 方法说明。

2025-03-25 18:34:49 1087

原创 Android11-12-13 替换系统默认壁纸

针对客户定制的壁纸,简要总结一下,梳理知识。默认壁纸替换,结合之前壁纸设置都是基本知识点。关联的开机动画其实都是相关的基本知识,常见的客需。

2025-03-24 20:58:32 697

原创 Android 静态壁纸设置实现方案

这里实现了静态壁纸设置的方法,就是一个反射或者api 调用。实际 逻辑比较简单的这里只是从系统app WallpaperPicker,通过界面,反推实现设置静态壁纸的逻辑和分析代码层面的流程和业务。实际上 WallpaperPicker App有很多设计思想和架构设计,这里暂不深究。如果客户定制,需要动态壁纸功能。这里暂不分析,后续有机会实现下,暂不提供解决方案。

2025-03-24 20:09:20 894

原创 Camera2 实现重力感应四个方向调试相机预览

Camera2 实现基本API操作重力感应四个方向适配,注意显示UI组件几个必备操作:显示大小、缩放、旋转、旋转位置x、y作为一个笔记篇,使用地方蛮多的,简单总结核心基本代码如下static {@Overridefinish();

2025-03-22 18:38:01 1225

原创 RK平台下Buildroot驱动编译环境入门

这里总结下基本的核心步骤VM安装,注意内存设置VM上面安装ubuntu ,提前准备.iso 镜像ubuntu环境准备。install.sh 编译环境准备、设置中文输入法、设置源依赖仓库环境 阿里的、设置VMtools 、设置共享盘 方便共享编译文件准备编译Buildroot, 设置内存13-14G,预留部分。编译过程中不可操作电脑。编译成功后,重设VM内存8G左右不管你编译什么系统,编译脚本不一样,环境配置需求不一样。但是ubuntu 安装基本一致,然后就是搭建编译环境的事情了。

2025-03-22 10:59:51 722

原创 MTKAndroid12 解决SystemUI下拉框中,长按WIFI图标会导致崩溃问题

通过这里的笔记学习和相关资料参考搞清楚Handler、Loop 的基本原理 相关原理不复杂需要掌握基本知识;搞清楚Looper.loop Lopper.prepare、Loop.getMainLooper 这些方法的使用。

2025-03-22 10:57:19 874

SystemUI 截屏快捷功能添加

MTK、RK SystemUI截屏功能添加,针对Android12 版本,各个平台下拉框快捷面板无截屏功能的现状,在QS面板添加截屏功能按钮,方便客户友好快捷使用。

2024-08-12

SystemUI QS 面板新增截屏功能按钮资源代码

Android12 版本上面的QS快捷面板是没有截屏功能按钮的;在自己负责的RK、MTK 相关产品中,用到了RK和mtk平台,客户有截屏功能按钮的需求。 那么如何实现QS面板功能按钮,就必须对SystemUI有所了解,了解QS、QQS、SystemUI加载机制,SystemUI思想。 然后在此基础上,实现这个功能需求。

2024-08-11

mtk Android12 关机界面定制

mtk Android12 关机界面定制,去掉关机和重启时候显示 正在关机和进度条的样式,显示一张整体图片。

2024-08-08

RK3568源码编译手册:Android11、12源码;Linux、Linux-5.10内核源码

RK3568 平台,源码相关编译指导,方便Android11、Android12 Linux 源码包,方便编译用,有一个编译平台,方便进行Android、驱动 基础,实验开发。

2024-08-07

3568开发板驱动开发指南

驱动开发指南: 驱动学习的开发指南,文档。采购北京迅为电子有限公司的3568开发版,进行驱动基础学习,上传开发指南文档,方便大家借鉴学习,对驱动基础开发和实验实践有借鉴意义,指导学习。

2024-08-07

Flutter 轮播图插件

Flutter 轮播图实现

2024-01-13

Flutter 不同终端适配方案

Flutter 不同终端适配方案

2024-01-12

flutter 搭建项目架构

借助Getx 大奖项目架构: 1)底部导航 2)Obx getX 实现动态更新UI; 3)PageView和底部导航联动

2024-01-12

Flutter 基础教程,入门级别 教程必备

Flutter 基础教程,入门级别 教程必备; Flutter 学习必备 Flutter 各种组件扫盲

2024-01-10

Flutter 框架Getx

Flutter 框架Getx

2024-01-10

flutter 搭建首页框架 Scaffold 与 PageView 实现

flutter 搭建首页框架 Scaffold 与 PageView 实现

2023-11-17

正则表达式必备.txt

常用正则表达式,开箱即用

2021-02-18

编辑器 Notepad++.zip

Android系统的方案,对应手机、平板、各种实际定制的设备,怎么抓取日志。最简单最直接就是adb logcat实现。但是实时查看+记录总是觉得不方便。可以直接用这个编辑器即可。

2020-03-28

springboot2_mybatis_durid_pager.zip

SpringBoot2集成mybatis进行curd操作; 集成pagehelper进行分页操作; DataSourceConfig进行数据源配置; 集成Durid进行连接池配置 集成PageHelper进行分页配置 SpringBoot2实现Json格式请求方式接受参数

2020-02-02

springbootstudy.zip

利用SpringBoot集成邮件服务,实现SpringBoot发送邮件功能。其中QQ邮箱、gmail邮箱、163邮箱、126邮箱均在代码resources文件夹下面已经配置,如果想用什么邮箱直接从配置中配置到application.yml中即可。每个邮箱发送邮件均已经测试OK。

2020-01-31

cookie_session.zip

DJango框架中cookie、session实际应用,简单的登录、跳转首页的demo。运用到cookie、session技术,初步理解cookie/session在实际当中的实际应用。通过demo实际操作来理解cookie/session

2019-11-07

paginatorDemo-master.zip

DJango分页组件Paginator应用,简单的Demo案例,详细注释说明。初步理解分页组件Paginator的使用。

2019-11-05

FormsStudy.rar

DJango 多表查询操作,理解表与表之间关系,数据之间操作。

2019-11-02

Android声音模式定制.rar

修改Framework系统层,针对Audiomanager、AudioService、IAudioService.aidl修改,添加方法和实现,来实现声音模式设置,也就是声音大小定制

2019-08-28

系统签名.rar

系统签名工具,用于android系统签名,Apk签名;适用于android4.4/5.1/6.0,其它平台可以试一下。 使用方式:解压后,写一下脚本,然后执行脚本即可生成签系统签名的apk。具体使用方式可以参考:https://blog.csdn.net/ItJavawfc/article/details/99946224

2019-08-21

Ubuntu18-系统编译

VM 安装Ubuntu18 系统环境,在ubuntu环境下配置驱动学习的编译环境。

2025-03-22

USBCamera-Camera1 预览、拍照、录像

USBCamera 功能实现; 基于Camera1 API 对相机基本操作:预览、拍照、录像、切换相机、USBCamera 打通 Demo

2025-03-07

MTK Android12/13 系统设置 适配遥控器

MTK Android12/13 系统设置 适配遥控器: 设置一级界面,是没有遥控器适配的,原因可以看具体源码分析,里面说明了为了让滑动。 但实际大屏电视或者大屏其它产品是需要遥控器适配的。

2025-01-13

MTK 关机重启适配遥控器功能

MTK 关机重启适配遥控器功能

2025-01-13

日常使用属性配置文件文件-device.mk-gms.mk.zip

通过两个配置文件 device.mk 、gms.mk 的配置内容的借鉴, 了解: 1)第三方应用、系统应用如何内置 2)属性如何配置、配置哪些属性 3)gms 相关的配置及配置 方案位置等

2024-12-12

开机向导源码: 2套开机向导源码+MTK 开机向导定制思路指导

开机向导为apk,没有源码的,对于部分定制需求的客户,难以满足定制要求。 1)这里提供了2套开机向导源码,可以直接编译到系统里面去,替换开机向导apk,实现定制的需求; 2)同时,根据开机向导的源码,理解开机向导的思路,对于系统属性获取,对于那些模块显示与隐藏,对于资源、属性、主题 等定制有一定的参考价值。

2024-12-11

开机向导定制资源,自定义开机向导资源apk、开机向导apk

开机向导定制资源,自定义开机向导、开机向导apk: SetupWizardOverlay-master.zip 第三方开机向导资源包定制 MTK Android12 开机向导资源apk Deo

2024-12-10

Framework开机自启服务-应用-自动执行-循环检测功能

Framework开机自启服务-应用-自动执行-循环检测功能: 1)开机后启动某个服务 2)开机后自动启动某个应用 3)开机后开始检测设备外设状态,根据外设状态进行对应功能实现

2024-12-04

定时开关机功能,实现定时开关机功能

开关机源码:MTK8.1 自带开关机源代码。在当前Android12 Android13 Android14 的安卓平台具有参考意义,直接复用即可。

2024-10-21

系统设置实现WIFI密码显示功能

系统设置实现WIFI密码显示功能,点击进入系统设置wifi界面,显示wifi密码框为选中状态。

2024-09-29

系统实现悬浮原点-功能定制,系统公版实现悬浮框,悬浮白点,悬浮菜单功能

系统实现悬浮原点-功能定制,系统公版实现悬浮框,悬浮白点,悬浮菜单功能

2024-09-27

悬浮球效果,悬浮按钮,悬浮框 Demo 源代码

悬浮球效果,悬浮按钮,悬浮框 Demo 源代码,Android直接运行项目程序跑起来。可以借鉴代码,应用层实现悬浮功能。

2024-09-26

TurnOffReboot.zip Android 实现重启、关机 功能

各个平台,通过反射实现系统的关机、成功起操作; 针对部分客户有相关需求、定制开关机 功能的场景。 关机、重启 功能 demo 工程。

2024-09-15

MTKCamera预览、成像、拉伸代码简要片段

1)MTK平台,预览、拉伸、成像问题核心代码片段修改 2)视频成像方向异常 修复核心片段 3)预览方向不对,修复核心片段 4)人脸检测由于旋转镜像导致人脸检测显示不对,直接隐藏实现

2024-09-10

recovery出厂时清除中-文字清除.zip

恢复出厂设置-清除recovery显示的文字

2024-09-09

Android13-SystemUI新增音量条

MTK/RK 平台,Android13 SystemUI 新增音量条; Android13 QS快捷面板,新增音量控制逻辑

2024-09-08

无障碍服务工具类,在源码基础上添加日志,方便check 流程

1、无障碍服务工具类,在源码基础上添加日志,方便check 流程。 2、RK平台,无障碍服务的源码,和其它平台代码大同小异,可以对比看看 3、工具类中,分析无障碍快捷开关 打开关闭调用

2024-08-16

Rk Android12 Setting 源代码

RK平台,Android12 版本,Setting 模块源代码,方便导入AS 查看跟踪Android系统设置模块代码,方便分析代码、追踪代码使用,提供工作效率

2024-08-15

去除开机动画结束后显示正在启动;去掉开机后进入Launcher前黑屏;延时实现开机动画播放完全

解决三个问题: 1)去除开机动画结束后显示正在启动; 2)去掉开机后进入Launcher前黑屏或者白屏; 3)延时实现开机动画播放完全。 4)FallbackHome 内容定制

2024-08-15

Rk3568 Android12 SystemUI 源码

Rk3568 Android12 SystemUI 源码,AndroidStudio可以直接导入,方便分析源码,跟代码流程。

2024-08-13

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

TA关注的人

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