- 博客(30)
- 收藏
- 关注
原创 Android中的属性动画
接下来我们学习Android动画中的第三种动画——属性动画(PropertyAnimation)Animation一般动画就是我们前面学的帧动画和补间动画!Animator则是本节要讲的属性动画!
2022-07-28 22:06:27 7842
原创 乐观锁和悲观锁
总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中`java.util.concurrent.atomic`包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。
2023-02-10 18:52:26 211
原创 Android MVVM架构
MVVM是Model-View-ViewModel的简写,是M-V-VM三部分组成。它本质上就是MVC 的改进 版。MVVM 就是将其中的View 的状态和行为抽象化,其中ViewModel将视图 UI 和业务逻辑分 开,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。2.MVVM采用双向数据绑定,view中数据变化将自动反映到viewmodel上,反之,model中数据变化 也将会自动展示在页面上。把Model和View关联起来的就是ViewModel。...
2022-08-16 19:28:16 10698 4
原创 RxJAVA
在介绍RxJava前,我们先聊聊响应式编程。那么什么是响应式编程呢?响应式编程是一种基于异步数据 流概念的编程模式。数据流就像一条河:它可以被观测,被过滤,被操作,或者为新的消费者与另外一 条流合并为一条新的流。响应式编程的一个关键概念是事件。事件可以被等待,可以触发过程,也可以触发其它事件。事件是唯 一的以合适的方式将我们的现实世界映射到我们的软件中:如果屋里太热了我们就打开一扇窗户。同样 的,当我们的天气app从服务端获取到新的天气数据后,我们需要更新app上展示天气信息的UI;...
2022-08-12 20:25:02 925
原创 Retrofit
我们项目当中的每个app都需要用到网络和服务器进行交互,在Android项目开发中使用HTTP协议完成 通信的话,基本上都要用到OkHttp或者Retrofit。
2022-08-11 23:13:16 492
原创 用Android描述一次完整的网络请求过程
从我们在浏览器的地址栏输入http://blog.csdn.net/seu_calvin后回车,到我们看到该博客的主页,这中间经历了什么呢?简单地回答这个问题,大概是经历了域名解析、TCP的三次握手、建立TCP连接后发起 HTTP请求、服务器响应HTTP请求、浏览器解析html代码,同时请求html代码中的资源(如js、css、图 片等)、最后浏览器对页面进行渲染并呈现给用户。下面分别介绍一下每个过程。以Chrome浏览器为例,Chrome会解析域名对应的IP地址。(1)Chrome浏览器会首先搜索浏览器自
2022-08-08 20:16:30 1246
原创 Android中的自定义View以及绘图工具
自定义View的实现方式有以下几种:组合控件,继承控件,自绘控件自定义组合控件,继承系统View控件,继承系统ViewGroup,自绘View控件,自绘 ViewGroup控件组合控件就是将多个控件组合成一个新的控件,可以重复使用。应用场景:在项目中经常会遇到一些比较复杂的UI块需要用在多处使用,那么我们就可以通过五大布局 和基本控件组合成一个新的布局View,这样就可以方便的将该UI用在项目的不同页面中,比如一个标题 栏。...
2022-08-05 20:29:58 706
原创 Material Design
还记得我们每次打开的程序的标题栏吗?Toolbar 不仅有 Actionbar 的所有功能,而且还更加灵活. 在项目运行在虚拟机上时,都可以看见屏幕上方有一个栏目(下图红框圈出的部分),此为系统默认的 DarkActionBar ,可在 themes.xml 中查看。Toast提示是不是有点拉,可以用Snackbar提示,但是Toast并非是不如Snackbar,他们有不同的应用场景。Snackbar允许在提示中加入一个可交互按钮,当用户点击按钮的时候,就可以执行一些额外的逻辑 操作。如何将它给替换掉呢?.
2022-08-05 19:28:10 131
原创 Android中的CardView和Fragment
1.Fragment的简介 Fragment译为“碎片”,是Android 3.0(API 11)提出的,最开始是为了适配大屏的平板。2.Fragment看起来和Activity一样,是一个用户界面。可以结合多个Fragments到一个activity中来构 建一个有多方面功能的UI,还可以重用同一个Fragment在多个activities中。Fragment可以当成是 activity的一个组件,每个Fragment有单独的生命周期,可以在activity运行时进行添加和移除 Fragment。...
2022-08-03 21:49:08 387
原创 Android中的RecycleView使用
从Android5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加强大和灵活。RecyclerView是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字Recyclerview即回收view也可以看出。RecyclerView支持线性布局、网格布局、瀑布流布局三种,而且同时还能够控制横向还是纵向滚动。/设置Transformer//添加边距Transformer。...
2022-08-01 20:37:40 3115 2
原创 AIDL应用
AIDL(Android 接口定义语言),可以使用它定义客户端与服务端进程间通信(IPC)的编程接口。在 Android系统中,每个进程都运行在一块独立的内存中,在其中完成自己的各项活动,与其他进程都分 隔开来。可是有时候我们又有应用间进行互动的需求,比较传递数据或者任务委托等,AIDL就是为了满 足这种需求而诞生的。通过AIDL,可以在一个进程中获取另一个进程的数据和调用其暴露出来的方法, 从而满足进程间通信的需求。 AIDL是用于定义服务端和客户端通信接口的一种描述语言,可以拿来生产IPC代码,从某种意
2022-08-01 17:58:33 134
原创 Android中的动画
帧动画非常容易理解,其实就是简单的由N张静态图片收集起来,然后我们通过控制依次显示这些图片,因为人眼"视觉残留"的原因,会让我们造成动画的"错觉",跟放电影的原理一样!而Android中实现帧动画,一般我们会用到前面讲解到的一个DrawableAnimationDrawable先编写好Drawable,然后代码中调用start()以及stop()开始或停止播放动画。...
2022-07-27 12:50:24 462
原创 线程、Handler
在AndroidManifest.xml中注册,注册时发现报错,报错的原因是没有无参的构造方法,解决办法:创建无参的构造方法
2022-07-25 22:15:21 114
原创 分支结构(if)
1、单分支:if(条件判断){条件为真时执行的代码}2、多分支:(1)if(条件判断){条件为真时执行的代码}else {条件为真时执行的代码}1、条件2、条件的结果是布尔类型3、满足这个条件,我就怎么怎么样。。。。。语句块 if(表达式){// 表达式的结果一定是布尔类型 语句块;//当我满足这个条件的时候,即意味着这个表达式的结果位true.程序就会进入if里面,执行if里面的语句块}当表达式为ture的时候,执行if里面的内容。当表达式为false的时候,执行else里面的内容
2022-06-11 17:30:07 322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人