自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

原创 Kotlin 中的协程 flow

Flow 具有异步挂起响应式编程,可以使用挂起函数来异步生产和消费事件,Flow 的设计灵感也来源于响应式流以及其各种实现。

2023-09-14 15:49:08 608

原创 Jetpack 中 room 基本使用

Room 持久性库在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库,具体来说,Room具有一下优势:1、针对SQL 查询的编译时验证。2、可最大限度减少重复和容易出错的样板代码的方便注解。3、简化了数据库迁移路径。

2023-09-08 17:00:52 204

原创 Android 中的 线程池

1、corePoolSize 用于指定线程池的核心线程数大小;2、maximumPoolSize 用于指定最大线程池大小。3、keepAliveTime,unit 一起用于指定线程池中空闲线程的最大存活时间。4、workQueue 任务队列,相当于生产者 - 消费者模式中的传输管道,用于存放待处理的任务。5、threadFactory 用于指定创建线程的线程工厂。6、handler 用于指定当任务队列已满且线程数量达到 maximumPoolSize 时任务的处理策略。

2023-09-04 16:15:25 916

原创 Kotlin 中 Retrofit + coroutines + okhttp 使用

Retrofit 的当前版本已经支持 kotlin 协程的方式来调用。

2023-09-01 16:38:09 174

原创 Retrofit 在kotlin中使用及解析

Retrofit 是建立在 OkHttp 之上的一个网络请求封装库,内部依靠 okhttp 来完成实际网络请求。Retrofit 在使用上很简洁, API 通过 interface 来声明。我只需要通过 interface 来声明 API路径、等各个配置项。

2023-09-01 14:59:58 1195

原创 Kotlin 中 OkHttp 使用及解析

1、通过 Builder 模式得到 okHttpClient ,OkHttpClient 包含了对网络请求的全局配置信息,包括。4、调用 enqueue 方法发起异步请求返回 response ,Response 就包含了此次网络请求的所有返回信息。call 是一个接口,我们可以将其看做是网络请求的启动器,可用于同步请求异步请求,但重复发起多次请求的话会抛出异常。2、通过 Builder 模式得到 request ,Request 包含了本次网络请求的所有请求参数,包括。

2023-08-30 16:55:11 2332

原创 RxJava 操作符

在 RxJava 中,一个实现了 observer 接口的对象可以订阅 observable 类的实例。订阅者对 observable 发射的任何数据或者数据序列做出响应。这种模式简化了并发操作,因为它不需要阻塞等待 observable 发射数据,而是创建了一个处于待命状态的观察者哨兵,哨兵在未来某个时刻响应 observable 的通知。RxJava 提供了一套异步编程的 API ,并且支持链式调用,所以使用 RxJava 编写的代码的逻辑会非常简洁。

2023-08-25 19:51:44 539

原创 Kotlin 协程与生命周期感知组件一起使用

即使 lifecyleScope 提供了适当的方法以在 Lifecyle 处于 DESTROYED 状态时自动取消长时间运行的操作,但是某些情况下,您可能需要在 Lifecyle 处于某个特定状态时开始执行代码块,并在其处于其他状态时取消。通过此方法,应用仅在界面显示在屏幕上时才处理数据流发出操作,从而节省资源并可能避免发生应用奔溃问题。一下实例中的代码块会在关联的 lifecycle 至少处于 STARTED 状态时运行,并且会在 lifecycle 处于 STOPED 状态时取消运行。

2023-08-23 14:25:54 1058

原创 Kotlin 中的 协程 基础篇

协程可以称为轻量级线程,线程代码块;

2023-08-23 09:47:13 512

原创 Kotlin () -> Unit 理解

【代码】Kotlin () -> Unit 理解。

2023-08-18 20:20:56 487

原创 Kotlin 中的 设计模式

饿汉模式在类初始化的时候就创建了对象,所以不存在线程安全问题。局限性:1、如果构造方法中有耗时操作的话,会导致这个类的加载比较慢;2、饿汉模式一开始就创建实例,但是并没有调用,会造成资源浪费;java模式下Kotlin。

