自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(300)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(一)

五一假期,第二节课,Jetpack组件LiveData从实践、源码阅读、原理解读几方面,我们一起来学习、探索、总结一下。

2023-05-01 07:30:00 1036 4

原创 Android Jetpack 从使用到源码深耕【ViewModel从实践到原理 】(四)

ViewModel使用以及源码分析ViewModel 、 onSaveInstanceState、持久化数据的使用场景总结ViewModel 与 onSaveInstanceState的异同对比

2023-04-30 07:15:00 1122 2

原创 Android Jetpack 从使用到源码深耕【ViewModel从实践到原理 】(三)

onSaveInstanceState与onRetainNonConfigurationInstance 的对比分析SaveStateHandle使用DemoSaveStateHandle源码原理分析

2023-04-29 07:15:00 1293 33

原创 Android Jetpack 从使用到源码深耕【ViewModel从实践到原理 】(二)

ViewModel的实现机制是,在内存中存储了相关的ViewModel的数据,借助 activity的相关周期方法onRetainNonConfigurationInstance 与 getLastNonConfigurationInstance的自动调用,实现了 ViewModel数据的存储和恢复。

2023-04-28 07:00:00 925 47

原创 Android Jetpack 从使用到源码深耕【ViewModel从实践到原理 】(一)

五一期间,我们来一起学习总结一下Jetpack的ViewModel组件,从使用、源码、经验来总结分析。老办法,在研究一个框架之前,先提出一些自己可以想到的问题,带着问题,有目标的去阅读源码,收货相信更多、更明确一些。ViewModel 是做什么的?ViewModel 如何使用?ViewModel 生命周期是怎么样的?ViewModel 数据是如何保存的?是通过文件吗?类似于SP的做法?

2023-04-27 07:00:00 2644 61

原创 Java开发人员从了学习ArkTs笔记(三)-数据结构与线程通信全解析

本文对arkts,数据结构和线程通信机制有了更深刻的理解。ArkTS不仅继承了TypeScript的语法,还拓展了一系列高效的数据结构,如HashMap、ArrayList、HashSet等,这些数据结构的使用方法与Java非常相似,大大提升了开发效率。此外,ArkTS的线程通信机制也让我印象深刻。通过使用Worker和Emitter,我们可以轻松实现线程间的数据传递和事件处理,这对于构建高性能应用至关重要。

2024-11-14 16:13:41 924

原创 使用Python抓取数据的实战指南

通过以上步骤,你已经掌握了使用Python进行基本数据抓取的方法。随着技术的深入,你还可以学习如何使用多线程、异步请求等技术来提高抓取效率,以及如何利用正则表达式、XPath等工具来更精确地提取数据。希望这篇指南能为你的数据抓取之旅提供有益的帮助!

2024-11-13 21:19:18 453

原创 Java开发人员从零学习ArkTs笔记(二)-函数与类

本文,主要总结了在ARKTS(Advanced Java Knowledge and Technology Stack)中对函数与类的学习过程。涵盖函数声明、可选参数、Rest参数、返回类型、作用域、调用、类型和箭头函数等,详细解释了如何使用这些特性,并提供了示例代码。包括类声明、构造函数、字段初始化、方法、空安全及空值合并运算符等,展示了ArkTS中类的定义和使用,以及与Java的不同之处。

2024-11-13 20:35:29 723

原创 Java开发人员学习ArkTs笔记(一)-基本知识

ArkTS作为构建高性能应用的语言,在TypeScript基础上进行了优化。本文总结了ArkTS的基础知识,包括变量与常量的声明、类型(如Number、Boolean、String、Void、Object、Array、Enum和Union等)、运算符以及语句(If、Switch、For、While等)。ArkTS的类型系统丰富,支持自动类型推断和别名类型。其语句结构与Java、Kotlin相似,易于上手。通过本文的学习,可以对ArkTS有一个初步的了解,为后续深入学习打下坚实基础。

