自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android开发学习笔记之设计模式——组合模式&享元模式&外观模式

文章目录Android开发学习笔记之设计模式——组合模式&享元模式&外观模式组合模式概述应用场景优缺点实现享元模式概述应用场景优缺点实现外观模式概述应用场景优缺点实现Android开发学习笔记之设计模式——组合模式&享元模式&外观模式组合模式概述组合模式是一种结构型模式,相对而言比较简单,通常用于设计一些呈树状结构的对象模型,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性。组合模式一般用来描述整体与

2021-02-28 18:20:08 324

原创 Android开发学习笔记之RecycleView缓存机制

文章目录Android开发学习笔记之RecycleView缓存机制概述为什么需要缓存机制呢?RecycleView的缓存机制基本原理数据集发生变化item滑出屏幕针对RecycleView的缓存机制的优化策略Android开发学习笔记之RecycleView缓存机制概述RecycleView作为Android开发中最为常见的一个View,其布局灵活,功能强大,在日常的开发中,已经基本取代了List View和GridView成为了我们在使用列表的不二之选。但是,尽管使用频率相当高,在开发中使用Recy

2021-01-31 20:54:13 614

原创 Android开发学习笔记之设计模式——装饰模式&桥接模式

文章目录Android开发学习笔记之设计模式——装饰模式&桥接模式装饰模式概述应用场景优缺点实现桥接模式概述应用场景优缺点实现Android开发学习笔记之设计模式——装饰模式&桥接模式装饰模式概述在开发过程中,我们可能会对某个类进行功能扩展,通常情况下,扩展方式存在以下两种:继承:使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机;组合:即将一个类的对象嵌入另一

2021-01-24 20:41:09 306

原创 Android开发学习笔记之设计模式——适配器模式&代理模式

文章目录Android开发学习笔记之设计模式——适配器模式&代理模式适配器模式概述应用场景优缺点实现代理模式概述应用场景优缺点实现Android开发学习笔记之设计模式——适配器模式&代理模式结构型模式即通过将类或对象按某种布局组成更大、更复杂的结构的设计模式。通常可以分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。适配器模式概述适配器模式即将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,又可称为包装器

2021-01-17 20:31:50 215

原创 Android开发学习笔记之设计模式——原型模式&建造者模式

文章目录Android开发学习笔记之设计模式——原型模式&建造者模式原型模式概述应用场景优缺点实现建造者模式概述应用场景优缺点实现Android开发学习笔记之设计模式——原型模式&建造者模式原型模式概述在开发过程中,我们经常会遇到这样的问题,如果我们想要创建一个非常复杂的对象,那我们可能需要进行相当多的处理,尤其是数据类,通常都存在很多成员变量,而其中很多变量还是需要通过I/O操作获取的,此时创建一个新的对象的成本就显得很高了。此时,我们或许会想,如果存在一种方法可以复制原有的对象就

2021-01-10 20:44:55 178

原创 Android开发学习笔记之设计模式——工厂方法模式&抽象工厂模式

文章目录Android开发学习笔记之设计模式——工厂方法模式&抽象工厂模式简单工厂模式概述应用场景优缺点实现工厂方法模式概述应用场景优缺点实现抽象工厂模式概述应用场景优缺点实现总结Android开发学习笔记之设计模式——工厂方法模式&抽象工厂模式创建型模式的主要特点是“将对象的创建和使用分离”对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。为了使软件的结构更加清晰,外界对于这些对

2021-01-03 20:01:00 171

原创 Android开发学习笔记之设计模式——单例模式

文章目录Android开发学习笔记之设计模式——单例模式设计模式概述原则总原则:开闭原则六大原则分类单例模式概述优缺点应用场景实现懒汉模式饿汉模式双检锁模式(DCL模式)静态内部类实现单例枚举实现单例总结Android开发学习笔记之设计模式——单例模式设计模式在我们进行开发的过程中,为了提高代码可读性以及可维护性等,我们可能就会有意或无意中接触到设计模式,比如最常见的单例模式、建造者模式和工厂模式等。概述设计模式是软件设计中常见问题的典型解决方案。 它们就像能根据需求进行调整的预制蓝图, 可用于解

2020-12-27 22:07:18 232

原创 Android开发学习笔记——ViewBinding

文章目录Android开发学习笔记基本使用开启ViewBinding视图绑定Activity中使用ViewBindingFragment中使用ViewBinding自定义View中使用ViewBinding自定义Dialog中使用ViewBindingAdapter中使用ViewBinding总结使用Binding类来操作Viewinclude和merge比较总结Android开发学习笔记在Android开发过程中,当我们需要使用到布局中的组件,为其进行赋值或者设置监听等操作时,我们往往需要先获取到其对

2020-12-20 19:48:40 1686 1

原创 Android开发学习笔记——Kotlin协程

