自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐

布局文件只有两个,activity_main.xml和item_music_rv_list.xml,activity_main这个是项目创建的时候赠送的,item_music_rv_list是为了显示歌曲信息而创建的。selector_scan_btn这个样式文件,在activity_main中用到。在bg_white.xml中调用了rounded_corners.xml。selector_scan_btn.xml使用上面两个图片的按钮点击样式。android:text=“歌曲信息”

2025-02-28 23:06:37 844

原创 Android LeakCanary的使用和原理

通过监听Activity的onDestory,手动调用GC,然后通过ReferenceQueue+WeakReference,来判断Activity对象是否被回收,然后结合dump Heap的hpof文件,通过Haha开源库分析泄露的位置。

2025-02-28 22:56:04 638

原创 Linux三种修改打开文件数量限制的方法_怎么才能给普通用户配置打开文件数

ulimit命令可用来增加在shell中打开文件的数量。这个命令是系统内置命令,因此它只影响bash和从它启动的程序。ulimit语法如下:下面选项决定了什么是有限的:查看当前打开文件的软限制,可以使用下面命令:如果需要查看硬限制,适应下面命令:下面修改打开文件的数量:然后来查看一下:发现,设置ulimit 值的时候,没有指定-H或者-S,两个限制都会设定相同的值。现在的问题是,如果退出登录或者重新启动计算机,该值将被重置。请记住,要使生效,需要编辑用户的.bashrc或者.bash_profi

2025-02-06 01:46:55 331

原创 Linux-Soket网络编程及套接字(服务器发给客户端)_服务器怎么给客户端发函数

write函数将buf中的nbytes字节内容写入文件描述符fd成功时返回写的字节数,失败时返回。read函数是负责从fd中读取内容.当读成功时,read返回实际所读的字节数,如果返回的值是0。调用成功返回0,否则,返回一1,并置errno。用于接受客户端的服务请求,成功返回新的套接字描述符,失败返回一1,并Werrno。sock_fd:是socket函数返回的socket描述符;1)write的返回值大于0,表示写了部分或者是全部的数据·addr:通常是一个指向soaddr.一in变量的指针,

2025-02-06 01:45:11 327

原创 Java零基础到进阶宝典!从小白到大神,金九银十面试这届斩获23K月薪

基于更优秀的代码,Java受到了更多编程者的喜爱,对于那些从接触过Java语言,或者说想提升自己薪资,这一份Java零基础到进阶宝典将会成为你不二的选择,为了让更多人学习到Java语言,这份宝典的免费获取方式在文末!当然,如果仅仅是对C++改头换面,那么就不会有今天的Java热了。Java语言提供的一些有用的新特性,使得使用Java语言比C++语言更容易写出“无错代码”。第2部分 Java面向对象程序设计。第1部分 Java基础程序设计。第3部分 Java程序应用。

2025-02-05 21:18:16 141

原创 Java集合类中绝对占有一席之地的List,终于彻底把握了