2023-08-18 20:02:10 858 1

原创 Kotlin 基础学习

Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明Kotlin 中使用关键字 class 声明类,声明紧跟类名://大括号内是类的体构成。

2023-08-18 14:11:51 460

原创 Jetpack 中的 databinding - 使用篇

数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。使用数据绑定可以简化 findViewById。

2023-08-17 14:00:44 93

原创 Jetpack 中的 LiveData 粘性事件

LiveData使用篇后再进一步了解LiveData。观察者和被观察者,正常情况下观察者先注册,被观察者再发送观察事件;所以粘性事件可以理解为观察者模式的升级,可以让观察者与被观察者之间更加的粘合,即是可先发送观察者事件,再注册观察者。

2023-08-16 18:54:21 100

原创 Jetpack 中的 LiveData - 使用篇

LiveData 是一种可观察的数据存储类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 activity 、fragment 或 service )的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。如果观察者(由 Observer 类表示)的生命周期处于 STARTED 或者 RESUMED 状态,则 LiveData 会认为该观察者处于活跃状态。LiveData 只会将更新通知给活跃的观察者。

2023-08-16 11:39:25 101

原创 Jetpack 中的 Lifecycle - 使用篇

Lifecycle 生命周期感知组件,可执行操作来响应另一个组件(如 activity 和 fragment)的生命周期状态的变化。这些组件有助于您编写出更有条理且往往更精简的代码,此类代码更易维护。

2023-08-15 16:37:15 98

原创 Jetpack 中的 ViewModel - 使用篇

ViewModel 是 Jetpack 中的一个组件,它旨在存储和管理与UI相关的数据,ViewModel 的设计思想是将 UI 层与业务逻辑分离,使得数据在配置更改(例如屏幕旋转) 时仍然保持可用。ViewModel 独立于 UI 层的生命周期,并在配置更改时保留其状态,因此可以轻松地处理生命周期感知的数据。

2023-08-15 10:51:59 217

原创 Android活动Activity的生命周期

Activity生命周期1、Activity启动running:系统先调用onCreate - onStart - onResume,Activity进入运行状态;2、Activity暂停:activity被覆盖,系统会调用onPause - onStop 暂停当前activity;3、用户返回Activity:系统先调用 onRestart - onStart - onResume,再进入运行状态;4、用户退出当前Activity:系统先调用 onPause - onStop - on

2020-08-04 17:59:36 144

原创 Lifecycle 简单使用