2024-11-12 20:53:33 1030

原创 Android Studio 使用TinyPng插件一键压缩图片

Apk体积太大?基本上是图片资源惹的祸, 此时我们需要对图片进行压缩, 而且是无损压缩那么这里就得提到一个Studio插件, 那就是。

2024-10-30 15:09:19 477

原创 鸿蒙系统开发入门:一步步踏上创新之旅

鸿蒙系统作为华为推出的新一代操作系统平台,具有巨大的发展潜力和市场前景。作为鸿蒙开发者,我们肩负着推动鸿蒙系统发展和应用生态繁荣的重任。让我们携手共进,共同打造更加美好的鸿蒙应用生态!在未来的日子里,期待与你一起见证鸿蒙系统的崛起和辉煌!

2024-10-29 11:18:12 955

原创 如何申请成为鸿蒙开发者并获取开发者套件

通过本文的介绍,您已经了解了如何申请成为鸿蒙开发者并获取开发者套件的过程。鸿蒙系统作为一个新兴的操作系统平台,具有巨大的发展潜力和市场前景。作为鸿蒙开发者,您将有机会参与到这一创新平台的建设中来,共同推动鸿蒙系统的发展和应用生态的繁荣。未来,随着鸿蒙系统的不断升级和完善,相信会有更多的开发者和企业加入到鸿蒙开发者的行列中来。让我们一起携手共进,共同打造更加美好的鸿蒙应用生态!

2024-10-29 11:13:06 748

原创 DevEco Studio使用技巧和插件推荐

DevEco Studio是一款强大的集成开发环境(IDE),为开发者提供了丰富的功能和插件。

2024-10-29 11:08:15 2796

原创 Android Studio使用技巧和插件推荐

Android Studio作为Android开发者的主要开发工具,掌握其使用技巧和合理利用插件可以显著提升开发效率。

2024-10-29 11:02:25 1055

原创 人工智能技术的应用场景、潜力及其影响与贡献

随着科技的飞速发展,人工智能(AI)已经渗透到我们生活的方方面面,从医疗诊断到企业运营,从智能家居到自动驾驶,其应用场景日益丰富,潜力与价值逐渐显现。结合技术背景和行业经验,本文将对AI的应用场景、潜力及其可能带来的影响和贡献进行深入探讨,并分析所运用的技术和所需要的知识。

2024-10-29 10:58:18 1501

原创 让编程效率翻倍的秘密武器:揭秘高效编程工具

在日益繁忙的工作环境中,选择合适的编程工具对于提升开发者工作效率至关重要。无论是智能的代码编辑器、强大的版本控制工具,还是事半功倍的自动化脚本,它们都为我们提供了强大的支持。然而,值得注意的是,工具只是辅助手段,真正决定工作效率的还是开发者的技能水平和思维方式。因此,在享受工具带来的便利的同时,我们也不应忽视对自身能力的提升。

2024-09-24 21:37:12 1092

原创 程序员在AI时代的核心竞争力:深化、融合与软技能

AI辅助编程工具的普及为程序员带来了前所未有的机遇与挑战。通过深化专业领域知识、掌握AI与编程结合的具体工具使用,以及不断提升软技能,程序员可以在AI时代保持并提升自身的核心竞争力。未来已来,让我们以更加开放的心态和积极的态度,迎接AI时代的到来,共同创造更加美好的技术未来。

2024-09-24 21:31:58 497 1

原创 前端框架对比与选择概述

由Facebook开发并维护的开源JavaScript库,用于构建用户界面。React通过使用组件化的开发模式,让开发者能够高效地构建大型应用。

2024-09-24 13:50:32 742

原创 Java学习路线总结

通过实际项目开发,检验学习成果,积累项目经验。

2024-09-24 11:31:13 415

原创 Android架构组件:MVVM模式的实战应用与数据绑定技巧

