自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

下午吃早餐同学

输入输出

  • 博客(26)
  • 收藏
  • 关注

原创 Android Jetpack 之 DataBinding

Android Jetpack 之 DataBinding

2022-06-22 09:29:07 287 1

原创 Android Jetpack 之 ViewModel

Android Jetpack 之 ViewModel

2022-06-21 22:46:06 858

原创 Android Jetpack 之 LiveData

Android Jetpack 之 LiveData

2022-06-21 17:48:04 580

原创 Android Jetpack 之 Lifecycle

Android Jetpack之Lifecycle

2022-06-16 10:56:41 746

原创 MVC、MVP和MVVM

MVC、MVP和MVVM

2022-06-15 22:37:08 93

原创 SQLite数据库

SQLite是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,在存储大量复杂的关系型数据的时可以使用它是SQLiteDatabase的帮助类, 用于管理数据库的创建和升级。(onCreate()和 onUpgrade())先实例化一个自定义SQLiteOpenHelper子类,并提供四个参数,含义是(上下文,数据库名,创建Cursor的工厂类,版本号)。这两个方法创建或打开一个现有的数据库并返回一个SQLiteDatabase对象。getWritableDatabase()方法以读写方式打开数据

2022-06-10 09:58:04 1007

原创 MMVK组件

MMKV组件

2022-06-09 14:14:54 435

原创 Fragment的生命周期请结合Activity的生命周期

Fragment生命周期

2022-06-08 09:50:02 160

原创 Activity的启动过程伪代码

Activity启动伪代码

2022-06-08 09:23:02 75

原创 Android 文件IO

Android 文件IO前言最近在实现保存录音到本地功能用到文件IO,趁机复习一波。时光很短,想做的事情很多,趁现在。import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExc

2021-03-18 14:44:35 101

原创 Android 存储路径

Android 存储路径前言这周实现了从蓝牙录音笔读取录音文件保存到手机功能,涉及到Android存储目录的选择,借此研究了一下存储目录结构。Android存储目录思维导图如下:内部存储内部存储的文件只能被对应的应用访问,删除应用对应目录下的文件会被删除。对于这个内部目录,用户是无法访问的,除非获取root权限。内部存储路径获取// data/data/packagename/files String fileDir = context.getFilesDir().getAbsolut

2021-03-17 17:36:19 1220

原创 Android 围绕中心旋转动画

Android 围绕中心旋转动画一 简介开发中遇到扫描蓝牙动画需求,如下图所示:因此以下简单记录一下,方便以后使用。Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似。二 应用1.xml中写好需要旋转的view。我用了一个ConstraintLayout布局将要旋转的部分包括起来。2.定义rotate旋转效果在res/anim文件夹下新建rota

2021-03-17 15:28:30 962

原创 Android设置颜色背景透明度

Android设置颜色背景透明度方法一:代码设置LinearLayout llBackground=findViewById(R.id.ll_background);llBackground.getBackground().setAlpha(25);//透明度设为10%这个参数范围为0-255,透明度 = 255*比例控件必须先设置背景颜色或者drawable,否则会报错。这种方法合适设置整个控件的透明度方式二:直接在xml中设置Android颜色十六进制,RGB模式为6位,加上2位透明度

2021-03-17 09:21:06 4031

原创 Android Jetpack 之 LiveData

Android Jetpack 之 LiveData1 简介官方定义:LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity/Fragment)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。拆解开来:LiveData是一个数据持有者,给源数据包装一层。源数据使用LiveData包装后,可以被observer观察,数据有更新时observer可感知。

2021-01-20 18:25:39 98

原创 Android Jetpack 之 ViewModel

Android Jetpack 之 ViewModel1 简介ViewModel(视图模型)第一个功能可以使 ViewModel 以及 ViewModel 中的数据在屏幕旋转或配置更改引起的 Activity 重建时存活下来, 重建后数据可继续使用。第二个功能可以帮助开发者轻松实现 Fragment 与 Fragment 之间, Activity 与 Fragment 之间的通讯以及共享数据。ViewModel最重要的特点是 生命周期长于Activity。看到在因屏幕旋转而重新创建Acti

2021-01-20 14:54:47 71

原创 Android Jetpack 之 Lifecycle

Android Jetpack 之 Lifecycle1 简介Lifecycle提供了可用于构建生命周期感知型组件的类和接口,用于帮助开发者管理Activity和Fragment 的生命周期2 接入build.gradle中添加依赖:implementation 'androidx.lifecycle:lifecycle-common-java8:2.1.0'3 使用方法Lifecycle的使用很简单:观察者实现LifecycleObserver接口,方法上使用OnLifecycleEv

2021-01-20 10:04:19 103

原创 RxJava2 异步操作库

RxJava2 异步操作库1 简介Rxjava是一个异步的、基于事件的操作库,它使用链式结构减少嵌套代码,使得异步操作简洁清晰。(AsyncTask 和Handler也是异步操作库)Rxjava使用观察者模式,Observable (即被观察者)、 Observer (观察者)、 subscribe (订阅)、事件。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,Observable可以在需要的时候发射事件来通知 Observer。2 接入在buil