Android开发学习笔记——Kotlin协程Android中的异步编程协程基本使用Android中的异步编程我们知道,Android App的进程也是一个DVM,内部有许多线程在执行,比如,主UI线程(Main Thread),垃圾回收线程等。其中主UI线程负责执行我们写的应用代码。对于只做很少的I/O操作或耗时操作的App,单一线程开发模式问题不大,但是如果有大量IO或者CPU计算的任务,我们就必须在其他线程内完成了。在实际的开发过程中,我们通常会要求应用的帧率达到60帧,也就是说每16毫秒就必须

2020-12-13 20:53:36 582

原创 Android开发笔记——MVVM模式&Jetpack实现MVVM模式

Android开发笔记——MVVM模式&Jetpack实现的MVVM模式MVVM模式MVC、MVP和MVVMMVC概述特点MVP概述MVC和MVP的区别MVVM概述特点Jetpack实现MVVM在之前的学习中,我将Jetpack中使用最为频繁的几个架构组件都做了相关的学习和了解,但是,之前只是对每个组件分别进行学习,而如何在实际开发中学会熟练使用Jetpack的组件才是最重要的,正好打算再重新学习和了解下Android的MVVM模式,所以这周我打算基于Jetpack的几个组件写一个简单的MVVM模

2020-12-06 21:22:51 3397

原创 Android开发学习笔记——Jetpack之WorkManager

Android开发学习笔记——Jetpack之WorkManagerWorkManager概述基本使用Worker的调度调度一次性任务和定期任务调度一次性任务调度周期性任务环境约束延时任务WorkRequest的标记和获取任务链后台任务的管理和监听监听后台任务的执行后台任务状态任务状态后台任务执行进度后台停止和取消任务数据的输入和输出WorkManager概述WorkManager是Jetpack中提供用于处理后台任务的一个库,使我们可以轻松调度那些即使在退出应用或重启设备时仍应运行的可延期异步任务。

2020-11-29 21:27:59 317

原创 Android开发学习笔记——Jetpack之Lifecycle

Android开发学习笔记——Jetpack之Lifecycle概述基本使用监听Activity或是Fragment的生命周期自定义LifecycleOwner基本实现原理LifecycleOwnerLifecycle概述Lifecycle与LiveData以及ViewModel相同,都是谷歌推出的Jetpack中的重要一员,Lifecycle是一个生命周期感知组件,用于感知生命周期的变化帮助我们在特定时期处理相关操作。在开发中,为了处理生命周期,一种常见的模式是在 Activity 和 Fragme

2020-11-22 20:13:14 176

原创 Android开发学习笔记——Jetpack之LiveData&ViewModel

Android开发学习笔记——Jetpack之LiveData&ViewModelJetpack概述基本使用LiveData&ViewModelLiveData基本使用LiveData源码分析理解ViewModel基本使用ViewModel的生命周期Fragment间共享数据ViewModel和LiveData配合使用总结Jetpack概述在Android的官方文档中,对Jetpack有如下描述:Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在

2020-11-15 19:41:14 237

原创 Android开发学习笔记——Android的Handler消息机制

Android开发学习笔记——Android的消息机制Handler的基本使用AndroidUI线程安全问题Handler的基本使用Handler、MessageQueue和LooperHanlderThread和IntentService在Android开发中,我们知道,Android存在线程安全的问题,在子线程中是无法进行UI更新的,否则就会出现异常。然后,在实际的开发过程中,由于网络请求、IO操作等耗时操作无法在主线程进行,否则很容易阻塞主线程,从而造成ANR错误,所以异步的多线程操作是无法避免的,

2020-11-08 20:58:14 286

原创 Android开发学习笔记——自定义View(三)View事件分发机制

Android开发学习笔记——自定义View(三)View事件体系

2020-11-01 20:48:15 257

原创 Android开发学习笔记——自定义View(二)自定义View绘图

Android开发学习笔记——自定义View(二)自定义View

2020-10-25 22:29:25 285

原创 Android开发学习笔记——自定义View(一)View三大工作流程measure、layout和draw

Android开发学习笔记——自定义View(一)View基础知识View基本介绍ViewRoot和DecorViewView的三大工作流程measure过程view的measure过程MeasureSpecMeasureSpec和LayoutParams的对应关系layout过程draw过程Android已经为我们提供了众多基础控件,我们可以通过这些控件创建出多种多样的界面布局,但是,在实际开发中,如果界面元素过于复杂有可能无法使用基础控件实现,此时就需要我们根据需求自定义view。在正式开始学习自定义

2020-10-18 19:09:50 615

原创 Android开发学习笔记——Android的持久化数据存储