MVVM模式是一种基于三层结构的架构模式,旨在解决复杂UI开发中的耦合问题。它由三个主要部分组成:Model(模型)、View(视图)和ViewModel(视图模型)。Model:负责管理应用的数据和业务逻辑。它包含应用的所有数据结构和业务逻辑代码,是应用的核心。View:负责呈现用户界面(UI),即用户可以看到并与之交互的部分。在Android中,View通常是Activity或Fragment。ViewModel:充当Model与View之间的桥梁。

2024-09-24 11:27:40 1190

原创 2024 目标,乘风破浪,勇往直前*

目标,重新出发

2024-01-15 17:13:22 863 1

原创 DevEco Studio快捷键指南

DevEco Studio的快捷键功能非常强大且灵活,你可以根据自己的需要自定义快捷键配置或者通过插件扩展来增加更多的功能

2023-12-16 15:51:12 3620

原创 Airtest的安装、配置、使用教程

airtest的安装、配置和简单使用,还有就是本地python环境的配置

2023-07-18 09:23:10 5076 1

原创 Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(四)

LiveData使用观察者设计模式,视图作为观察者,数据作为被观察者,视图对于进行数据的观察,当数据发生变化时,可以主动通知视图,这本身是一个很简单类似OnClickListener的简单原理,但是难点在于,如何解决LiveData中由于需要实现通知,拥有了视图的引用,从而导致可能存在的内存泄露问题。

2023-05-04 06:45:00 2447 64

原创 Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(三)

LiveData 从实践到原理,源码阅读

2023-05-03 07:00:00 1076 25

原创 Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(二)

首先是LiveData数据结构定义,经过猜想,我们知道这块两个东西最重要,一个是数据容器的设定,一个是内部存储数据结构,我们这里通过泛型就可以实现/*** 自定义LiveData实现/*** 内部存储的数据结构*/ T data;/*** 构造函数} /*** set方法} /*** 直接在当前线程调用//todo 子线程执行的逻辑 } public T getValue() {} /*** 检测是否为主线程if(!} } }

2023-05-02 07:15:00 1010 18

原创 关于重构的原则和思想总结

永远不要忘记「两顶帽子」重构与开发是两顶帽子,要时常交换进行,不可以同时戴上。

2023-04-12 14:51:37 1216 112

原创 有学生问我,重构是什么?我应该如何回答?

重构到底是什么?只是代码的推倒重新编码?还是有规则、有方法可寻?当然,结论肯定是有的,本文,我们通过一个简单的实例,来理解一下重构。

2023-04-11 10:38:21 684 63

原创 Android Jetpack 从使用到源码深耕【数据库注解Room 从实践到原理 】(三)

在源码探索的过程中,大家是否发现了这样一个类。/**/**} }有小伙伴,是否看着很有趣又亲切呢?有趣在于这里即对一个对象的行为进行了接口抽象定义,同时也对这个对象的创建工厂,进行了工厂定义亲切在于,不管是去年我们在设计模式精讲系列课程里,还是在okhttp的源码探索,以及rxjava的源码探索中,发现这些第三方框架,几乎都使用了这样的封装方式,即:先将行为抽象,使外界面向接口编程,其次再将对象创建也抽象,使用工厂模式,进行对象创建。

2023-04-10 09:48:28 2740 62

原创 Android Jetpack 从使用到源码深耕【数据库注解Room 从实践到原理 】(二)

Room是对SQLite数据库的抽象,它提供了很多便利的API和注解等,简化了使用者使用数据库的方式。同时,Room提供了 LiveData、Rxjava的结合使用的组件,更加方便了开发使用。使用Room减少了很多sql模板代码的编写,整体使用上简单、明了了很多,尤其是结合Rxjava,可以直接实现主子线程的切换、流式业务代码操作的编写。

2023-04-07 10:28:53 2756 74

原创 Android Jetpack 从使用到源码深耕【数据库注解Room 从实践到原理 】(一)

