自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Django1:预热,虚拟环境、介绍_django-env

Django,发音为[`dʒæŋɡəʊ],Django诞生于2003年秋天,2005年发布正式版本,由Simon和Andrian开发。当时两位作者的老板和记者要他们几天甚至几个小时之内增加新的功能。两人不得已开发了Django这套框架以实现快速开发目的,因此Django生来就是为了节省开发者时间的。Django发展至今,被许许多多国内外的开发者使用,已经成为web开发者的首选框架。因此,如果你是用python来做网站,没有理由不学好Django。

2024-12-08 03:14:38 638

原创 DiffUtils 遇到 Kotlin,榨干视图局部刷新的最后一滴性能

上一节的使用方式满足一般的使用场景已经足够了,但是在一个Item Change 时仍然会刷新整个Item,数据仍然需要重新绑定一遍视图,为了解决这个问题,我们一般需要重写 DiffUtil.Callback 的 getChangePayload 方法。DiffUtils 的使用起来也很简单,只需要简单的传入一个DiffCallback,重写其中的几个方法,DiffUtils 就能对比出新旧数据集差异,根据差异内容自动触发Adapter 的 增删改 通知,这也是我们在App 中最常用的使用方法。

2024-12-08 03:12:38 583

原创 DialogFragment内存泄露问题能不能一次性改好

此时获取的Message有可能是消息池中的某一条消息,而这条消息刚好被一个消息循环所持有不能释放的话,那么这个内存泄漏的问题依然无法解决,所以说这只是一个治标不治本的方法。这的确是一个治标又治本的方案,但是工程量略大,而且本来DialogFragment是有谷歌官方维护的,现在变成了由你维护,如果未来官方发现了DialogFragment中产生了bug,默默修复了,那么你复制出来的这个类如何更新同步更新呢?而且,不断的向一个阻塞线程中发消息,线程时刻处于运行状态,占用线程空间资源。

2024-12-08 03:10:38 971

原创 Dell服务器RAID常用管理命令总结_enclosure affinity

orororor缓存策略解释:CachedDirect例子:oror4.1 创建一个 raid5 阵列,由物理盘 2,3,4 构成,该阵列的热备盘是物理盘 54.2 创建阵列,不指定热备4.3 删除阵列4.4 在线添加磁盘意思是,重建逻辑磁盘组1,raid级别是5,添加物理磁盘号:1:4。

2024-12-08 03:08:37 741

原创 DayNight Mode实现Android夜间模式

上述代码首先创建了一个选择菜单,然后用户一旦点击相关的菜单,UiModeManager控制器的mUiModeManager对象则调用setNightMode方法。利用该控制器外加一套白天/夜间模式的资源(UiModeManager会根事件自动在两个模式之间切换),即可实现白天/夜间模式的切换。一般的,白天/夜间模式涉及到的显示状态的切换最基本改变影响就是这些文本、icon图标、整体的背景颜色等。然后我们规定图标的变化,这里我们规定白天显示一个心性图标,夜间显示一个圆形图标。

2024-12-08 03:04:30 918

原创 Day302&303&304

这个类本身不需要实现缓存功能,而是专注自己本身的计算业务逻辑,他去实现我们上面的接口/******@author 阿昌*/@Override//通过sleep来模拟复杂计算业务逻辑在里面定义一个hashmap做缓存,这里还没解构缓存;传入Computable接口在创建一个构造方法,传入Computable接口/******@author 阿昌*///装饰者模式接口类this.c = c;@OverrideSystem.out.println(“进入缓存机制”);

2024-12-08 03:02:30 629

原创 Dagger2源码分析(三)从源码角度分析注解在Dagger2中的使用

步骤2:若存在提供依赖的方法,查看该方法是否存在参数。b:若不存在,则直接初始化该类实例,完成一次依赖注入。步骤3:若不存在提供依赖的方法,则查找@Inject标注的构造函数,看构造函数是否存在参数。b:若不存在,则直接初始化该类实例,完成一次依赖注入。

2024-12-08 03:00:30 756

原创 C语言百日千题系列之《忘情水题》第一日_输出一个正整数表示每袋核桃的数量

而能够同时整除b和y的数也必能同时整除x和y,即x和y的公约数与b和y的公约数是相同的,其最大公约数也是相同的,则有f(x, y)= f(y, x%y)(y > 0),如此便可把原问题转化为求两个更小数的最大公约数,直到其中一个数为0,剩下的另外一个数就是两者最大的公约数。辗转相除法是古希腊求两个正整数的最大公约数的,也叫欧几里德算法,其方法是用较大的数除以较小的数,上面较小的除数和得出的余数构成新的一对数,继续做上面的除法,直到出现能够整除的两个数,其中较小的数(即除数)就是最大公约数。

2024-12-08 02:58:29 886

原创 C语言既然可以自动为变量分配内存,为什么还要用动态分配内存呢?_类型已经定了为什么还要动态分配内存

已剪辑自: https://mp.weixin.qq.com/s/NRyM5KAm_jrBImmkA2WYSA如果想要弄清楚这些问题,我们首先就要了解静态内存和动态内存有什么区别,只有了解了他们两个的区别我们才能弄懂(理解)为什么需要动态分配内存!今天的文章会用到以下知识点,大家可以作为了解内容去学习:静态内存、动态内存、堆、栈、全局变量、指针等。既然要学习内存的相关知识,那我们就先从计算机的内存开始本篇的讲解吧!在计算机内存一共可以分为五个区域,其中有个区域是用来存储代码的,我们就不再进行讨论了。

2024-12-08 02:56:29 643

原创 C语言小游戏-俄罗斯方块_c语言俄罗斯方块easyx

), _T(“游戏结束”), MB_YESNO | MB_ICONQUESTION) == IDYES)void DrawUnit(int x, int y, COLORREF c, DRAW _draw);{ 0x2260, 0x0E20, 0x0644, 0x0470, YELLOW }, // 反L。{ 0x0360, 0x4620, 0x0360, 0x4620, GREEN }, // 反Z。{ 0x0660, 0x0660, 0x0660, 0x0660, BLUE }, // 口。

2024-12-08 02:54:28 624

原创 C语言字符串和数字转换函数大全_c语言字符串转化为数字

另外在 C99 / C++11 规范中又新增了5个函数,分别是 atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介绍,请大家自行学习。另外在 C99 / C++11 规范中又新增了5个函数,分别是 atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介绍,请大家自行学习。函数来检测),直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时(’\0’)才结束转换,并将结果返回。

2024-12-08 02:52:28 1268

原创 C语言中文件的读写_c语言文件的读和写是什么意思

文件是计算机系统很重要的一部分,经常用于存储文档、图片、表格、书信、视频等各种各样的信息,使用文件我们可以将数据直接存放在电脑的硬盘上,可以做到数据的持久化。那么,学会在程序中读写文件或创建文件是很重要的。在程序设计中,我们一般谈的文件有两种:程序文件、数据文件。程序文件指的是程序本身文件,例如源文件(后缀为.c文件),目标文件(后缀为.obj),可执行文件(windows系统下后缀为.exe);而数据文件指的是程序运行时读写的数据,本文讨论的就是数据文件。

2024-12-08 02:50:28 732

原创 CSS布局——水平垂直居中、等分布局、圣杯布局

实现圣杯布局效果也可以采用flex布局,就是一个大盒子包含三个子盒子,左右两个盒子固定宽高,中间盒子设置flex:1(占据大盒子剩余空间)。而采用flex布局的元素叫做容器,在flex布局中的子元素被称为项目(即父级元素采用flex布局,则父级元素为容器,全部子元素自动成为项目);利用flex来居中布局是非常好的一种方式,几行代码就能优雅的实现元素水平垂直完美居中。本行分为四列,所以宽度为25%,padding-right是设置一个元素的右填充在此填充了10px,即每个子元素之间的空隙。

2024-12-08 02:46:22 891

原创 CSS3新特性-变量

变量名大小写敏感,和是两个不同变量。

2024-12-08 02:44:21 379

原创 CSS 闲着无聊读一读,不知不觉学会CSS (三)

background-repeat:这个就是决定背景图像是否平铺,repeat(平铺),repeat-x(水平平铺),repeat-y(垂直平铺),no-repeat(不平铺)。background-position:这个决定背景图像的起始位置通常用坐标x,y来表示,这两个位置的表示方式有三种:英文单词,固定值,百分比。意思就是水平方向百分之50的位置,垂直方向百分之50的位置。background-image:和上一个一样,这个元素,要么有内容,要么有宽度高度才可以显示出来,此外,背景图片默认是平铺的。

2024-12-08 02:42:20 722

原创 Android 调用相机拍照,适配到Android 10

另外虽然我在这篇博客里对Android 10和10以下的手机使用了不同的方式创建uri 和加载图片,但其实Android 10创建uri的方式和使用uri加载图片的方式在10以下的手机是同样适用的。这两需要说明一下,Android 10由于文件权限的关系,显示手机储存卡里的图片不能直接使用图片路径,需要使用图片uri加载。//适配Android 7.0文件权限,通过FileProvider创建一个content类型的Uri。// 用于保存图片的文件路径,Android 10以下使用图片路径访问图片。

2024-12-07 20:04:53 807

原创 Android 自动检测更新,自动下载apk更新版本

主要下载service。

2024-12-07 20:02:52 270

原创 Android 简单的视频录制

**获取后置摄像头*获取后置摄像头 返回null表示 没有可用的摄像头i++){*获取最合适的预览尺寸*///取很小的值if(w0){continue;获取到可用的摄像头之后,配置预览数据,注意⚠️,这个得等待SurfaceView加载完成后调用//获取摄像头//获取该Camera预览支持的尺寸大小。

2024-12-07 20:00:52 827

原创 Android 空包签名(详细版)

按照要求输入,因为我之前创建jks,只输入了自己的名字,其他都没有输入,没有的直接回车跳过,最后的问题,问你是否正确,输入Y。首先登陆你的开发者平台,然后找到上传应用的地方,先看一下平台是否用这个包名上传过应用,是的话就进行认领,这里我使用的是VIVO开放平台。由于我的别名密码和秘钥库秘钥是一致的,所以我直接回车,然后就会出现如下所示的提示,复制我标注的这句代码,以你自己的实际为主。比如我的别名是key0,我希望生成的keystore名称是translate.keystore,那么就可以这么写。

2024-12-07 19:58:52 1104

原创 Android 架构MVC MVP MVVM+实例

1.View 接收用户交互请求2.View 将请求转交给ViewModel3.ViewModel 操作Model数据更新4.Model 更新完数据,通知ViewModel数据发生变化5.ViewModel 更新View数据MVVM的优点1.提高可维护性。Data Binding可以实现双向的交互,使得视图和控制层之间的耦合程度进一步降低,分离更为彻底,同时减轻了Activity的压力。2.简化测试。

2024-12-07 19:56:51 719

原创 Android 总结:自定义键盘实现原理和三种实例详解

键盘上键的细节和它的位置我们指定在一个xml文件中,每一个键都有如下的属性,keyLabel这个属性是指每个键显示的文本codes这个属性是指这个键代表的字符的unicode例如,我们定义了一个字母A,codes属性的值是97keyLabel属性的值就是A如果一个code对应多个key,这个key代表的字符取决于这个key接受到的点击数taps,例如,一个键具有63,33,58编码:一次点击就是?两次点击就是!三次点击就是一个key这个属性的值可以是left或者right。

2024-12-07 19:54:51 1029

原创 Android 开发必会的7个Gradle实用技巧

主要包括以下内容1.Gradle依赖树查询2.使用循环优化Gradle依赖管理3.支持代码提示的Gradle依赖管理4.Gradle模块化5.Library模块Gradle代码复用6.资源文件分包7.AAR依赖与源码依赖快速切换1.Gradle依赖树查询有时我们在分析依赖冲突时,需要查看依赖树,我们常用的查看依赖树的命令为不过这种命令行方式查看依赖树出来的信息太多,看的有些费劲所以官方又推出了Scan工具来帮助我们更加方便地查看依赖树在项目根目录位置下运行即可,然后会生成HTML。

2024-12-07 19:52:49 860

原创 Android 应用层开发 Drawable 的一些叨叨絮

能耐心看完上面的是真爱,有了上面的解释我想你此刻一定在想,我自定义 View 好歹也有个调用流程、好歹也有个规律可循的结构啊,这自定义 Drawable 怎么是完全闷逼的,这就对了,这一小节就是打算通过源码给你揭开 Drawable 的调用流程,以此让你在自定义 Drawable 时做到胸有成竹。”,上面几个小节 BB 了那么多源码,估计很多人都看不到这里就关闭博文了,没事,下面不 BB 了,我们直接来实战,这样你再通过实战的例子回过头去看看上面的源码分析,你会发现你已经完全领悟了。

2024-12-07 19:50:49 681

原创 Android 安卓超级强劲的轻量级数据库ObjectBox,快的飞起

在app下的build.gradle头部引入(有以下两种情况,看你项目中用的什么):plugins {简单的代码栗子接下来将会讲解ObjectBox基本使用。

2024-12-07 19:48:48 851

原创 Android 安卓动画 补间动画 - 组合(四个动画) 动画

android:startOffset=“1000” | 动画延迟开始时间(多长时间后开始执行动画),在组合动画中不用这个,会在各个动画中分开用,用于延迟动画执行时间 || android:fillAfter=“false” | 动画播放完毕后,是否会停止在动画结束的状态,优先存在于fillBefore |四种动画有着共同的属性,所以,将有着共同属性写在set属性之中,set标签下放置动画,每个动画有独有的属性,分别写在动画标签中!| android:duration=“2000” | 动画持续时间。

2024-12-07 19:46:48 597

原创 Android 如何上传图片到阿里云

工具类HashUtil.java。阿里平台申请这几个参数。

2024-12-07 19:44:47 167

原创 Android 和 IOS 应用程序之间的 UI 设计差异_ios与安卓ui设计规范区别

我想强调一下 Android 和 iOS 在不同前景上的 UI 差异。

2024-12-07 19:42:47 1077

原创 Android 单元测试之 Mockk

NORTH,SOUTH,WEST,EASTOK,NO这是我们的测试类:// mock car对象// 设置监听// 执行// 验证// 双重验证可以看到Mockk使用了 Lambda 语句,这让代码实现变的很美观。其次every{..}语句用来设置监听,在Mockito中,它是when,其实作用是一样的,回调你想要的操作使用verify{..}进行验证,这是各个测试框架都通用的字段有个用来确认你的mock对象有没有被执行,因为前面已经有verify。

2024-12-07 19:40:46 1019

原创 Android 之 Metadata简析

在AndroidMainfest.xml中:Application的MetaData的配置Activity的MetaData的配置Receiver的MetaData的配置Service的MetaData的配置在mainActivity中:@Override@Overridetry {break;try {break;try {break;try {break;

2024-12-07 19:38:44 901

原创 android 个人中心下拉弹回效果-PullscrollView

** ScrollView的content view矩形. *//** ScrollView的content view. *//** 是否关闭ScrollView的滑动. *//** 阻尼系数,越小阻力就越大. *//** 头部图片拖动时顶部和底部. *//** 头部图片初始顶部和底部. *//** 头部view显示高度. *//** 是否移动到顶部位置. *//** 状态变化时的监听器. *//** 滑动至翻转的距离. *//** 头部view高度. *//** 首次点击的Y坐标. */

2024-12-07 19:36:42 555

空空如也

空空如也

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

TA关注的人

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