- 博客(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
原创 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
原创 Android架构组件:MVVM模式的实战应用与数据绑定技巧
MVVM模式是一种基于三层结构的架构模式,旨在解决复杂UI开发中的耦合问题。它由三个主要部分组成:Model(模型)、View(视图)和ViewModel(视图模型)。Model:负责管理应用的数据和业务逻辑。它包含应用的所有数据结构和业务逻辑代码,是应用的核心。View:负责呈现用户界面(UI),即用户可以看到并与之交互的部分。在Android中,View通常是Activity或Fragment。ViewModel:充当Model与View之间的桥梁。
2024-09-24 11:27:40
1190
原创 DevEco Studio快捷键指南
DevEco Studio的快捷键功能非常强大且灵活,你可以根据自己的需要自定义快捷键配置或者通过插件扩展来增加更多的功能
2023-12-16 15:51:12
3620
原创 Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(四)
LiveData使用观察者设计模式,视图作为观察者,数据作为被观察者,视图对于进行数据的观察,当数据发生变化时,可以主动通知视图,这本身是一个很简单类似OnClickListener的简单原理,但是难点在于,如何解决LiveData中由于需要实现通知,拥有了视图的引用,从而导致可能存在的内存泄露问题。
2023-05-04 06:45:00
2447
64
原创 Android Jetpack 从使用到源码深耕【LiveData 从实践到原理 】(二)
首先是LiveData数据结构定义,经过猜想,我们知道这块两个东西最重要,一个是数据容器的设定,一个是内部存储数据结构,我们这里通过泛型就可以实现/*** 自定义LiveData实现/*** 内部存储的数据结构*/ T data;/*** 构造函数} /*** set方法} /*** 直接在当前线程调用//todo 子线程执行的逻辑 } public T getValue() {} /*** 检测是否为主线程if(!} } }
2023-05-02 07:15:00
1010
18
原创 有学生问我,重构是什么?我应该如何回答?
重构到底是什么?只是代码的推倒重新编码?还是有规则、有方法可寻?当然,结论肯定是有的,本文,我们通过一个简单的实例,来理解一下重构。
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+功能详解与案例应用+学习与实践参考资料
2024-12-16
软件测试领域+TestNG框架+实践总结+学习参考资料
2024-12-16
EclipseWeb集成开发工具
2022-10-25
SuperRecyclerView-master
2022-10-24
MPAndroidChart android图形绘画工程
2022-10-24
Markdown 的语法word版本
2022-10-24
自定义实现的bindview框架(Butterknife)
2022-05-07
ThreadStateProject
2017-03-16
git reset是干什么的?如何用?
2022-10-31
JAVA UML设计工具
2022-10-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人