Android的持久化数据存储文件存储openFileOutput和openFileInputSharedPreference存储基本使用保存数据数据获取SQLite数据库存储基本使用创建数据库并获取SQLiteDatabase使用SQL语句操作数据库增删改查SQLiteOpenHelper在我们的开发过程中,我们可以发现,应用程序的使用实际上就是对数据的交互,我们的应用所实现的实际上就是对不同数据的展示和操作。在实际开发中,我们往往会通过网络请求来获取数据,但是有时候我们也需要将数据保存起来以备下一次的

2020-09-20 20:29:34 293

原创 Android开发学习笔记——View动画和属性动画

View动画和属性动画View动画帧动画基本实现xml实现AnimationDrawable实现注意事项补间动画基本种类和属性平移动画TranslateAnimation缩放动画ScaleAnimation旋转动画RotateAnimation透明度动画AlphaAnimation动画集合常用属性注意事项动画监听LayoutAnimation和Activity切换动画属性动画基本使用ValueAnimatorObjectAnimatorAnimatorSet监听器属性动画的XML插值器和估值器属性动画和Vi

2020-09-13 20:51:00 486 1

原创 Android开发学习笔记——网络编程

Android开发学习笔记——网络编程HTTP协议简介HTTP协议工作流程请求报文和响应报文HttpURLConnnection和HttpClientjson解析HTTP协议随着互联网时代的来临,基本上我们在实际开发中都需要连网,发送网络请求来获取数据或者其它操作了,很少存在单纯的本地应用,因此,掌握Android网络编程的相关知识就相当重要了。目前,Android为我们提供了以HttpURLConnection等众多网络编程的API,而且各种网络请求相关的开源库的存在,让我们在开发中的网络访问等操作变

2020-09-06 20:22:02 323

原创 Android开发学习笔记——Fragment

Android开发学习笔记——Fragment简介基本使用静态添加动态添加生命周期Fragment中的通信简介Fragment直译过来即碎片, 是一种可以嵌入在 Android 当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用得非常广泛。Fragment 和 Activity 非常像,同样可以包含布局,同样都有自己的生命周期。你甚至可以将 Fragment 理解成一个迷你型的 Activity,虽然这个迷你型的 Activity 有可能和普通的 Activity 是一样大

2020-08-30 20:57:58 375

原创 Android开发学习笔记——四大组件之ContentProvider

Android开发学习笔记——四大组件之ContentProviderContentProvider简介跨进程通信概述基本使用相关知识ContentResolverURIContentProvider介绍使用ContentProvider访问其它应用创建ContentProvider提供外部访问接口总结ContentProvider简介ContentProvider作为Android开发四大组件之一,其主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中

2020-08-23 18:06:46 376

原创 Android开发学习笔记——四大组件之BroadcastReceiver

Android开发学习笔记——四大组件之BroadcastReceiver广播机制广播广播类型标准广播有序广播BroadcastReceiver(广播接收器)BroadcastReceiver的实现BroadcastReceiver的注册动态注册静态注册动态注册和静态注册的区别接受系统广播发送自定义广播发送标准广播发送有序广播本地广播比较权限限制总结BroadCastReceiver是Android四大组件之一,与Activity和service不同,其主要功能是实现Android内部组件之间的通信,在不

2020-08-16 20:25:41 243

原创 Android开发学习笔记——四大组件之Service

Android开发学习笔记——四大组件之Serviceserviceservice和线程基本使用创建startService和bindService生命周期startServicebindService与Activity的通信intentBinder其它方法ForegroundServiceservice在我们开发过程中,我们可能会遇到应用需要执行后台任务的需求,这些任务往往属于耗时操作,而且不需要与用户进行交互操作,这时,如果我们使用Activity来实现就不太合适了。而Service(服务)就是An

2020-08-09 21:15:30 456

原创 Android开发学习笔记——四大组件之Activity

Android开发学习笔记——四大组件Activity基本使用方法生命周期onSaveInstanceState和onRestoreInstanceState启动模式通信方式startActivity和startActivityForResult众所周知,Android开发中存在着四大组件,包括:Activity、Service、BroadcastReceiver和ContentProvider。其中Activity作为四大组件中为用户提供可视化界面的组件,是我们在开发中四大组件使用最为频繁的应用组件,一

2020-08-09 10:14:53 228

原创 Android开发学习笔记——对话框Dialog

Android开发学习笔记——对话框Dialog基本使用常用属性和方法AlertDialog基本方法和使用列表对话框单选列表对话框多选列表对话框其它Dialog自定义对话框setView继承DialogDialogFragmentonCreateDialogonCreateView显示DialogFragment与Dialog的比较总结弹出对话框在我们进行开发的过程中是一个很常见的需求,比如在退出APP之前、或者执行某种操作之前都会弹出对话框与用户进行交互,请求确认。基本使用常用属性和方法Alert

2020-07-26 21:27:57 367

原创 Android开发学习笔记——ListView、GridView和RecycleView