本文,我们通过一个简单的sqlite应用实例,引入了Room,知道了Room使用的便捷和好处。然后用Room的方式,重新实现了应用实例中的场景,在这个过程中,我们结合自己已有的知识体系,从使用代码入手,对Room的实现原理,进行了猜想和简单的验证。Room是否是这样做的?下一章节,我们一边阅读源码,一边去看一下。

2023-04-06 14:09:58 2253 62

原创 Android Jetpack 从使用到源码深耕【调度任务组件WorkManager 从实践到原理 】(三)

上面的调用,从worker的提交,到job的具体执行,绕了一圈,我们画个图梳理一下。SerialExecutor的知识应用,当我们想要控制一个任务队列中的任务,串行执行时,可以使用这样的实现方案,但是,我们需要知道,这样有一个坏处就是,达不到并发的目的了。Provider可以用于初始化init函数的调用,当我们在设计一些框架时,为了简化使用者的调用步骤,可以使用Provider的方案。

2023-04-04 14:08:50 2911 59

原创 Android Jetpack 从使用到源码深耕【调度任务组件WorkManager 从实践到原理 】(二)

本文,我们对于WorkManager的初始化、任务入队的源码进行了深入的解读,学到了WorkManager的初始化,和MMKV、VirtualAPK、LeakCanary这些第三方框架源码一样,都使用了Provider初始化的设计方案,发现这真是一个好处,就是使用了manifest注册时,PackageParse会解析其中的四大组件,然后在AMS中进行信息初始化,那么此时Provider就会进行初始化,所以使用了这个特性。

2023-04-03 11:19:46 833 54

原创 【创作赢红包】字节面试遇到的算法题目(LRU缓存机制自我实现题目)

最近在字节的面试过程中,遇到了这样一道算法题目,其实很简单,就是我们经常用到的缓存机制-LRU(最近最少使用),今天有空,总结一下这次的这道面试题目。

2023-04-01 13:54:03 395 12

原创 Android Jetpack 从使用到源码深耕【调度任务组件WorkManager 从实践到原理 】(一)

本文,我们对Jetpack的调度任务组件WorkManager ,由使用入手,对其源码进行深入学习、总结一下。

2023-04-01 11:08:27 2021 58

原创 Android Jetpack 从使用到源码深耕【生命周期感知组件Lifecycle从实践到原理 】(二)

按照标准观察者模式设计思想,首先要定义通知接口看到这里,lifecycle源码,基本都已讲完。我们来总结一下1)lifecycle大体是,通过观察者设计模式,实现activity、fragment等生命周期的具体感知、通知的2)lifecycle实现方案上,对于API>=29采用的最新的API ActivityLifecycleCallbacks 来感知所有的生命周期。

2023-03-31 09:51:22 1376 43

原创 Android Jetpack 从使用到源码深耕【生命周期感知组件Lifecycle从实践到原理】(一)

本文,我们首先一个简单的实际代码例子入手,开始说明lifecycle被引入的背景,进而我们使用lifecycle实现了简单的需求,篇幅所限,lifecycle的自我实现以及源码探索,我们下篇文章继续探索。

2023-03-30 10:05:14 873 36

原创 Android Jetpack从使用到源码深耕【开篇】

V4、V7、androidX,是Google的兼容包的一个进化史,androidX是最终的(目前的),最优整合兼容包Jetpack是一系列组件组成的一个套件,是用于帮助开发者遵循最佳做法、减少样板代码、减少适配代码、减少重复代码,从而让android开发者快速、高效率编码的一个工具盒,对于工具盒中的每项功能,你都可以单独拿起来使用(也就是在gradle中,可以单独引用每个组件)。jetpack历史

2023-03-29 16:24:02 1165 36

原创 Android源码面试宝典之JobScheduler从使用到原理分析(五)【JobIntentService】

1)JobIntentService在android8.0以上,是通过JSS+JSC实现的后台任务执行管理,任务会交由AsyncTask后台执行;在android8.0以上,是通过PowerManager来获取了wakeup锁,实现了后台任务的执行管理,任务同样也会交由AsyncTask后台执行;2)JobIntentService的任务后台执行,是放置于线程池的,所以是多线程并发执行;

