- 博客(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
原创 使用ViewPager2切换Fragment后返回闪退
不自定义带参构造方法,直接编写一个静态的getInstance(要传入的参数)方法来获取fragment的实例,在此方法中调用空参构造创建Fragment的对象,并调用setArguments()方法为fragment保存状态。,因为当Fragment因为某种原因重新创建时,会调用到onCreate方法传入之前保存的状态, 在instantiate方法中通过反射无参构造函数创建一个Fragment,并且为Arguments初始化为原来保存的值,在fragment类的空参源码注释中也有提到。
2024-08-04 16:32:04
567
原创 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
原创 数据结构(C语言版 第2版)课后习题第二章第二题第一小题 严蔚敏 等 编著
C语言算法实现:将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中不允许有重复的数据。
2023-08-03 19:38:02
137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人