一名(深陷Android无法自拔的)大二狗的年中总结
前言大家好,我是入行没多久,不会写代码的RQ。一名来自四非学校的大二狗。2023时间已经过去了一半,我的大学生活也过去了一半。借着这个2023年中总结的话题我也想给我的前半段大学生活做一个总结和记录(希望大家原谅理工男的表达能力,已经在学着写博客了🙃)。
大学之前大学之前,我的高中初中都是在一个小乡镇度过,每天都是过着教室、食堂、厕所三点一线的生活。可能偶尔会和几个好兄弟打打球,开开黑。那时候一心只读圣贤书,从未碰过电脑(也只有偶尔去网吧玩玩电脑游戏),也未曾了解过任何跟代码相关的东西。只有在高三快毕业了,学校进行志愿填报培训的时候,我才在想我想干什么。
我想学编程,我想搞钱,我要成为编程高手!!哈哈哈,当时的确是这么想的,因为我一直都觉得会电脑,会编程的“大黑客”很酷!。然而结果是
当时我还一时兴起,在京东上买了本0基础学python的书:
奈何高三学业繁忙没时间看,而且也没有电脑实操,看了十几页压根不知道在讲什么,之后这本书也就放着吃灰了。现在看来当时确实挺傻×的。后来上了大学,自学了python,这本书也就送给了室友。
高三的时候大家都想着我要上某某985!我要上某 ...
设计模式学习笔记
本篇文章是学习设计模式过程中做的笔记(主要是每种设计模式的代码示例),部分代码和内容来自掘金社区。
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
为什么要学设计模式?
设计模式来源众多专家的经验和智慧,它们是从许多优秀的软件系统中总结出的成功的、能够实现可维护性、复用的设计方案,使用这些方案将可以让我们避免做一些重复性的工作。
大部分设计模式都兼顾了系统的可重用性和可扩展性,这使得我们可以更好地重用一些已有的设计方案、功能模块甚至一个完整的软件系统,避免我们经常做一些重复的设计、编写一些重复的代码
合理使用设计模式并对设计模式的使用情况进行文档化,将有助于别人更快地理解系统
学习设计模式有助于更加深入地理解面向对象思想,能够踏出架构的第一步。
设计模式种类设计模式一共分为三种类型:
创造型设计模式:单例模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式
结构型设计模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型设计模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任 ...
一文搞清楚Handler,再也不怕面试官
[TOC]
Handler可以说是Android框架里面很精髓的一部分了,面试必问,用的也最多,这篇文章带你彻底搞清楚Handler。
Handler是什么?提到Handler大家一定不陌生,我们经常用它来切换线程,或者是说做一些延时任务等等。最常用的地方可能就是在网络请求中去切换到主线程中去操作UI。为什么要切换到主线程去操作UI呢?在这之前我们知道在Android里面所有的View都是线程不安全的,意思就是你不能多线程去操作UI,这是Android不允许的,它规定了你只能在主线程去操作UI。
总结一句话就是:Handler就是用于线程间通信,解决子线程无法访问UI的问题
Handler的几种常见使用方法注意:Handler的无参构造已经弃用
1.作为内部类作为内部类的使用方法相信大家在熟悉不过了:
class MainActivity : AppCompatActivity() { private val mBinding by lazy { ActivityMainBinding.inflate(layoutInflater) } pri ...
Jetpack之四:ViewModel
ViewModel1.什么是VeiwModelViewModel 类是一种业务逻辑或屏幕级状态容器。它用于将状态公开给界面,以及封装相关的业务逻辑。 它的主要优点是,它可以缓存状态,并可在配置更改后持久保留相应状态。这意味着在 activity 之间导航时或进行配置更改后(例如旋转屏幕时),界面将无需重新提取数据。
简单来说就是保存activity和fargment页面的数据的。
何谓配置变更?配置变更指的是,应用在运行时,内置的配置参数变更从而触发的Activity重新创建。
常见的场景有:旋转屏幕、深色模式切换、屏幕大小变化、更改了默认语言或者时区、更改字体大小或主题颜色等。
何谓异常重建?异常重建指的是非配置变更情况下导致的 Activity 重新创建。
常见场景大多是因为 内存不足,从而导致后台应用被系统回收 ,当我们切换到前台时,从而触发的重建,这个机制在Android中为 Low Memory Killer 机制,简称 LMK。
可以在开发者模式,限制后台任务数为1,从而测试该效果。
2.为什么需要ViewModel?在 ViewModel 出现之前,对于 View 逻 ...
Jetpack之三:LiveData
上篇我们介绍了Lifecyle,这篇继续了解一下Jetpack系列之二:Livedata。
1.什么是LiveData?LiveData是一种类,持有可被观察的数据。LiveData是一种可感知生命周期的组件,它是基于lifecycle组件的,意味着该组件重视其他app组件的生命周期,如Activity、Fragment、Service。该组件能确保,仅仅在Activity\Fragment\Service等组件都处于活跃的生命周期状态的时候,才去更新app组件。Activity、Fragment不用担心会出现内存泄露,在Activity、Fragment销毁时,LiveData会自动解除其注册关系。
2.为什么要用Livedata?
LiveData能确保UI和数据状态相符
因为是观察者模式,LiveData会在生命周期状态改变时,通知观察者可以在观察者对象中进行UI的更新操作
LiveData没有内存泄露
观察者和Lifecycle对象绑定,能在销毁时自动解除注册
LiveData不会给已经停止的Activity发送事件
如果观察者处于非活跃状态,LiveData不会 ...