2023-03-29 13:47:31 986 30

原创 Android源码面试宝典之JobScheduler从使用到原理分析(四)【JobScheduler、StateController 】

本文,我们主要对IntentService的替代API接口JobScheduler,从简单的使用入手,然后逐步对内部的实现源码细节进行分析。JobSchedulerService是一个关键的系统服务,在android系统启动时,作为核心服务已经启动。我们通过JobScheduler提交的JobInfo,在JobSchedulerService中,会转换为JobStatus,然后交由各个状态监控器StateController去监控。

2023-03-28 11:04:01 2141 72

信号处理领域+Signal Processing Toolbox+功能详解与案例应用+学习与实践参考资料

这是一份详尽的信号处理学习与实践参考资料,深度解析Signal Processing Toolbox的核心功能与高级应用。通过丰富的案例,你将掌握从时域分析到频域分析,再到滤波与时频分析的全流程技巧。

2024-12-16

python实现的圣诞树可执行程序

python实现的圣诞树可执行程序,可以自定义去替换资源文件,同时有可执行的exe,适合小白直接使用,只需要替换音频文件和资源即可。

2024-12-16

软件测试领域+TestNG框架+实践总结+学习参考资料

这是一份详尽的TestNG从零实践总结,涵盖了TestNG的基本概念、核心特性、运行方式以及与JUnit4的深入对比。通过这份资料,你将全面掌握TestNG这一强大开源自动化测试框架的精髓。 使用人群:面向软件测试工程师、自动化测试爱好者及希望提升测试效率与质量的专业人士。 使用场景及目标:适用于需要在项目中快速上手TestNG、优化测试流程、提升测试覆盖率和准确性的场景。通过深入学习,你将能够利用TestNG构建高效、可靠的测试体系。 其他说明:这份资料凝聚了作者丰富的实践经验和心得,是你掌握TestNG、提升测试技能的不可或缺的参考资料。现在购买,即可开启你的自动化测试之旅,让测试工作更加轻松高效!

2024-12-16

EclipseWeb集成开发工具

Eclipse Version: Mars.1 Release (4.5.1) 与 Apache-tomcat-7.0.81集成版本,大家不必再单独下载配置,下载此软件,可直接使用

2022-10-25

SuperRecyclerView-master

SuperRecyclerView-master,RecyclerView是我们经常使用的android 控件,此控件自动实现了头、尾的装饰开发。

2022-10-24

MPAndroidChart android图形绘画工程

MPAndroidChart-master,android图形绘画工程,绘制柱状图、折线图、表格等等图形。大家可以使用试试,效果还是不错的,当然了,有能力的小伙伴,最好研究一下源码,相信会有更大的收获。

2022-10-24

Java面试枚举从使用到原理

【Java面试】枚举从使用到原理

2022-10-24

Markdown 的语法word版本

本文档主要讲述的是MARKDOWN 语法说明;Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。Markdown 语法的目标是:成为一种适用于网络的书写语言。

2022-10-24

自定义实现的bindview框架(Butterknife)

自定义实现的bindview框架(Butterknife),通过编译时注解处理(APT)+JavaPoet(生成java代码)+反射(调用bind方法),来在框架中实现了,事件的自动绑定和视图的自动绑定。

2022-05-07

Linux版本JDK1.8.0_92版本

Linux版本JDK1.8.0_92版本

2022-03-29

ThreadStateProject

thread state test project 1.对比java中的sleep()和wait()的区别 2.等待调用join方法的线程结束,再继续执行

2017-03-16

哈夫曼树代码用c++写的

简单的代码简单的代码简单的代码简单的代码简单的代码简单的代码简单的代码简单的代码简单的代码简单的代码简单的代码简单的代码

2011-06-06

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

TA关注的人

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