查看 ArrayList 的源码可以看到它就是一个简单的数组,用来数据存储。/**/**/**通过上面的注释了解到,ArrayList 无参构造时是会共享一个长度为 0 的数组 DEFAULTCAPACITY_EMPTY_ELEMENTDATA. 只有当第一个元素添加时才会第一次扩容,这样也防止了创建对象时更多的内存浪费。

2025-02-05 21:16:32 1630

原创 Git简单操作《二》

注意克隆下来的是远程仓库的所有分支,虽然git branch看不到,但是可以直接git checkout dev。检查现有 SSH 密钥后,您可以生成新 SSH 密钥以用于身份验证,然后将其添加到 ssh-agent。要配置 GitHub 帐户使用新的(或现有)SSH 密钥,您还需要将其添加到 GitHub 帐户。新建一个分支tmp分支,将远程仓库的master分支上代码版本复制到tmp分支上,不会自动合并。设置 SSH 密钥并将其添加到您的 GitHub 帐户后,您可以测试连接。

2025-02-04 18:01:14 556

原创 git版本管理与TortoiseGit

2命令行输入 git remote add origin git源码地址(如https://github.com/yanfengting/git-demo.git)2.把暂存区中的更改的文件提交到主干(master)执行命令 git commit -m “操作说明(备注)”git reset --hard 版本编号 (32位的GUID-git log就可看到)4. 如果反悔,则撤销。git commit -m “我添加一个文件readme.txt” (对勾)git可以追踪项目所有的更改(添加,修改,删除)

2025-02-04 17:59:32 464

原创 Git教程-Git的基本使用

在学习本教程的过程中,你已经建立了一个扎实的Git基础,理解了版本控制的核心概念以及如何通过Git有效地管理项目。Git不仅仅是一个版本控制系统,更是一项强大的工具,为团队协作和代码管理提供了全面而灵活的解决方案。通过深入学习Git,你将不仅仅是一个Git用户,更是一个版本控制的专家。你将能够更加灵活地处理分支管理,合理规划项目的版本历史,轻松解决可能出现的冲突。随着你的实践经验不断积累,你会发现Git的强大之处不仅仅在于它的命令行,更在于它所提供的多样化而高效的工作流程。

2025-02-04 17:57:47 212

原创 Android研发:刚进公司就把“屎山”优化了是什么体验?(1)

我们还有一些Code Review 机制,来发现常见的一些内存泄露,例如单例持有了 Activity对象,以及一些内存抖动的 case,比如在 onDraw 里面频繁的创建对象;错误发生在 b.xf 第五行,导致OOM的原因,到底是此处申请了太大的内存,还是其他地方申请了太多内存导致可用内存不足亦或者程序存在内存抖动问题,导致连续内存不足,我们不得而知。不知道用户的行为路径,ANR 还好,可能还会上报一些 ANR_INFO,不流畅可能什么信息都没有,只能看看用户的机型是不是低端机,然后问下用户的操作路径。

2025-02-04 07:47:05 433

原创 Android的zygote SystemServer的启动

8. Android应用的启动比较复杂,我们会在专门的章节里面去研究ActivityManager的工作细节,此处,我们只需要知道ActivityStack 是存在当前运行Activity的栈,resumeTopActivityLocked() 从其中找到要启动的那一个(在最开始,该栈是空的,因为需要通过moveTaskFromFrontLocked() 将‘Home’ 推到该栈中),如果该应用从来没有启动过,我们需要通过AcitivyManagerService 为其创建一个进程。捕捉该异常的代码如下。

2025-02-04 07:45:21 561

原创 android 上下左右都能滑动的是类似scorllview效果

/ getHeight()- child.getHeight()=y ->底部 y=0 ->顶端。// 惯性强度 mScroller.getDuration()//final int deltaY = 0;// 当滚动到边界时就不会再滚动,这时移动布局。// 设置回到正常的布局位置。// 是否需要开启动画。// 是否需要移动布局。设置是否可有弹性效果。

2025-02-03 19:33:49 429

原创 SpringBoot-RabbitMQ06-持久化和ACK确认机制

Autowired@Test启动消费者和服务提供者当我们在15的时候关闭消费者,然后在启动消费者我们看情况。我们会发现在消费者下线的这段时间产生的消息并没有丢失autoDelete 属性@Queue: 当所有消费客户端连接断开后,是否自动删除队列true:删除 false:不删除@Exchange:当所有绑定队列都不在使用时,是否自动删除交换器true:删除 false:不删除ACK确认机制1.什么是消息确认ACK?

2025-02-03 11:44:37 424

原创 SpringBoot+Mybatis后台管理系统

id int(20) NOT NULL AUTO_INCREMENT COMMENT ‘主键ID’,name VARCHAR(30) NULL DEFAULT NULL COMMENT ‘姓名’,age INT(11) NULL DEFAULT NULL COMMENT ‘年龄’,email VARCHAR(50) NULL DEFAULT NULL COMMENT ‘邮箱’,1.导入静态资源和网页资源如下:2.设置主页访问路径//跳转到登录页3.完成登录功能。

2025-02-03 11:42:53 814

原创 MyBatis 核心配置文件深入浅出_mybatis配置文件

User全限定名:com.mybatis.domain.User使用。

2025-02-02 04:04:04 1852

原创 MVC、MVP、BloC、Redux四种架构在Flutter上的尝试

Model层主要进行登录、获取用户资料的网络请求,并保存loading状态以及用户资料,相关代码如下所示//授权成功if (login!网络层的相关代码就不再贴出,感兴趣的可以在本文末尾下载源码进行查看。由上面代码可知,当View层触发登录时,调用了Control层login接口,在该接口内,实现了展示loading状态,并等待登录的网络请求,当请求完成后,则取消loading状态,最终交给View。

2025-02-02 04:00:36 766

原创 Docker通过Nginx,ACME快速部署证书

要使用cloudflare创建证书,需要把域名的ns指向到cloudflare并在cloudflare网站上申请管理员的key。运行完成后证书会保存在./ssl/xxx.example.com/文件夹下。程序运行路径下创建docker-compose.yml,通过docker-compose启动docker镜像的所有参数信息都会写入到该文件中。./certs 最好也不要改动,acme.sh 生成的证书映射在该目录下;文件,只要在此运行如下命令,就能够更新到最新状态。同目录下运行如下命令启动。

2025-01-31 12:37:59 1771

原创 Docker本地镜像推送阿里云教程

2.推送本地镜像到阿里云2.1 本地推送的镜像文件2.2 阿里云地址2.3 创建仓库镜像提示操作命令2.4 上传操作。

2025-01-31 12:36:16 305

原创 Android 自定义软键盘实现

【代码】Android 自定义软键盘实现。

2025-01-24 16:57:50 100

空空如也

空空如也

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

TA关注的人

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