- 博客(370)
- 资源 (145)
- 问答 (2)
- 收藏
- 关注
原创 KeyCode及KeyCode分发机制
从大的方向将,物理按键始于外部输入,在Kernel 响应,再传递到Service或者View层消费,对于Kernel层、系统层暂不研究。总的来讲:系统响应KeyCode,这些KeyCode是外设作为输入源,KeyCode 键值就是Android一套标准的协议。比如物理按键操作之后,系统是如何分发、响应、处理、拦截呢?比如我们需要客制化一些物理按键功能,如何实现呢?这里给出谷歌官方KeyEvent 事件,里面总结了所有的KeyCode。声音音量也是一样的,在这个方法中进行了处理一次,再响应给View来处理。
2024-09-19 00:46:42 957
原创 Android12_13左上角状态栏数字时间显示右移动
其实对SystemUI有几本了解,一看就知道这个UI的位置,具体就是一个Clock,我给出之前博客中的部分基础知识,方便了解SystemUI。1)早期一般屏幕都是方形的,但是曲面屏,比如:好多车机Android产品、魔镜产品、手机产品,观察下他们的顶部左右是圆弧形的,为了美观。2)现在大部分手机产品左上角是摄像头Camera 在顶部左边占据一定的位置,所以时间相关的就必须往右移动。3)好多Android产品有自己的私模,顶部左右有一些装饰的弧形遮挡物,导致左上角是看不到的。重点看一下基础知识储备部分。
2024-09-11 23:46:01 730
原创 Android 亮度范围定制
最终通过日志打印,查看0-255 的亮度值,因为在brightnessIntToFloat 和 brightnessFloatToIntRange 中,我们设置了最小亮度65,也就是166,所以 我们编译固件,看日志打印就是166-255 的范围。比如:0-60% 亮度不变,那么我们把60%-100%的控制范围扩充到0%-100%,控制范围变大,控制区域保持一致。这里补充下:零时亮度,最终设置是需要走到如下 put 到系统里面取,才是真正的设置亮度,这个方法也是应用层设置亮度的方法呀。
2024-09-11 00:26:25 1118
原创 Camera2 预览旋转方向、拍照、录像成像旋转
自己在开发MTK相机、RK 相机 Camera2 预览旋转方向、拍照、录像成像旋转问题,简单整理总结,后续相关开发可直接参考1)在布局、预览镜像和Activity及对应控制管理的方法中对布局和镜像旋转、设置预览分辨率等来解决2)Manifest.xml 配置修改,规避窗体变化导致布局镜像异常3)预览、拉伸、成像异常在对应的文件中修改部分源码参考片段。
2024-09-10 22:04:29 1245
原创 Android系统去掉WIFI模块
SystemUI中的修改需要熟悉SystemUI基本内容系统设置中的WIFI模块隐藏去掉可以反向通过 显示字符串,反向找到布局,加载布局的UI Fragment或者Activity,最后通过命令验证推理,实现最终需求。
2024-08-17 00:45:31 816
原创 无障碍服务屏蔽_关闭无障碍服务快捷方式
问题描述:1)部分app 存在无障碍服务功能,需要关闭2)对于客户自研App,自己具备系统签名自己直接开启了无障碍服务并且打开了无障碍服务快捷方式,如何关闭无障碍服务快捷开关。
2024-08-16 00:17:14 855
原创 去掉开机正在启动,去掉开机黑屏问题
问题描述:1)开机动画播放不完整,第一次刷机启动能够播放完整,后面开机开机动画播放只有2秒左右2)开机动画播放完后在进入Launcher之前会有一个 "正在启动…"显示着3)开机动画播完后进入Launcher前有一个黑屏阶段或者白屏阶段。
2024-08-15 23:37:04 855
原创 Android12 SystemUI QS面板新增截屏功能
Android12 中在SystemUI的QS面板添加截屏功能按钮,目前在RK和mtk 平台验证过,实现步骤基本一致quick_settings_tiles_default 中配置QSTitle 的功能字符串QSTitleHost.java 类中加载配置,通过for 循环创建配置中的所有Title 面板,创建方法:createTile在具体面板中,通过接口来实现基本功能控制最后接口实现和接口在StatusBarPolicyModule 中绑定即可。
2024-08-13 02:32:57 1045
原创 MTK Android12 SystemUI 手势导航 隐藏导航栏底部布局
MTK Android12 底部手势布局隐藏,实现所有APP能够全屏显示。
2024-08-09 01:02:47 1098
原创 MTK Android12 关机界面全屏展示
实现点击关机【重启一样的逻辑】,弹出一个界面的需求,实现方式:1)去掉关机、重启的dialog的 dismiss方法,mDialog.dismiss();【也可以不去,全屏界面会盖住】2)在关闭实现全屏界面,这里用全屏dialog 实现。
2024-08-08 23:38:08 1070
原创 HelloWorld驱动编写和加载驱动实验
这里涉及到开发环境,比如RK3568的开发板,开发板只是一个硬件环境,在这个硬件环境上面需要跑一个系统来支持驱动的加载。1、我们用RK3568开发版,用Ubuntu电脑编译一个Buildroot 系统跑上去,比如机器开机如下:这只是一个跑驱动的环境而已,也可以开发板上跑ubuntu系统,Buildroot 比较简单,方便测试而已。驱动helloworld.c 文件已经写好了,但是形成驱动文件,还需要配置一个Makefile 文件,再进行编译得到驱动文件,驱动加载才能让驱动跑起来。
2024-08-08 01:38:27 697
原创 Mac AnroidStudio 多渠道打包问题
问题Mac 升级后配置多渠道打包,命令打包失败,如下:Could not find tools.jar 问题处理AS 直接报错:Please check that /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home contains a valid JDK installation.解决方案首先查看JDK路径:查看 JDK 位置的命令 /usr/libexec/java_home -V(升级 OSX11.0.
2021-06-23 11:21:41 275
原创 Redis 基础
Redis HelloWorld安装相关查看安装及配置文件位置启动Redis 服务查看Redis服务进程redis-cli连接redis服务关闭Redis 服务器redis.conf 配置文件详解安装相关Mac 环境下Homebrew 安装查看安装及配置文件位置Homebrew安装的软件会默认在/usr/local/Cellar/路径下edis的配置文件redis.conf存放在/usr/local/etc路径下启动Redis 服务方式一:使用brew帮助我们启动软件 brew ser
2021-03-27 18:40:33 234
原创 ubuntu-18.04 ubuntu-16.04 设置开机启动脚本
ubuntu-16.10 开始不再使用initd管理系统,改用systemd执行 ls /lib/systemd/system 你可以看到有很多启动脚本,其中就有我们需要的 rc.local.service# SPDX-License-Identifier: LGPL-2.1+ ...
2020-02-08 14:38:18 1343
原创 Ubuntu18安装Mysql、远程连接、创建测试用户
ubuntu上安装mysql非常简单只需要几条命令就可以完成。sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlclient-dev安装完成之后可以使用如下命令来检查是否安装成功。sudo netstat -tap | grep mysq...
2020-02-04 19:51:46 443
原创 SpringBoot2集成MyBatis、Druid连接池、PageHelper分页操作
主要知识点SpringBoot2集成MyBatis,实现基本的CURD操作,这其中涉及到相关内容也是关注重点:PageHelper 数据库分页查询,重点配置和使用Durid 数据库连接池集成,主要为sql监控而生。重点配置和使用MyBatis 集成及使用Controller controller层接收参数SpringBoot整合Mybatis之前...
2020-02-02 17:38:31 535
原创 SpringBoot集成各类邮箱进行邮件发送
主要内容利用SpringBoot集成各类邮箱发送邮件,是一个比较简单的内容,主要有三步:添加邮件相关Starter模块依赖添加Spring Boot配置(QQ/网易系/Gmail)调用JavaMailSender接口发送邮件必备知识点在第三步中,发送邮件,为了格式好看,是否有附件,像真正的邮件客户端看到的邮件一样格式清晰等,可能需要自己改一改发送内容的格式,比如html格式等。...
2020-02-01 09:13:20 1171
原创 Django之CSRF 机制
在理解Django中的CSRF机制前,可以先补一补基础知识官网对于CSRF的说明pythenweb 开发中的csrf机制CSRF全称Cross-site request forgery (CSRF)很简单的一个知识点,就是一个跨站请求伪造保护,看一下官网对于CSRF的说明和csrf机制两篇文章对CSRF机制有个初步理解。实战CSRF机制的载体Django自带的中间件知识点部...
2019-11-18 23:28:32 330
原创 Django之session
前言理解Session之前,一定要先理解cookie,可以参考上一篇文章Django之cookiesession作为一种会话技术,其底层是基于cookie,当然session是存在于Server端的,因此更加安全。实际当中商城的购物车、第一次次登陆之后直接访问首页的操作,都可以基于会话技术中的session来实现,非常方便安全。下面对比上篇文章的Django之cookie的登录、访问首页的操...
2019-11-08 13:02:20 285
原创 Django之cookie
cookie定义及组成对于Cookie的定义,跟语言没有关系的,不管Server端用的是Java、Python等后端语言哪一种,涉及到web开发相关知识时候,必须了解这方面知识。定义Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文...
2019-11-08 12:53:59 452
原创 DJango自带组件,利用paginator模块实现分页
DJango自带有组件Paginator,实现分页功能。何为分页,就是为了实现如下效果,显示内容,能够跳转到指定页码。分页其实需要两个重要的内容:当前显示内容:指定的页码也就是显示的当前页的显示数据页码条码显示:一般UI会显示上一页、下一页、页码数后台给前台传递数据,前台直接显示就行。基本了解Paginator类,大家自行看下api,基本需要连接下基本API熟悉pa...
2019-11-05 13:35:43 581
原创 DJango 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询
这里写自定义目录标题掌握DJango model数据表相关操作分析思路,创建数据表标题添加/删除/修改表记录1、一对多添加记录2、一对多删除记录一对多修改记录3、多对多增删改记录掌握DJango model数据表相关操作分析思路,创建数据表对于表操作,表之间的关联关系,必须理解他们之间的关系,对于编程很重要。可以看看映射关系、外键和relationship查询 ,至少明白外键相关基本知识。...
2019-11-02 16:34:52 2101
原创 Navicat连接MySQL8.0 2059 - authentication plugin
使用 MySQL8.0,发现Navicat连接不上,报错。2059 - authentication plugin ‘caching_sha2_password’Operation ALTER USER failed for ‘root’@’%’原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错。试了很多种方法,终于找到一种可以实现的:1.命令进入mysql...
2019-10-30 10:43:14 638
原创 HTML CSS position 属性及relative、absolute、fixed区别
position 是一个比较实用的功能,网页编程中必备技能!在页面的编写过程中我们通常会用到html的position属性来合理安排我们标签的位置,来达到视觉的美观,所以我们需要加深对position这个属性的了解。一、Position的属性值position有四个值:static,relative,absolute,fixed;定义看着云里雾里,下面具体说明二、staticsta...
2019-09-21 11:21:20 646
原创 sqlalchemy映射关系、外键和relationship查询
SQLAlchemy中的映射关系有四种,分别是一对多,多对一,一对一,多对多理解好映射关联关系,对后续多表查询,对象间关系非常重要。下面可以先看看资料,如果不太理解可以看看本文,循序渐进的了解知识点。官网是最好的文档翻译官网一篇不错的blog一对多(one to many):因为外键(ForeignKey)始终定义在多的一方.如果relationship定义在多的一方,那就是多对一...
2019-09-18 13:44:05 7732
原创 sqlalchemy_查询操作
学习sqlalchemy其实就是学习 python中的一个ORM组件下面可以先看看资料,如果不太理解可以看看本文,循序渐进的了解知识点。官网是最好的文档翻译官网一篇不错的blog根据前面一篇文章,继续了解sqlalchemy基础,查询相关操作。此文与创建表、添加数据文章相关联,同上述文章所述,先创建一个会话Sessionengine=create_engine("mysql+pymy...
2019-09-17 20:10:35 3447
原创 sqlalchemy_创建表操作_添加数据操作
学习sqlalchemy其实就是学习 python中的一个ORM组件下面可以先看看资料,如果不太理解可以看看本文,循序渐进的了解知识点。官网是最好的文档翻译官网一篇不错的blog首先从创建表开始:import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import d...
2019-09-17 19:27:28 3466
原创 Mysql创建用户_删除用户_授权【工作必备】
工作必备:为了安全保证,只能够给员工同事香瓜你的数据库操作权限给同事分配一个用户,让用户能够操作后台指定数据库,查看数据,方便办公,提高办公效率总之,工作中为了方便、安全等因素,让指定人员有指定数据库的指定权限。新建用户 create user 'test'@'%' identified by 'test'查询用户select user,host from mysql...
2019-09-16 12:02:51 2563
原创 RabbitMq Direct exchange路由模型
官网就是最好的文档上一篇文章RabbitMq Publish/Subscribe消息发布订阅模式 消息发布订阅模式中,就是通过广播来实现分发的。所有的customer都能够收到全部的消息。实际业务场景是需要filter的,怎么办?我们将为其添加一个功能 - 我们将只能订阅一部分消息。例如,我们只能将关键错误消息定向到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息。Bi...
2019-09-05 22:56:50 2639
原创 RabbitMq Publish/Subscribe消息发布订阅模式
官网就是最好的资料之前的例子都基本都是1对1的消息发送和接收,即消息只能发送到指定的queue里,但有些时候你想让你的消息被所有的Queue收到,类似广播的效果,这时候就要用到exchange了,An exchange is a very simple thing. On one side it receives messages from producers and the other si...
2019-09-05 11:24:55 2908
原创 RabbitMQ 消息公平分发
概念:如果Rabbit只管按顺序把消息发到各个消费者身上,不考虑消费者负载的话,很可能出现,一个机器配置不高的消费者那里堆积了很多消息处理不完,同时配置高的消费者却一直很轻松。为解决此问题,可以在各个消费者端,配置perfetch=1,意思就是告诉RabbitMQ在我这个消费者当前消息还没处理完的时候就不要再给我发新消息了。...
2019-09-03 20:39:19 1402
原创 Audio声音模式定制--声音大小定制
实际场景:应付客户电子产品的3C认证,声音大小必须小于85DB,但是产品以K歌为特色,外响声音必须大。解决思路:设备定义两个声音模式,承认模式和儿童模式。成人模式的音量为原始音量,儿童模式的音量最大值为原始音量最大值得一半,或者更小解决方案:自己应用层实现,音量条最大值是自己定义的。直接系统层Framework层,在Audio层写代码,定制自己的功能。说明:方案一太LowB,下面...
2019-08-28 18:46:03 4841
原创 Android生成系统签名文件jks
场景:我们很多应用需要用到系统签名,可以通过生成系统签名文件,在生成apk时使用这个签名,然后可以安装到机器中,不需要放在源码里编译,重新刷系统。系统apk,特别是定制方案,将apk生成后,还需要收到进行命令脚本用系统签名一次,再放到系统源码里面编译。太麻烦了。解决方案:生成.签名文件jks,直接放在AS里面,生成apk时候就已经是系统签名。这个时候直接install安装或者直接放到系...
2019-08-21 11:35:29 6109
原创 系统音量进度条定制
需求,全志A33平台进度条定制 定制系统音量条:解决思路:修改源码 com.android.systemui.volume.VolumePanel.javavolumePanel是一个类,进度条加载的容器是一个Dialog,修改dialog样式、背景、添加修改图标按照基本需求得到的样式如下:这个音量条原始状态啥样的呢,如下:这里不做音量调节的逻辑步骤分析,只介绍...
2019-08-06 09:39:00 2181
原创 RabbitMQ 消息持久化
消息持久化消息确认机制使得客户端在崩溃的时候,服务端消息不丢失,但是如果rabbitmq奔溃了呢?该如何保证队列中的消息不丢失? 此就需要product在往队列中push消息的时候,告诉rabbitmq,此队列中的消息需要持久化,用到的参数:durable=True....
2019-05-20 07:22:12 4125 2
原创 RabbitMQ Work Queues 消息确认
RabbitMQ Work Queues简介Hello Word中只是简单介绍,下面开始重点分析例如:当我们有复杂需求,我们需要提升效率,毕竟只有一个消费者难免处理不过来,就如官网中所提到的一样——在这篇教程中,将创建一个工作队列(Work Queue),它会发送一些耗时的任务给多个工作者(Worker)。工作队列(又称:任务队列——Task Queues)是为了避免等待一些占用大量资源、...
2019-05-19 22:00:13 1930
编辑器 Notepad++.zip
2020-03-28
springboot2_mybatis_durid_pager.zip
2020-02-02
springbootstudy.zip
2020-01-31
cookie_session.zip
2019-11-07
Android声音模式定制.rar
2019-08-28
系统签名.rar
2019-08-21
redis-desktop-manager
2019-01-04
批量更改图片格式工具
2018-11-01
TurnOffReboot.zip Android 实现重启、关机 功能
2024-09-15
MTKCamera预览、成像、拉伸代码简要片段
2024-09-10
无障碍服务工具类,在源码基础上添加日志,方便check 流程
2024-08-16
Rk Android12 Setting 源代码
2024-08-15
去除开机动画结束后显示正在启动;去掉开机后进入Launcher前黑屏;延时实现开机动画播放完全
2024-08-15
Rk3568 Android12 SystemUI 源码
2024-08-13
SystemUI 截屏快捷功能添加
2024-08-12
SystemUI QS 面板新增截屏功能按钮资源代码
2024-08-11
RK3568源码编译手册:Android11、12源码;Linux、Linux-5.10内核源码
2024-08-07
3568开发板驱动开发指南
2024-08-07
手环数据采集(心率、血压、步数、健康参数)
2016-03-18
Android开发时获得开启的通知
2014-12-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人