自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Jetpack学习之ViewModel

对Android Jetpack库中的ViewModel组件进行介绍并演示部分代码

2022-08-03 15:33:17 445

原创 Jetpack学习之Lifecycle

对Android Jetpack库中的Lifecycle组件进行介绍并演示部分代码

2022-07-22 19:40:11 519

原创 Java中的异常机制

最近面试了几家公司,某大厂的面试官有问到我对于Java中异常机制的了解,吧啦吧啦的和面试官说了一下自己的理解,从受查异常到非受查异常,从Throwable到Error、Exception,等等...,面试完,自己回头想了一下,感觉可能是面试的时候有点紧张?似乎讲的也不是很好,可能从自己懂到讲给别人听,让别人也能理解自己的理解,是需要自己真正消化掉这一部分知识。正好最近也有再回头看一下《Java核心技术》这本书,就在本博文里面梳理一下自己对于Java异常机制这部分内容的拙见吧。1 异常的分类在Java

2022-04-10 17:14:05 508

原创 SharedPreferences的跨进程之旅

之前的文章中,对SharedPreferences的基本使用进行了介绍。同时也提到了,SharedPreferences的功能并不是为了解决跨进程通信,且也不支持跨进程。实际上并非如此,谷歌官方只是不推荐也不建议我们在跨进程场景中使用它,但是我们依然有办法在不同的进程中通过SharedPreferences共享数据。主要要利用到Context类的createPackageContext(String packageName, int flags)方法,这个方法,可以在应用中,创建其他包中应用的上下文(也就是

2022-03-22 00:30:26 3348

原创 SharedPreferences牛刀小试

SharedPreferences是由Android提供的轻量级的存储方式,为什么叫它轻量级,主要是由于它只能够存储Java基本类型的数据。其底层实现也是借助共享文件,只不过Android基于Java的文件系统又再次做了一些封装。使其调用起来更为简单和方便。...

2022-03-20 17:08:16 3076

原创 Android中的IPC方式——共享文件

不同进程之间也可以通过读写相同的文件来实现跨进程通信,例如进程A将数据写入文件,进程B通过读取这个文件来获取数据。由于Android系统是继续Linux开发,不同于Windows,Linux无法通过对文件添加排斥锁的方式来解决并发读写的问题,因此在使用共享文件进行跨进程通信时,需要注意潜在的并发读写问题。尽管如此,通过共享文件来进行进程间通信依然是个不错的方式,因为Java已经为我们提供了完备的类库来实现将基本数据类型和对象序列化到文件系统中,并从文件系统中恢复它们。同之前一样,我们还是通过写一个小De

2022-03-19 16:19:33 2732

原创 Android中的IPC方式

常见的Android跨进程通信(IPC)方式

2022-03-17 16:56:08 845

原创 Android中的IPC方式——Bundle

说一个很常见的现象,我们在使用Android手机的过程中,肯定都会遇到从一个App中跳转到另一个App的场景。例如,在支付宝中跳转到淘宝中,并显示淘宝中某个商品的详情页。这个本质上就是从一个进程中的某个Activity跳转到了另一个进程中的某个Activity,借助Bundle,我们就可以在这个过程中跨进程的传递一些数据信息(例如,现在很常见的,我们是否在特定的网页浏览的指定秒数,这个浏览结果,我们就可以通过Bundle在不同进程间进行传递)。在Android四大组件(Activity, Service

2022-03-17 16:54:00 1197

原创 Android事件分发机制

从源码中分析Android事件分发机制

2022-03-14 14:30:18 462

原创 浅聊Java中的自动装箱和拆箱

引言前些天,一个朋友问了我如下代码的执行结果是什么,public class Main { public static void main(String[] args) { Integer i1 = null; System.out.println(i1 == 1); }}我说会NPE(NullPointerException)空指针异常,虽然的确执行后会报空指针异常,但是对于空指针的根本原因,我那时候还答不上来。这几天抽空看了一下相关的资料并且自己

2021-12-05 17:15:50 235

原创 Ubuntu系统下载软件uGet安装及配置

前言 对大部分使用Windows系统的用户来说,可供使用的下载软件有很多,迅雷,QQ旋风等都是目前知名度较高的下载软件。但是工作后,我主要的开发工作都是在Ubuntu系统中进行,其中也难免需要进行一些资源文件的下载。在最早接触Ubuntu系统时,由于Ubuntu系统对软件的安装方式同Windows大不相同,很多软件需要添加源,并在命令行下进行安装,初学Ubuntu的我大部分的下载工作是通过浏览器自带的下载功能完成,虽然几乎所有的下载任务都能完成,但是速度比较慢,并且无法配置下载参数。后面开始使用...

2021-09-16 16:14:48 2097

原创 JAVA设计模式——观察者模式(Observer Pattern)

概述考虑到一个现实需求,实现微信的订阅通知功能,即某某公众号发布了一个消息,那么所有订阅了该公众号消息订阅的使用者都会得到这个消息的通知。如何实现?下意识脑中想到了轮询,订阅者并不知道什么时候公众号会发布新消息,那么我们可以让订阅的人每隔一段时间去检查一下公众号的状态,看看有没有发布新的消息。但是现实中真的是这样实现的吗?这样做会有以下的缺陷:1、消耗资源去主动检查公众号状态。2、无法及时的得到消息订阅提醒。看似只要轮询的间隔足够小,订阅者就能够及时的得到订阅消息。轮询时间间隔越小,单位时间消耗

2020-06-30 19:06:51 379

原创 JAVA设计模式——模板方法模式(Template Method Pattern)

概述模板方法模式属于行为型模式。它由一个抽象类公开定义了执行它的方法的模板(执行的方式或顺序),它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。具体而言就是抽象类定义了某个方法的执行方式或者顺序,但是将该方法中的部分逻辑甚至全部逻辑实现交给具体的子类去实现,实现更高的抽象性。模式中的角色1、抽象类(AbstractClass):定义方法的模板,即方法的执行方式和顺序。2、具体类(ConcreteClass):实现抽象类中的抽象方法,提供具体的执行逻辑。应用举例简单来

2020-06-30 18:25:17 394

空空如也

空空如也

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

TA关注的人

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