Lifecycle:使用生命周期感知型组件处理生命周期生命周期感知型组件可执行操作来响应另外一个组件(如Activity和Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护;一种常见的模式是在Activity和Fragment的生命周期方法中实现依赖组件的操作。但是,这种模式会导致代码条理性很差而且会扩散错误。通过使用生命周期感知型组件,您可以将依赖组件的代码从生命周期方法移入组件本身中。Androidx.lifecycle软件包提供了可

2020-05-18 10:03:02 890

原创 Android代码框架MVVM简单理解

1、MVVMMVVM(Model-View-ViewModel)是一种代码架构模式,被广泛应用在Android程序设计领域,类似的架构模式还有MVP、MVC等。但是目前Google最为推荐的代码架构模式就是MVVM,甚至Jetpach中的许多组件就是为了便于实现MVVM架构的项目而提供的。也就是说,借助jetpack,我们就可以轻松地编写一个MVVM架构项目了,当然前提是你对jetpack已经比较了解。2、MVVM层级结构M:表示的是仓库层,仓库层要做的工作是自主判断接口请求的数据应该是从数据库

2020-05-16 10:57:54 961

原创 Handler工作原理和处理线程间通讯

消息处理的五大组成部分:Message Handler Message Queue Looper ThreadLocal1、Message数据模型,用于线程之间传递消息, 常用四个字段:target:消息回调的作用域类,通常是一个handler;what:区分不同消息得标识符;obj:是一个对象类型,可以携带自定义的类;arg:int类型携带参数;2、hand...

2020-04-10 11:34:07 343

原创 内存泄漏OOM

一、全局进程的static变量是贯穿这个应用的生命周期1、静态的Activity变量,生命周期结束后没有清空,所以泄漏的Activity一直存在应用进程中,不会被垃圾回收器回收;2、static view引用3、Activity持有内部类,并且对静态变量引用,内部类持有对外部类的强应用;-内存泄漏;4、匿名类维护外部类引用;5、Handler6、只要是匿名类...

2020-04-08 11:32:15 129

原创 常备知识之图片下载、图片压缩

1、图片压缩知识点:inDensity 原始密度:为0则设置为默认 160dpi; 文件夹代表密度inTargetDensity 显示目标图片密度inScreenDensity 屏幕密度原因:直接显示Bitmap占用内存会过大导致内存溢出OOM问题:粗略方式:计算公式:图片长 * 宽 * 4bytes/ARG_8888 - 不正确Native 方法中,mBitmap...

2020-03-26 18:21:04 310

原创 RecyclerView的简单使用(一)

1.添加所需依赖库compile 'com.android.support:recyclerview-v7:25.3.0'2.代码xml布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="

2017-09-05 15:38:09 296

原创 Material Design布局

1.使用材料主题如果要在您的应用中使用材料主题,请指定一个 android:Theme.Material 继承的风格:<!-- res/values/styles.xml --><resources> <!-- your theme inherits from the material theme --> <style name="AppTheme" parent="android:The

2017-04-01 17:52:15 591

原创 Android ConstraintLayout约束布局

简介: constraintLayout和RelativeLayout类似,但比RelativeLayout要强大多,它可以有效地解决布局嵌套过多问题,我们平时编写的界面,复杂的布局总会伴随着多层的嵌套,而嵌套越多,程序的性能也就越差;ConstraintLayout则是使用约束的方式来指定各个控件的位置和关系; 常用属性:layout_constraintTop_toTopOf /

2017-04-01 13:55:53 3605

原创 Android系统版本

Android 7.0 Nougat Android 7.0 Nougat 为用户和开发者引入多种新功能。本文重点介绍面向开发者的新功能。 请务必查阅 Android 7.0 行为变更以了解平台变更可能影响您的应用的领域。 要详细了解 Android 7.0 的消费者功能,请访问 www.android.com。功能多窗口支持;通知增强功能;配置文件指导的 JIT/AOT 编

2017-03-31 16:57:03 464

原创 Android中的主题

1、Android ThemeHoho Theme 在4.0之前Android可以说是没有设计可言的,在4.0之后推出了Android Design,从此Androd在设计上有了很大的改善,而在程序实现上相应的就是Holo风格,所以你看到有类似 Theme.Holo.Light、 Theme.Holo.Light.DarkActionBar 就死4.0的风格,但是为了让4.0之前的版本也能有这种

2017-03-31 10:55:40 293

原创 Android studio2.3打包应用APK安装报错问题

引用:https://developer.android.com/about/versions/nougat/android-7.0.html默认受信任的证书颁发机构默认情况下,面向 Android 7.0 的应用仅信任系统提供的证书,且不再信任用户添加的证书颁发机构 (CA)。如果面向 Android N 的应用希望信任用户添加的 CA,则应使用网络安全性配置以指定信任用户 CA 的方式。APK

2017-03-27 16:44:20 3723

原创 JAVA中的泛型

为什么需要泛型java属于强类型编程语言,变量在使用之前,需要先进行定义,而地定义个变量是必须要指定其数据类型; 例如:声明一个类型为Object类型,然后向下转型就会报错;public static void main(String[] args) throws Exception { Circle circle = new Circle(); circle.s

2017-03-20 11:19:51 227

原创 Android的设计模式MVP

MVP和MVCMVC模式框架 Model:业务逻辑和实体模型 View:对应布局文件 Controllor:对应于ActivityMVP模式框架 Model:依然是业务逻辑和实体模型 View:对应于Activity,负责View的绘制以及与用户交互 Presenter:负责完成View于Mode间的交互

2017-03-16 11:35:11 259

原创 Java基础知识

Java面向对象的特点:封装,继承,多态封装特点: 1.变量的属性私有化,提高变量的安全性; 2.使方法或函数模块化,便于外部调用,使调用者不用知道实现方法,只用知道请求结果;继承

2017-03-15 16:27:01 202

原创 android常用网站平台

Android 系统开发文档 DevelopersCodeKK网站有开源项目,优秀项目的源码解析等 源码解释,开源项目平台(CodeKK)深度开源OPEN经验深度开源OPEN经验AndroidDevToolsAndroidDevTools泡在网上的日子下拉刷新上拉加载更多框架Ultra-Pull-To-Refresh-With-Load-More...

2017-03-13 15:54:54 326

原创 Android设计图工具类使用

设计图距离测量工具类像素大厨(PxCook )

2017-03-13 15:37:35 429

原创 Android代码混淆

android 代码混淆好处混淆后,反编译出来的代码阅读性降低,提高安全性降低打包APK的体积配置混淆规则文件proguard-rules.pro文件代码如下:注意Gson的配置,如果用到谷歌Gson工具解析json,需要不能混淆该类所对应的文件包,建议把javaBean类放在同一个包内;生成mapping文件为了混淆后,用户可以查看具体的错误信息的位置,友盟统计的错误列表有用到;# A

2017-03-13 15:14:50 426

原创 Android Studio安装及配置、及使用常见问题

Android Studio安装及配置1. Android studio安装,注意(安装前需要先安装JDK及环境变量配置,和下载对应的sdk版本)点击Android studio下载路径2. 配置SDK和JDK路径,首先必须先下载sdk和安装jdk;Android Studio恢复SVN的上一个版本号“回滚”1. 从snv上拉取对应的版本到本地2. 点击项目对应的subversion下的子目录rev

2017-03-13 14:49:15 839

原创 android控件值CollapsingToolbarLayout使用

效果 CollapsingToolbarLayout简单使用CollapsingToolbarLayout控件实现图片收缩动画效果,CoordinatorLayout在最外层包裹AppBarLayout,包裹CollapsingToolbarLayout既是继承FrameLayout,包裹ImageView,Toolbar等; 最终xml布局;<?xml version="1.0" encodi

2016-09-23 11:36:14 368

原创 android加载WebView进度条指示

效果activity_web.xml文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" andro

2016-09-18 15:59:21 874 1

原创 Android Studio虚拟机(Genymotion)的安装及测试

先看一看效果图Genymotion虚拟机的安装第一步:注册Genymotion账号 注册地址:http://www.genymotion.net/第二步:下载安装Genymotion(genymotion-2.8.0.exe),我用的是这个第三步:下载安装VirtualBox(VirtualBox-5.1.6-110634-Win.exe)第四步:下载安装Microsoft Visual C++

2016-09-18 11:23:06 4855

原创 Android控件CoordinatorLayout和TabLayout

最终效果说明本文主要讲解CoordinatorLayout、AppBarLayout、Toolbar、TabLayout之间协调动画;前面有简单的讲过AppBarLayout设置安卓Activity的导航可以点击查看; CoordinatorLayout作为顶层布局,协调子布局; CoordinatorLayout与AppBarLayout,AppBarLayout嵌套TabLayout实现To

2016-09-13 14:21:04 1265

gif录制工具

制作gif图片,录制视频保存为gif格式,不用安装直接运行,操作简单;

2016-09-18

wifi远程智能小车

智能小车,这文件夹里有电路图仿真图,很好的,所以希望大家都要下载哦,很不错的哦!

2013-04-28

空空如也

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

TA关注的人

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