Android
文章平均质量分 94
Yang杰
这个作者很懒,什么都没留下…
展开
-
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开发学习笔记——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开发学习笔记——常用布局
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 评论 -
ExpandableListView一级列表的箭头居右
记录一个ExpandableListView使用的小技巧:一般而言我们要使用二级列表的话,通常一级列表的箭头是居右的,但是ExpandableListView默认的箭头是居左的,这就需要我们自己修改。方法一:在一级列表布局中自定义箭头图标方法二:可以直接设置ExpandableListView的layoutDirection属性为rtlandroid:layoutDirectio...原创 2019-04-12 12:28:44 · 627 阅读 · 0 评论 -
关于RecyclerView的点击事件的一个坑
今天在使用RecyclerView的时候为item设置点击事件死活都没有用,但是为item中的控件设置点击事件又是没问题的。为了解决这个问题然后在网上查了半天,各种方法都试过了还是没用,最后检查item的布局发现了问题:<LinearLayout android:layout_width="match_parent" android:layout_hei...原创 2019-04-02 22:10:37 · 2486 阅读 · 0 评论 -
自定义简单的ProgressBar
自学了Android这么长时间,一直没有怎么去接触自定义View,这段时间在一个简单的项目中需要用到一个的进度条来展示数据,于是想到了使用ProgressBar来实现,但是使用Android自带的ProgressBar样式比较难实现,于是决定自定义一个View来实现,同时也练习下自定义View的使用。写下来记录下,没怎么写过博文,格式比较乱,见谅!这个ProgressBar是参考网上的一篇博客...原创 2019-04-01 22:02:26 · 1849 阅读 · 0 评论 -
ToolBar与状态栏重叠的问题
记录一个ToolBar与状态栏重叠的问题:解决方法:在ToolBar的父布局中设置android:fitsSystemWindows="true"原创 2019-04-11 09:49:24 · 914 阅读 · 0 评论 -
自定义Dialog设置background,有白色背景
在onCreate方法中://隐藏背景Window window = this.getWindow();window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//隐藏标题,否则可能顶部可能存在空白requestWindowFeature(FEATURE_NO_TITLE);...原创 2019-03-30 11:40:47 · 1304 阅读 · 0 评论 -
padding和margin
padding和margin使用的一个坑:在父布局使用padding时,是不计算子组件(如CardView)的阴影部分的,会将子布局的阴影遮住使其无法完全显示,此时在子布局上使用margin可以修复这个bug。...原创 2019-05-06 10:34:43 · 264 阅读 · 0 评论 -
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 · 3484 阅读 · 0 评论 -
RecyclerView嵌套在ScrollView中的冲突问题
在今天的开发中发现RecyclerView嵌套在ScrollView中存在冲突问题,具体表现为RecyclerView显示不全,不光ScrollView可以滑动,RecyclerView也可以滑动,在网上查找得到解决问题的方法:方法1:将ScrollView改为NestedScrollView方法2:在RecyclerView外再嵌套一层RelativeLayout解决滑动卡顿问题:...原创 2019-03-29 17:31:18 · 238 阅读 · 0 评论