2021-01-19 11:43:28 489 1

原创 Retrofit2 网络请求框架

Retrofit 网络请求框架1 简介Retorifit 是一个基于OkHttp的轻量级网络请求框架。网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责网络请求接口的封装。它功能强大:支持同步和异步请求,支持多种数据解析,支持RxJava.它简洁易用:通过注解配置网络参数它可拓展性好:功能模块高度封装、彻底解耦github地址:https://github.com/square/retrofitapp应用程序通过 Retrofit 请求网络,实际上是使用 Retro

2021-01-18 15:59:16 254

原创 OkHttp3 网络请求框架(二)

OkHttp 网络请求框架(二)1 RequestBody简介RequestBody是一个抽象类,分别有FormBody和MultipartBody两个子类。FormBody用于传输表单类型的参数,MultipartBody则是可以支持多种以及多个RequestBody对象参数,例如:在传输表单类型的参数的同时,还是可以传输文件。创建一个MultipartBody对象再调用post()方法就OK了。MultipartBody body = new MultipartBody.Builder()//

2021-01-15 16:35:40 260

原创 OkHttp3框架的使用(一)

OkHttp3框架的使用(一)1 简介OkHttp是一个用于Android网络请求的第三方开源的轻量级框架。它支持同步和异步请求还封装了线程池,自动处理GZip压缩节省响应数据大小;支持缓存响应请求数据避免重复请求等。OkHttp的4.0.x版本已经全部由java替换到了Kotlin,目前我们采用3.X版本。可到OkHttp官网查看最新版本:https://square.github.io/okhttp2 接入OkHttp在3.13.x以上的版本需要在Android 5.0+ (API level

2021-01-15 15:43:54 298

原创 Kotlin(六) 高阶函数的应用

Kotlin(六) 高阶函数的应用高阶函数非常适用于简化各种API的调用,一些API原有用法在使用高阶函数进行简化后其可读性和易用性方面会有很大的提高。1、简化SharedPreferences的使用在简化前先来回顾下SharedPreferences的使用:1、通过Context.getSharedPreferences()或Activity.getPreferences()获取SharedPreferences对象。2、通过SharedPreferences.edit()获取SharedPr

2020-11-22 10:59:37 221

原创 Kotlin(五) 高阶函数

Kotlin(五) 高阶函数1、高阶函数1.1、高阶函数的定义高阶函数的定义:如果一个函数接收另一个函数作为参数,或者返回值的类型是另一个函数,那么该函数称为高阶函数。你可能会有疑问,一个函数怎么能接收另一个函数作为参数呢?因为Kotlin中新增了函数类型,如果我们将这种函数类型添加到一个函数的参数声明后者返回值声明当中,那么该函数就成为高阶函数。1.2、函数类型的定义函数类型的定义的基本规则如下:methodName:(Int,String)->Unit1、methodName是函

2020-11-22 10:51:37 231

原创 Kotlin(四) 扩展函数和运算符重

Kotlin(四) 扩展函数和运算符重1、扩展函数扩展函数就是在不修改源码的情况下,向某个类中新增加函数。下面举个例子:我们想统计一个字符串中字母的数量,我们一般的写法如下: fun getLettersCount(str:String):Int{ var count=0 for(chr in str){ if(chr.isLetter()) count++ } return cou

2020-11-21 09:40:30 122

原创 Kotlin(三) 延迟初始化和密封类

Kotlin 延迟初始化和密封类1、延迟初始化声明全局变量实例,为满足Kotlin的空指针检查语法标准,我们需要做很多非空保护判断。解决办法也很简单:就是对成员变量进行延迟初始化,这样就不需要在一开始就初始化为null了。另外我们可以在初始化前进行判断,在未初始化时再进行初始化,避免不必要的初始化。 if (!::messageAdapter.isInitialized) messageAdapter = MessageListAdapter(this, data)具体语

2020-11-21 07:44:52 92

原创 Kotlin(二) 标准函数和静态方法

1、标准函数标准函数是指Standard.kt文件中定义的函数1.1、let函数let函数提供了函数式API编程接口,并将原始对象作为参数传递到Lambda表达式中,标准的写法如下:obj.let { obj1->需要执行的逻辑 } obj1就是obj对象这里写成obj1只是为了防止命名重复的问题,使用的场景如下:fun doStudy(study: Study?) { study?.readBook()

2020-11-20 23:30:44 235

原创 Kotlin(一) 快速入门

Kotlin 快速入门变量和函数var(variable)可变变量 val(value) 不可变变量 ,优先采用Kotlin抛弃基本数据类型(int)采用对象数据类型(Int)fun methodName(p1:Int,p2:Int):Int { return p1+p2}当函数中只有一行代码 简写 fun methodName(p1:Int,p2:Int) = p1+p2控制逻辑if有返回值,返回值就是最后一行代码的返回值fun methodName(a:Int,b:Int) = if

2020-11-20 16:15:41 209

空空如也

空空如也

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

TA关注的人

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