Android中的列表组件ListViewListView基本用法简单用法自定义item和AdapterListView的分隔线添加不同的列表项ListView的优化ListView与可滚动组件的嵌套冲突GridViewRecycleView在Android开发的过程中,由于手机屏幕大小是有限的,其能够显示的内容也是有限的,因此我们往往需要使用可滚动的控件来批量展示数据集合,在Android开发中,我们就常用List View、GridView和RecycleView来展示。ListViewListV

2020-07-19 22:17:34 1211

原创 Android开发学习笔记——常用布局

Android常用布局Android开发学习笔记——常用布局LinearLayout——线性布局1、orientation(方向)2、gravity和layout_gravity(位置)3、layout_weight(权重)RelativeLayout——相对布局1、相对父布局(属性值为true或false)2、相对其他子控件(属性值为id)FrameLayout——帧布局AbsoluteLayout——绝对布局TableLayout——表格布局ConstraintLayout——约束布局1、相对定位(Re

2020-07-12 21:27:32 429

原创 flutter中嵌入webview无法出现弹窗

使用setWebChromeClient无效,报错:WebViewCallback(12301): Unable to create JsDialog without an Activity原因:生成webview时new webview(context)中的context不是Activity的上下文,因此无法生成AlertDialog。解决方法:PluginRegistry中提供了act...

2019-08-07 15:54:45 3419

原创 padding和margin

padding和margin使用的一个坑:在父布局使用padding时,是不计算子组件(如CardView)的阴影部分的,会将子布局的阴影遮住使其无法完全显示,此时在子布局上使用margin可以修复这个bug。...

2019-05-06 10:34:43 239

原创 A*算法

这两天学习了A*算法,总结记录一下,方便以后学习复习。(写到一半忽然崩掉,,,心态炸了)A*算法要了解A*算法,首先需要了解什么是启发式算法:启发式算法即一种在基于经验和预测,通过启发函数预测当前实例的成本,从而找到最优实例的方法,其算法效率与启发函数息息相关,启发函数越是接近真实值,那么算法的效率就越高。A*算法,A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方...

2019-04-14 23:05:19 623

原创 Java中swing编程中界面组件加载不出的问题

前段时间在用Java进行swing编程中出现的一个小问题,今天突然想起来,记录下来练习时编写了一个简单的随机数生成器,代码如下:package NumberGenerator;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.event.Ac...

2019-04-14 19:30:54 4717

原创 ExpandableListView一级列表的箭头居右

记录一个ExpandableListView使用的小技巧:一般而言我们要使用二级列表的话,通常一级列表的箭头是居右的,但是ExpandableListView默认的箭头是居左的,这就需要我们自己修改。方法一:在一级列表布局中自定义箭头图标方法二:可以直接设置ExpandableListView的layoutDirection属性为rtlandroid:layoutDirectio...

2019-04-12 12:28:44 595

原创 ToolBar与状态栏重叠的问题

记录一个ToolBar与状态栏重叠的问题:解决方法:在ToolBar的父布局中设置android:fitsSystemWindows="true"

2019-04-11 09:49:24 870

原创 关于RecyclerView的点击事件的一个坑

今天在使用RecyclerView的时候为item设置点击事件死活都没有用,但是为item中的控件设置点击事件又是没问题的。为了解决这个问题然后在网上查了半天,各种方法都试过了还是没用,最后检查item的布局发现了问题:<LinearLayout android:layout_width="match_parent" android:layout_hei...

2019-04-02 22:10:37 2326

原创 自定义简单的ProgressBar

自学了Android这么长时间,一直没有怎么去接触自定义View,这段时间在一个简单的项目中需要用到一个的进度条来展示数据,于是想到了使用ProgressBar来实现,但是使用Android自带的ProgressBar样式比较难实现,于是决定自定义一个View来实现,同时也练习下自定义View的使用。写下来记录下,没怎么写过博文,格式比较乱,见谅!这个ProgressBar是参考网上的一篇博客...

2019-04-01 22:02:26 1808

原创 自定义Dialog设置background,有白色背景

在onCreate方法中://隐藏背景Window window = this.getWindow();window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//隐藏标题,否则可能顶部可能存在空白requestWindowFeature(FEATURE_NO_TITLE);...

2019-03-30 11:40:47 1276

原创 RecyclerView嵌套在ScrollView中的冲突问题

在今天的开发中发现RecyclerView嵌套在ScrollView中存在冲突问题,具体表现为RecyclerView显示不全,不光ScrollView可以滑动,RecyclerView也可以滑动,在网上查找得到解决问题的方法:方法1:将ScrollView改为NestedScrollView方法2:在RecyclerView外再嵌套一层RelativeLayout解决滑动卡顿问题:...

2019-03-29 17:31:18 219

空空如也

空空如也

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

TA关注的人

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