Android开发学习笔记
文章平均质量分 94
Yang杰
这个作者很懒,什么都没留下…
展开
-
Android开发学习笔记之设计模式——组合模式&享元模式&外观模式
文章目录Android开发学习笔记之设计模式——组合模式&享元模式&外观模式组合模式概述应用场景优缺点实现享元模式概述应用场景优缺点实现外观模式概述应用场景优缺点实现Android开发学习笔记之设计模式——组合模式&享元模式&外观模式组合模式概述组合模式是一种结构型模式,相对而言比较简单,通常用于设计一些呈树状结构的对象模型,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性。组合模式一般用来描述整体与原创 2021-02-28 18:20:08 · 594 阅读 · 0 评论 -
Android开发学习笔记之RecycleView缓存机制
文章目录Android开发学习笔记之RecycleView缓存机制概述为什么需要缓存机制呢?RecycleView的缓存机制基本原理数据集发生变化item滑出屏幕针对RecycleView的缓存机制的优化策略Android开发学习笔记之RecycleView缓存机制概述RecycleView作为Android开发中最为常见的一个View,其布局灵活,功能强大,在日常的开发中,已经基本取代了List View和GridView成为了我们在使用列表的不二之选。但是,尽管使用频率相当高,在开发中使用Recy原创 2021-01-31 20:54:13 · 805 阅读 · 0 评论 -
Android开发学习笔记之设计模式——装饰模式&桥接模式
文章目录Android开发学习笔记之设计模式——装饰模式&桥接模式装饰模式概述应用场景优缺点实现桥接模式概述应用场景优缺点实现Android开发学习笔记之设计模式——装饰模式&桥接模式装饰模式概述在开发过程中,我们可能会对某个类进行功能扩展,通常情况下,扩展方式存在以下两种:继承:使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机;组合:即将一个类的对象嵌入另一原创 2021-01-24 20:41:09 · 448 阅读 · 0 评论 -
Android开发学习笔记之设计模式——适配器模式&代理模式
文章目录Android开发学习笔记之设计模式——适配器模式&代理模式适配器模式概述应用场景优缺点实现代理模式概述应用场景优缺点实现Android开发学习笔记之设计模式——适配器模式&代理模式结构型模式即通过将类或对象按某种布局组成更大、更复杂的结构的设计模式。通常可以分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。适配器模式概述适配器模式即将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,又可称为包装器原创 2021-01-17 20:31:50 · 385 阅读 · 0 评论 -
Android开发学习笔记之设计模式——原型模式&建造者模式
文章目录Android开发学习笔记之设计模式——原型模式&建造者模式原型模式概述应用场景优缺点实现建造者模式概述应用场景优缺点实现Android开发学习笔记之设计模式——原型模式&建造者模式原型模式概述在开发过程中,我们经常会遇到这样的问题,如果我们想要创建一个非常复杂的对象,那我们可能需要进行相当多的处理,尤其是数据类,通常都存在很多成员变量,而其中很多变量还是需要通过I/O操作获取的,此时创建一个新的对象的成本就显得很高了。此时,我们或许会想,如果存在一种方法可以复制原有的对象就原创 2021-01-10 20:44:55 · 395 阅读 · 0 评论 -
Android开发学习笔记之设计模式——工厂方法模式&抽象工厂模式
文章目录Android开发学习笔记之设计模式——工厂方法模式&抽象工厂模式简单工厂模式概述应用场景优缺点实现工厂方法模式概述应用场景优缺点实现抽象工厂模式概述应用场景优缺点实现总结Android开发学习笔记之设计模式——工厂方法模式&抽象工厂模式创建型模式的主要特点是“将对象的创建和使用分离”对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。为了使软件的结构更加清晰,外界对于这些对原创 2021-01-03 20:01:00 · 292 阅读 · 0 评论 -
Android开发学习笔记之设计模式——单例模式
文章目录Android开发学习笔记之设计模式——单例模式设计模式概述原则总原则:开闭原则六大原则分类单例模式概述优缺点应用场景实现懒汉模式饿汉模式双检锁模式(DCL模式)静态内部类实现单例枚举实现单例总结Android开发学习笔记之设计模式——单例模式设计模式在我们进行开发的过程中,为了提高代码可读性以及可维护性等,我们可能就会有意或无意中接触到设计模式,比如最常见的单例模式、建造者模式和工厂模式等。概述设计模式是软件设计中常见问题的典型解决方案。 它们就像能根据需求进行调整的预制蓝图, 可用于解原创 2020-12-27 22:07:18 · 282 阅读 · 0 评论 -
Android开发学习笔记——ViewBinding
文章目录Android开发学习笔记基本使用开启ViewBinding视图绑定Activity中使用ViewBindingFragment中使用ViewBinding自定义View中使用ViewBinding自定义Dialog中使用ViewBindingAdapter中使用ViewBinding总结使用Binding类来操作Viewinclude和merge比较总结Android开发学习笔记在Android开发过程中,当我们需要使用到布局中的组件,为其进行赋值或者设置监听等操作时,我们往往需要先获取到其对原创 2020-12-20 19:48:40 · 2058 阅读 · 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 · 812 阅读 · 0 评论 -
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 · 3739 阅读 · 0 评论 -
Android开发学习笔记——Jetpack之WorkManager
Android开发学习笔记——Jetpack之WorkManagerWorkManager概述基本使用Worker的调度调度一次性任务和定期任务调度一次性任务调度周期性任务环境约束延时任务WorkRequest的标记和获取任务链后台任务的管理和监听监听后台任务的执行后台任务状态任务状态后台任务执行进度后台停止和取消任务数据的输入和输出WorkManager概述WorkManager是Jetpack中提供用于处理后台任务的一个库,使我们可以轻松调度那些即使在退出应用或重启设备时仍应运行的可延期异步任务。原创 2020-11-29 21:27:59 · 683 阅读 · 0 评论 -
Android开发学习笔记——Jetpack之Lifecycle
Android开发学习笔记——Jetpack之Lifecycle概述基本使用监听Activity或是Fragment的生命周期自定义LifecycleOwner基本实现原理LifecycleOwnerLifecycle概述Lifecycle与LiveData以及ViewModel相同,都是谷歌推出的Jetpack中的重要一员,Lifecycle是一个生命周期感知组件,用于感知生命周期的变化帮助我们在特定时期处理相关操作。在开发中,为了处理生命周期,一种常见的模式是在 Activity 和 Fragme原创 2020-11-22 20:13:14 · 299 阅读 · 0 评论 -
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 · 523 阅读 · 0 评论 -
Android开发学习笔记——Android的Handler消息机制
Android开发学习笔记——Android的消息机制Handler的基本使用AndroidUI线程安全问题Handler的基本使用Handler、MessageQueue和LooperHanlderThread和IntentService在Android开发中,我们知道,Android存在线程安全的问题,在子线程中是无法进行UI更新的,否则就会出现异常。然后,在实际的开发过程中,由于网络请求、IO操作等耗时操作无法在主线程进行,否则很容易阻塞主线程,从而造成ANR错误,所以异步的多线程操作是无法避免的,原创 2020-11-08 20:58:14 · 480 阅读 · 0 评论 -
Android开发学习笔记——自定义View(三)View事件分发机制
Android开发学习笔记——自定义View(三)View事件体系原创 2020-11-01 20:48:15 · 347 阅读 · 0 评论 -
Android开发学习笔记——自定义View(二)自定义View绘图
Android开发学习笔记——自定义View(二)自定义View原创 2020-10-25 22:29:25 · 609 阅读 · 0 评论 -
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 · 803 阅读 · 0 评论 -
Android开发学习笔记——Android的持久化数据存储
Android的持久化数据存储文件存储openFileOutput和openFileInputSharedPreference存储基本使用保存数据数据获取SQLite数据库存储基本使用创建数据库并获取SQLiteDatabase使用SQL语句操作数据库增删改查SQLiteOpenHelper在我们的开发过程中,我们可以发现,应用程序的使用实际上就是对数据的交互,我们的应用所实现的实际上就是对不同数据的展示和操作。在实际开发中,我们往往会通过网络请求来获取数据,但是有时候我们也需要将数据保存起来以备下一次的原创 2020-09-20 20:29:34 · 484 阅读 · 0 评论 -
Android开发学习笔记——View动画和属性动画
View动画和属性动画View动画帧动画基本实现xml实现AnimationDrawable实现注意事项补间动画基本种类和属性平移动画TranslateAnimation缩放动画ScaleAnimation旋转动画RotateAnimation透明度动画AlphaAnimation动画集合常用属性注意事项动画监听LayoutAnimation和Activity切换动画属性动画基本使用ValueAnimatorObjectAnimatorAnimatorSet监听器属性动画的XML插值器和估值器属性动画和Vi原创 2020-09-13 20:51:00 · 1125 阅读 · 1 评论 -
Android开发学习笔记——网络编程
Android开发学习笔记——网络编程HTTP协议简介HTTP协议工作流程请求报文和响应报文HttpURLConnnection和HttpClientjson解析HTTP协议随着互联网时代的来临,基本上我们在实际开发中都需要连网,发送网络请求来获取数据或者其它操作了,很少存在单纯的本地应用,因此,掌握Android网络编程的相关知识就相当重要了。目前,Android为我们提供了以HttpURLConnection等众多网络编程的API,而且各种网络请求相关的开源库的存在,让我们在开发中的网络访问等操作变原创 2020-09-06 20:22:02 · 878 阅读 · 0 评论 -
Android开发学习笔记——Fragment
Android开发学习笔记——Fragment简介基本使用静态添加动态添加生命周期Fragment中的通信简介Fragment直译过来即碎片, 是一种可以嵌入在 Android 当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用得非常广泛。Fragment 和 Activity 非常像,同样可以包含布局,同样都有自己的生命周期。你甚至可以将 Fragment 理解成一个迷你型的 Activity,虽然这个迷你型的 Activity 有可能和普通的 Activity 是一样大原创 2020-08-30 20:57:58 · 630 阅读 · 0 评论 -
Android开发学习笔记——四大组件之ContentProvider
Android开发学习笔记——四大组件之ContentProviderContentProvider简介跨进程通信概述基本使用相关知识ContentResolverURIContentProvider介绍使用ContentProvider访问其它应用创建ContentProvider提供外部访问接口总结ContentProvider简介ContentProvider作为Android开发四大组件之一,其主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中原创 2020-08-23 18:06:46 · 411 阅读 · 0 评论 -
Android开发学习笔记——四大组件之BroadcastReceiver
Android开发学习笔记——四大组件之BroadcastReceiver广播机制广播广播类型标准广播有序广播BroadcastReceiver(广播接收器)BroadcastReceiver的实现BroadcastReceiver的注册动态注册静态注册动态注册和静态注册的区别接受系统广播发送自定义广播发送标准广播发送有序广播本地广播比较权限限制总结BroadCastReceiver是Android四大组件之一,与Activity和service不同,其主要功能是实现Android内部组件之间的通信,在不原创 2020-08-16 20:25:41 · 275 阅读 · 0 评论 -
Android开发学习笔记——四大组件之Service
Android开发学习笔记——四大组件之Serviceserviceservice和线程基本使用创建startService和bindService生命周期startServicebindService与Activity的通信intentBinder其它方法ForegroundServiceservice在我们开发过程中,我们可能会遇到应用需要执行后台任务的需求,这些任务往往属于耗时操作,而且不需要与用户进行交互操作,这时,如果我们使用Activity来实现就不太合适了。而Service(服务)就是An原创 2020-08-09 21:15:30 · 661 阅读 · 0 评论 -
Android开发学习笔记——四大组件之Activity
Android开发学习笔记——四大组件Activity基本使用方法生命周期onSaveInstanceState和onRestoreInstanceState启动模式通信方式startActivity和startActivityForResult众所周知,Android开发中存在着四大组件,包括:Activity、Service、BroadcastReceiver和ContentProvider。其中Activity作为四大组件中为用户提供可视化界面的组件,是我们在开发中四大组件使用最为频繁的应用组件,一原创 2020-08-09 10:14:53 · 653 阅读 · 0 评论 -
Android开发学习笔记——对话框Dialog
Android开发学习笔记——对话框Dialog基本使用常用属性和方法AlertDialog基本方法和使用列表对话框单选列表对话框多选列表对话框其它Dialog自定义对话框setView继承DialogDialogFragmentonCreateDialogonCreateView显示DialogFragment与Dialog的比较总结弹出对话框在我们进行开发的过程中是一个很常见的需求,比如在退出APP之前、或者执行某种操作之前都会弹出对话框与用户进行交互,请求确认。基本使用常用属性和方法Alert原创 2020-07-26 21:27:57 · 549 阅读 · 0 评论 -
Android开发学习笔记——ListView、GridView和RecycleView
Android中的列表组件ListViewListView基本用法简单用法自定义item和AdapterListView的分隔线添加不同的列表项ListView的优化ListView与可滚动组件的嵌套冲突GridViewRecycleView在Android开发的过程中,由于手机屏幕大小是有限的,其能够显示的内容也是有限的,因此我们往往需要使用可滚动的控件来批量展示数据集合,在Android开发中,我们就常用List View、GridView和RecycleView来展示。ListViewListV原创 2020-07-19 22:17:34 · 1298 阅读 · 0 评论 -
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 · 875 阅读 · 0 评论