- 博客(41)
- 收藏
- 关注
原创 Android架构组件JetPack之WorkManager完全解析(五)
WorkRequest要指定执行任务的Worker,也可以给WorkRequest加一些规则,比如说什么时候执行任务,任务执行一次还是多次,每一个WorkRequest都有一个自动产生的唯一ID,可以根据唯一ID获取对应任务的状态以及是否取消对应的任务。注意任务的执行可能会有延时,因为WorkManager会根据OS的电量进行优化。注意并不是所有的任务都可以取消,当任务正在执行时是不能取消的,当然任务执行完成了,取消也是意义的,也就是说当任务加入到ManagerWork的队列中但是还没有执行时才可以取消。
2025-01-20 12:04:32
753
原创 Android _ Jetpack 处理回退事件的新姿势 —— OnBackPressedDispatcher
当用户触发返回键时,将按顺序遍历责任链,如果回调对象是启用状态(Enabled),则会消费该回退事件,并且停止遍历。那么,退出后的行为与无拦截的默认行为相同,这点 moveTaskToBack() 可以满足,而 finish() 和 System.exit(0) 的行为比默认行为更严重;这段代码的逻辑并不复杂,我们主要通过 OnBackPressedDispatcher#addCallback() 添加了一个回调对象,从而干预了返回键事件的逻辑:“首次点击返回键弹出提示,两秒内再次点击返回键退出应用”。
2025-01-20 10:47:17
733
原创 2024年,Web前端还好找工作吗?
前端技术效率和性能的提升当然不是仅靠前端框架都能解决的,还需要其他各方面辅助工具的支持,例如高效的调试工具、构建自动化工具、自动发布部署工具等。所以未来前端发展过程中,各种高效工具的探索仍会不断地出现,来解决特定场景下的问题。
2025-01-20 09:14:45
859
原创 Nacos多环境下如何“管理”及“隔离”配置和服务
NamespaceId值是在配置文件配置时必须要填入的配置项,所以需要我们先创建Namespace和Id,步骤如下:nacos 的控制台左边功能栏看到有一个命名空间的功能,点击就可以看到新建命名空间的按钮新建成功后,可以在命名空间列表中查看到你所创建的Namespace和他生成的ID值这里只是讲解创建步骤,本文继续延用Nacos(五)中创建的DEV、TESTNamespace实施方案1Nacos给出了两种Namespace的实践方案面向一个租户面向多个租户方案1主要说明一下面向一个租户。
2025-01-18 09:34:52
445
原创 MySQL:互联网公司常用分库分表方案汇总
场景:系统绝对并发量并没有上来,表的记录并不多,但是字段多,并且热点数据和非热点数据在一起,单行数据所需的存储空间较大。第一种:SQL问题,如SQL中包含join,group by,order by,非索引字段条件查询等,增加CPU运算的操作 -> SQL优化,建立合适的索引,在业务Service层进行业务计算。第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。概念:以表为依据,按照业务归属不同,将不同的表拆分到不同的库中。
2025-01-18 09:32:50
879
原创 【备战秋招冲击大厂】Java面试题系列—并发编程
2,9,1L,七大参数:1)corePoolSize(常驻核心线程数):当向线程池提交一个任务时,若线程池已创建的线程数小于corePoolSize,即便此时存在空闲线程,也会通过创建一个新线程来执行该任务,直到已创建的线程数大于或等于corePoolSize时,(除了利用提交新任务来创建和启动线程(按需构造),也可以通过 prestartCoreThread() 或 prestartAllCoreThreads() 方法来提前启动线程池中的基本线程。
2025-01-14 17:13:13
926
原创 【基数排序~python】_基数排序python
'''一、 数据结构的底层存储方式只有两种:数组(顺序存储)和链表(链式存储)。二者的优缺点如下:数组由于是紧凑连续存储,因此可以随机访问,通过索引快速找到对应的元素,而且相对于节约存储空间。但正因为连续存储,内存空间必须一次性分配足,所以数组如果要扩容,需要先重新分配一块更大的空间,在把数据全被复制过去,时间复杂度为O(N);而且如果想在数组中间进行插入和删除操作,每次必须搬移后面的所有数据以保持连续,时间复杂度为O(N)。
2025-01-14 17:09:31
207
原创 Linux之diff用法
*@@ -1,12 +1,10 @@****前面的”-1,12"分成三个部分:减号表示第一个文件(即log2014.log),"1"表示第1行,“12"表示连续12行。****diff 的normal 显示格式有三种提示:****a - add。****-S或–starting-file 在比较目录时,从指定的文件开始比较。****-y或–side-by-side 以并列的方式显示文件的异同之处。****-w或–ignore-all-space 忽略全部的空格字符。
2025-01-11 23:13:39
617
原创 Linux中的权限发布啦!_linux webdav 用户组权限
目录的rw权限表示的是你可以对目录里面的文件进行读写,因此对于任何访问者而言,只要他对一个目录有w权限,那么他就能删除这个目录里面的文件。权限粘滞位是针对目录而言的,当目录被设置了权限粘滞位之后,即便用户对该目录有写入权限,也不能删除这个目录中其他用户的文件数据。这样的的话,那文件的权限是不是就成摆设了,只要对一个目录有w权限的话,任何用户都可以随意删除目录里面的文件,针对linux这种多用户的操作系统而言,这是我们绝对不允许的。+表示为用户增加文件权限,-表示取消用户的权限,=表示赋予用户这个权限。
2025-01-11 23:09:58
289
原创 linux下打造中文man帮助
刚学习linux有一份中文帮助手册该是多好事情。linux自带的帮助尽管有多种语言,目前各种发行版的linux基本没有中文帮助手册。打造个适合自己中文手册还是很有意义的。配置过程其实比较简单,只需要知道中文包,然后放到man可以搜索到的目录中,基本就可以了。下面将分一下几步:下载开源的man-pages 中文手册包配置解压手册包测试安装中文包一、在个人工作目录安装中文帮助手册这样优点是每个用户,登陆进去都可以有自己的语言版帮助手册。大家直接手册不会被相互调用,独立而且灵活1、下载开源man中文手册包(man
2025-01-11 23:06:17
750
原创 Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI
默认的我们的三角形的底边的宽度为,每个Tab宽度的1/6;接下来设置一下点击事件。最前面的6个都是和绘制那个三角形相关的,画笔决定了三角形的样式(颜色等),Path用于构造这个三角形(其实就是3条线的封闭合),然后就是三角形的宽度什么的。看看我们构造方法里面:获得了自定义属性,即可见的Tab的数量,初始化了我们的画笔,这里设置了setPathEffect,就是为了画的线的连接处,有点圆角~~比如:当item_count=3,而给的TabTitle的List的size也是3的话,就是效果图1的效果~~~
2025-01-10 08:31:36
882
原创 Android 性能优化系列:抖音字节跳动技术团队教你Java 内存优化
正是由于上述一些弊端,抖音最早的线下工具和治理流程并没有起到什么太大作用,我们不得不重新审视一下,工具建设的重心从线下转成了线上。大量的内存泄漏,如果我们都靠推进研发解决,经常会出现生产大于消费的情况,针对这些未被消费的内存泄漏我们在客户端做了监控和止损,将 onDestory 的 Activity 添加到 WeakRerefrence 中,延迟 60s 监控是否回收,未回收则主动释放泄漏的 Activity 持有的 ViewTree 的背景图和 ImageView 图片。
2025-01-10 08:27:55
1104
原创 android 快速开发(二)辅助类的使用:加快开发速度
TextUtils(一个方法,判断是否为空,4.0以上才会有isEmpty方法,自己写一个方法比较合适)// return h + “小时” + d + “分钟” + s + “秒”;顾名思义,提高开发速度,也可在不断的开发中优化辅助类,最后还是提升应用质量。return h + “小时” + d + “分钟”;FormatTools(判断一些格式的工具类)ScreenUtils(屏幕 工具类)判断是否包含非法字符 & /// 判断字符串是数字。判断一些格式的工具类。// 判断手机或座机。
2025-01-10 08:24:14
519
原创 DDoS 攻击与防护(一):如何识别 DDoS 攻击?DDoS 防护 ADS 服务有哪些?_ddos security unfortunately, your browser is too o
DDoS 攻击是使得用户电脑的网络或系统资源耗尽,服务暂时中断或停止,导致合法用户不能够访问正常网络服务的行为。针对 DDoS 攻击,华为云提供多种安全防护方案,DDoS 原生高级防护和 DDoS 高防可为用户提供全面海量的 DDoS 防护服务。由于 DDoS 攻击与防护内容较多且本文篇幅有限,故我们将整体内容拆分为两部分,在本文中我们将介绍 DDoS 攻击的定义和常见攻击类型以及华为 DDoS 防护的服务功能特性。声明:本文由作者“白鹿第一帅”于 优快云 社区原创首发,未经作者本人授权,禁止转载!
2024-12-20 16:50:19
650
原创 Day146(1),【高级Linux运维架构师系统学习
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2024-12-20 16:42:52
806
原创 Day06-Java代码操作阿里云oss,开发前准备,开发参考文档,开发流程案例
/ 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。1.1、登录阿里云账户,管理控制台,点击头像,选择AccessKey管理。4.2、如果是使用maven创建项目,需要先在pom.xml中引入依赖。// 创建OSSClient实例。// 创建OSSClient实例。// 关闭OSSClient。// 关闭OSSClient。
2024-12-20 16:39:10
496
原创 Day03-Vue入门
Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。2、初始Vue.js。
2024-12-20 16:35:29
830
原创 C语言最新面试题系列之c语言底层操作问题_c底层软件面试题
C语言的内存模型基本上对应了现在von Neumann(冯·诺伊曼)计算机的实际存储模型,很好的达到了对机器的映射,这是C/C++适合做底层开发的主要原因,另外,C语言适合做底层开发还有另外一个原因,那就是C语言对底层操作做了很多的的支持,提供了很多比较底层的功能。如果被移位的是无符号数,则填 0。我在使用VC编程的过程中,有一次调用DLL中定义的结构时,发觉结构都乱掉了,完全不能读取正确的值,后来发现这是因为DLL和调用程序使用的字节对齐选项不同,那么我想问一下,字节对齐究竟是怎么一回事?
2024-12-20 16:31:46
220
原创 AI遮天传 DL-反馈神经网络RNN_神经网络由输出获得输入
即前一时刻影响后一时刻:h(t+1), h(t)期望隐藏状态能捕获对象系统中过去的信息或时间依赖性这种记忆类似于动物的短期记忆通过时间反向传播 (BPTT)
2024-12-20 00:54:16
721
原创 AI大模型微调训练的技巧和方法_大模型书籍推荐
对于大语言模型而言,全量微调的代价是比较高的,需要数百GB的显存来训练具有几B参数的模型。为了解决资源不足的问题,大佬们提出了一种新的方法:低秩适应(Low-Rank Adaptation)。与微调OPT-175B相比,LoRA可以将可训练参数数量减少一万倍,并且GPU显存降低3倍以上。详细内容可参考论文《
2024-12-20 00:50:35
974
原创 AI 绘画Stable Diffusion 研究(二)sd模型ControlNet1
一、ControlNet1.1 的新模型新功能1、新增Lineart模型 和 lineart_anime模型现在新增了两个模型,lineart和lineart anime,完全可以替代原来的Canny强大的线稿上色,无论是上色黑白和彩色功能都非常强大。2、新增Instruct Pix2Pix 模型模型能够接受一张图像和相应的文字指令(也就是prompt),根据指令来编辑图像,局部整体操纵图像程度的能力。将白天变为夜晚 ,如图: 换发型 ,如图:换装 ,如图:3、 新增Tile 模型Tile 模型对于图
2024-12-20 00:46:54
961
原创 AD学习之旅(15)— 导入LOGO到PCB_ad导入logo 脚本 凡亿
将导入的Logo框选,然后右键,选择【Unions】->【Create Union from selected objects】修改其到【Top Overlay】层,这样我们就可以将其复制到我们的PCB板上了。接着我们打开AD20软件,点击【File】->【Run Script…然后再次框选logo,选择【Resize Union】调整联合大小。将我们需要的图片用【画图】工具打开,点击另存为BMP图片。在【PCB Logo Creator】上点击【Load】中文下即是【联合】->【从选中的器件生成联合】
2024-12-20 00:43:13
510
原创 adb 截屏和录屏命令
screenrecord 是一个 shell 命令支持 Android 4.4(API level 19)以上支持视频格式: mp4一些限制某些设备可能无法直接录制,原因是分辨率太高,如果遇到此类问题,请试着指定较低的分辨率不支持录制过程中屏幕旋转,如果录制过程中旋转,有可能画面被切断录制视频的时候声音不会被录下来### 开始录制命令:说明:录制手机屏幕,视频格式为mp4,存放到手机sd卡里,默认录制时间为180s。
2024-12-20 00:39:32
1303
原创 acm入门基础算法必看
/ check()判断mid是否满足性质return l;// 区间[l, r]被划分成[l, mid - 1]和[mid, r]时使用:return l;浮点数二分模板// 浮点数二分算法模板bool check(double x) {/* … */} // 检查x是否满足某种性质// eps 表示精度,取决于题目对精度的要求return l;大整数加法模板vector c;int up = 0;up += b[i];
2024-12-20 00:32:05
686
原创 9000字长文详解 Spring Boot 配置特性新解
使用System属性加载 java -Dspring.application.json=‘{“persion”:{“name”:“xxx”}}’ -jar app.jar,这种加载方式会将spring.application.json属性的值当做一个String来加载,不会解析。Spring Boot 配置文件也支持通配符的方式来加载,比如使用 spring.config.additional-location和spring.config.location来加载配置的时候就可以使用通配符加载多个文件。
2024-12-20 00:20:55
706
原创 90%不知道的Android Build Variant的使用
所有Manifest都将合并为一个清单。合并的优先级和上面提到的一致。同样,values/ 目录中的文件也会合并在一起。如果两个文件同名,例如存在两个 strings.xml 文件,按照上述的优先级覆盖。res/ 和 asset/ 目录中的资源会打包在一起。最后,在构建 APK 时,Gradle 会为库模块依赖项随附的资源和清单指定最低优先级。配置过滤规则回顾上面的。
2024-12-20 00:17:14
709
原创 8年测试老鸟整理,软件测试定位bug方法+定位案例,不要再走弯路了
1、问题bug定位技巧首先,作为开发也好,测试也好,定位问题有一个总的思路,而这个思路是和数据的走向一致的。大致是这样:用户层面问题 -> Web页面/软件界面 -> 中间件 -> 后端服务 -> 代码 -> 数据库以下都以Web页面举例说明。用户层面问题指的是用户自己的环境问题或者操作问题,比如环境不通,或者操作不正确。这种问题一般不是bug,当然,如果要考虑构建更加健壮的软件,那么可以根据实际情况来决定要不要处理这类问题。到第二步,用户在Web页面进行正常操作时,也可能会发现问题。
2024-12-20 00:13:32
733
原创 JS实现滑动拼图验证
top: -1px;important;important;top: -1px;important;important;left: 0;top: 0;.slider {top: 0;left: 0;top: 15px;left: 13px;right: 0;top: 0;
2024-12-17 20:20:31
456
原创 JS学习笔记之js基本概况
javascript 简称js 特点:简单易用 上手容易 精通难。运行在浏览器中的 因为绝大部分浏览器都内置js解析器。ECMA 欧洲计算机制造商协会 推出的标准。html和css(万维网联盟)推出的标准。负责网页的动态效果 表单的验证。js运行需要js解释器。js是受事件驱动执行的。
2024-12-17 20:16:50
201
原创 js基础(二):数据类型和变量
变量的初始化声明一个变量并赋值, 我们称之为变量的初始化声明变量特殊情况| 情况 | 说明 | 结果 || var age;| 只声明 不赋值 | undefined || console.log(age) | 不声明 不赋值 直接使用 | 报错 || 不声明 只赋值 | 10 |变量命名规范数据类型分为两类:简单数据类型(Number,String,Boolean,Undefined,Null)和复杂数据类型(object)。| 简单数据类型 | 说明 | 默认值 |
2024-12-17 20:13:09
549
原创 JQuery EasyUI -- 日历选择器
最基本的原因是:jQuery EasyUI 很少用于 Web 应用的前台页面,一般用于后台的 UI 或者企业级应用的 UI(较为重)。但问题是,使用智能加载,你编码的难度和成本都提高了,效率降低,并且智能加载的 JS 文件数量还是非常多的,并不会提高太大的速度,反而因为 js 文件较多,被搜索引擎要求合并优化。一般推荐使用第二种 JS 调用加载,因为一个 UI 组件有很多属性和方法,如果使用 class 的用法将极大的不方便。使用 easyloader 智能加载,是根据你使用的 UI 组件按需加载。
2024-12-17 20:05:44
655
原创 android mmap的使用
四. mmap的例子shmdata.h// 非 0可读, 0表示 可写// 记录 写入和 读取 的 文本#endifJNI_Shm.c))))))
2024-12-17 02:45:53
523
原创 android listview添加headview
/position 如果有headview position =0 的第一个为headview。// 头部view:设置view的点击时间,用于屏蔽listview的item的点击事件。//id:如果有headview或者footview 则这两个view的id为-1。//id:如果有headview或者footview 则这两个view的id为-1。// 设置适配器:如果listview不设置适配器,headview也不会显示的。// 添加头部view:必须放在adapter前面不然会报错。
2024-12-17 02:38:31
351
原创 Android Jetpack之Room的简单应用
这些开源ORM库都是为了方便Sqlite的使用,包括数据库的创建,升级,增删改查等。Database:数据库持有者,作为与应用持久化相关数据的底层连接的主要接入点。@Entity:这是一个Model类,对应于数据库中的一张表。// c. Result:异步任务执行完成后,返回的结果类型,与doInBackground()的返回值类型保持一致。// a. Params:开始异步任务执行时传入的参数类型,对应excute()中传递的参数。Entity:实体类,对应的是数据库的一张表结构。
2024-12-17 02:34:48
568
原创 Android Jetpack 之 LifeCycle 组件_android 自定义view lifecycle
ProcessLifecycleOwner 的使用方式与 Activity、Fragment、Service 是类似的,其本质也是观察者模式,由于我们要观察的是整个应用程序,因此,需要在 Application 中进行相关代码的编写。由于 LifecycleService 是 Service 的直接子类,所以使用起来与普通的 Service 没有差别。Android 中拥有生命周期的组件除了 Activity/Fragment ,还有一个非常重要的组件就是 Service。如需使用,先添加依赖。
2024-12-17 02:31:07
331
原创 Android Http请求方法汇总
在该包下创建测试类HttpTest,继承自AndroidTestCase。2.使用Apache的HttpClient访问网络资源。4. 编写单元测试代码。
2024-12-17 02:27:25
794
原创 Android Framework底层原理(附知识脑图+源码学习手册)30天突破技术壁垒_android framework学习手册
是华为P7Android高级工程师编写的最新学习资料!既能够。
2024-12-17 02:23:44
270
原创 Android AsyncTask源码解析
可以看到,SerialExecutor是使用ArrayDeque这个队列来管理Runnable对象的,如果我们一次性启动了很多个任务,首先在第一次运行execute()方法的时候,会调用ArrayDeque的offer()方法将传入的Runnable对象添加到队列的尾部,然后判断mActive对象是不是等于null,第一次运行当然是等于null了,于是会调用scheduleNext()方法。其实也没有什么神秘的,因为说到底,AsyncTask也是使用的异步消息处理机制,只是做了非常好的封装而已。
2024-12-17 02:20:03
650
原创 Android --- BaseQuickAdapter 子控件设置了addOnClickListener(R
【代码】Android --- BaseQuickAdapter 子控件设置了addOnClickListener(R。
2024-12-17 02:16:22
245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人