自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 对称加密算法和非对称加密算法

通过上述的一系列分析,我们可以了解到,对称加密算法与非对称加密算法各有好坏,对称加密虽然没那么安全但效率高,非对称加密虽然安全性高但低效,所以在现实生活中我们一般会采用对称加密和非对称加密结合的方式进行数据的加密传输。

2025-03-28 22:31:37 722

原创 Android项目实战搭建 MVVM架构

*** @description: 自定义多状态View*/= null//四种展示的view= null= null= null= null//当前视图状态) {//获取自定义属性val a =//在 XML 布局文件中的视图被加载并且所有的子视图都被添加到父视图中之后执行//展示加载页面}*///++++++++++++++++++++++++++++++++加载页面++++++++++++++++++++//动态加载并展示加载页面= null ) {

2025-03-22 19:11:58 1143

原创 Android APP自动登录功能实现(以Retrofit+okHttp3请求框架)为例

在我们日常使用的各类软件中,自动登录是一个非常常见的功能,因为有许多功能是必须用户登录后(或者说需要用户信息)才能使用的(例如,收藏功能,查看个人信息功能等)。简而言之,通过持久化存储用户登录或注册成功后服务器端返回的用户名密码Cookie,并在下次访问需用户信息的接口时,拦截网络请求并将本地保存的用户账号密码cookie添加上去后再进行访问即可。 我们先来了解一下注册功能的逻辑,首先用户在客户端输入用户名密码,进行注册,此时通过post请求向服务器端提交用户注册数据,若服务器端校验完毕无误,

2025-03-15 22:19:44 326

原创 CardView无法设置水波纹点击效果

在测试页面时出现CardView无法设置水波纹点击效果, 单纯运行xml代码,而没有给CardView设置点击事件。此解决方法只适用于出现此bug的环境, 如果你给cardView设置了点击事件, 就不需要设置这两个属性了。且给CardView包裹的子View设置上述两个属性,导致点击事件被子View响应而不出现水波纹事件。在没有给CardView设置点击事件前, 若不给CardView添加下列属性。没有给cardView设置点击事件前, 没有给CardView添加下列属性。将导致点击无法出现水波纹效果。

2025-02-21 17:14:08 200

原创 Android 自定义TabLayout的TabItem踩坑实录 之 被选中过的item标题不显示

Android 自定义TabLayout的Item后,被选中过的item标题不显示

2024-12-15 17:06:48 321

原创 Android Databinding使用步骤

在xml对应的View类中为第2步声明的变量赋值(一定要记得这一步,这一步不写会导致databinding失效,且没有任何报错...)在xml布局中声明要绑定的viewMdoel变量并指定其type(即对应的viweModel类)将xml布局变为databinding布局(xml布局顶部: alt+enter)

2024-10-26 15:23:52 387

原创 Kotlin协程之取消协程失败

想在onWindowVisibilityChanged方法中实现当自定义加载控件被隐藏时自动停止控件转动,但发现当自定义控件被隐藏时,虽然stopRotate方法被调用了,但是协程并没有被取消,控件还是在转动,说明协程没有被取消成功。只需修改startRotate方法中启动协程后的循环,在每次循环开始前都判断协程是否被取消即可,也可在不修改之前代码的前提下,在循环中加入yield()方法来检查协程是否被取消。使用Kotlin协程实现自定义加载控件的转动,并在自定义控件被隐藏时停止转动。

2024-10-08 23:15:26 445

原创 解决前端Axios访问Tomcat服务器的json文件导致的跨域问题

要写在<web-app> </web-app>标签中哦。解决方法:修改服务器端。

2024-10-03 21:59:06 269

原创 FragmentContainerView、ViewPager、ViewPager2与 BottomNaviagtionView结合使用的区别

FragmentContainerView与ViewPager2的一个显著区别:切换Fragment时生命周期方法的调用。

2024-09-24 18:54:16 1011

原创 Android MVVM架构在应用中的一种设计实现

Android MVVM架构在应用中的一种设计实现,各层的类的结构设计实现

2024-08-24 18:40:51 310

原创 使用ViewPager2切换Fragment后返回闪退

不自定义带参构造方法,直接编写一个静态的getInstance(要传入的参数)方法来获取fragment的实例,在此方法中调用空参构造创建Fragment的对象,并调用setArguments()方法为fragment保存状态。,因为当Fragment因为某种原因重新创建时,会调用到onCreate方法传入之前保存的状态, 在instantiate方法中通过反射无参构造函数创建一个Fragment,并且为Arguments初始化为原来保存的值,在fragment类的空参源码注释中也有提到。

2024-08-04 16:32:04 567

原创 Android 自定义控件笔记(如何创建自己的自定义控件,具体步骤)

自定义View,自定义控件

2024-06-29 22:58:51 1448

原创 Android release版本的APK、debug版本的APK以及通过AS直接调试安装到手机上的APK的区别

就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义。被混淆过的程序代码,仍然遵照原来的档案格式和指令集,执行结果也与混淆前一样,只是混淆器将代码中的所有变量、函数、类的名称变为简短的英文字母代号,在缺乏相应的函数名和程序注释的情况下,即使被反编译,也将难以阅读,

2024-05-03 12:24:51 2932

原创 Android三大架构(MVC、MVP、MVVM)笔记

MVC的全称是Model-View-Controller,即模型-视图-控制器,它是MVC、MVP、MVVM这三者中最早产生的框架,其他两个框架是以它为基础发展而来的。MVC的目的就是将M和V的代码分离,且MVC是单向通信,必须通过Controller来承上启下。M(Model):主要处理数据的存储、获取、解析V(View):即Fragement、Activity、View等XML文件。

2024-03-29 15:34:46 4301 1

原创 解决Android11(API 30)之后,默认无法获取设备已安装的全部应用的问题

简单来说就是,为了用户数据的隐私考虑,默认不允许当前应用访问到全部应用信息,而是访问系统过滤后的应用信息,这也就导致了我们无法只通过 packageManager.getInstalledApplications()方法、packageManager.getInstalledPackages()方法来获取设备的全部应用列表。

2024-01-21 21:14:51 1714 1

原创 Android开发 应用APK更新升级安装全部流程(适用于api12--api30)(使用DownloadManager实现下载)

--增加根目录配置,特别注意:此处的path要为空字符串-->--需要访问的文件路径,name属性可以自定义,path属性必须写为download,因为我们安装apk时需要访问的是下载apk的文件路径,download实际上是一个常量值-->

2023-09-22 22:50:15 11448 4

原创 Git简单使用指南(上传以及更新项目到GitHub和Gitee)

使用Git上传更新项目到github或gitee上面

2023-08-11 17:33:51 485 1

原创 数据结构(C语言版 第2版)课后习题第二章第二题第一小题 严蔚敏 等 编著

C语言算法实现:将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中不允许有重复的数据。

2023-08-03 19:38:02 137

空空如也

空空如也

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

TA关注的人

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