自定义博客皮肤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)
  • 收藏
  • 关注

原创 okhttp 的 拦截器

拦截器有很多作用。

2024-02-03 15:32:33 664

原创 Dart -- > 类 和 函数

开发语言嘛,面向过程和面向对象。dart是面向对象的。什么是面向对象???

2024-02-03 15:31:39 1008

原创 Dart 语言入门

在学习Flutter之前,还是得先把基础打好,先来学习一下Dart的基础知识。

2024-02-01 22:48:31 345

原创 Android Okhttp断点续传

指的是在上传/下载时,将任务(一个文件或压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传/下载,如果碰到网络故障,可以从已经上传/下载的部分开始继续上传/下载未完成的部分,而没有必要从头开始上传/下载。可以节省时间,提高速度。这下载有很多细节要搞,下载可以用多线程,下载可以断点续传。

2024-01-28 21:48:34 815

原创 Flutter 入门

Flutter 只是一个用来解决跨平台的UI框架,最终还是要使用原生平台进行绘制,对于大部分和系统API无关的页面都可以使用Flutter处理,但是有一些获取系统信息的页面比如某个页面获取Android是否打开了通知栏权限?阿里、腾讯、字节跳动、京东、美团等公司均建设了自己的 Flutter 工程化体系,并服务了各自的业务场景,在大量的产品线上使用了Flutter技术。各大中小公司对于新业务,尤其是在团队人力紧缺的情况下,在技术选型上使用 Flutter,能加快产品在多端落地、快速迭代、快速试错。

2024-01-20 14:41:19 563

原创 Kotlin的数据类

在平时的使用中,我们会用到一些类来保持一些数据或状态,我们习惯上成为bean或者entity,也有的定义为model。kotlin中有专门处理这一种类的关键字:data。这种由data修饰的类叫做数据类equals()hashCode()toString()格式是 "MyData(name=wudi, age=20)方法对应按声明顺序出现的所有属性copy()方法类由关键字data修饰(好像是废话)类的构造参数必须由varval修饰,否则编译不通过。

2024-01-20 13:44:11 1299 1

原创 Android lifecycle的使用

是属于Android(官方开发工具包)—— Architecture(架构组件)中的一员。【官方介绍】构建生命周期感知型组件,这些组件可以根据 Activity 或的当前生命周期状态调整行为。其实就是实现生命周期监听,做些逻辑。

2024-01-14 23:24:53 631

原创 Gradle 的implementation,api,compileOnly,compile 区别

compile依赖关系已被弃用,被implementation和api替代;provided被compile only替代;apk被runtime only替代;api:跟2.x版本的 compile完全相同。

2024-01-14 20:01:01 728

原创 registerForActivityResult用法详解

Activity Results API 是 Google官方推荐的Activity、Fragment获取数据的方式。

2024-01-14 11:58:12 600

原创 Android 权限管理

手机难免做一些数据持久化,这个呢,就有可能用到文件的读写权限。手机拍照,拿图片。录音拿音频文件。也要用到对应的权限。随着Android版本的升级,有些权限越来越收紧。所以我们要对一些高版本适配来了。

2024-01-13 21:42:55 475

原创 kotlin --- 特殊类Any

近期在做项目的时候,遇到一个json解析,有一个字段类型为any 并且默认值为""。我就自然认为这个就是String。结果坑了。最后在队友帮助下,查看原来是这个any的问题。我自己对它理解不到位。反思一下,我得补补。

2024-01-13 17:32:27 452

原创 Android Service 使用bindservice和startservice 区别

Android四大组件之一。Service并不与用户产生UI交互。其他的应用组件可以启动Service,即便用户切换了其他应用,启动的Service仍可在后台运行。一个组件可以与Service绑定并与之交互,甚至是跨进程通信(IPC)。基础使用startservice启动服务后,程序退出stopservice,服务依旧存在。而bindservice启动服务后程序退出unbindservice,服务就会销毁。而同时调用两种方法启动同一个方法,只会启动一个服务,但是其生命周期。

2024-01-07 16:18:42 475

原创 Android --- MQTT

实现MQTT协议需要客户端和服务器端通讯完成。在通讯过程中,MQTT协议中有三种身份:发布者(Publish)代理(Broker)(服务器)订阅者(Subscribe)消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内(payload);

2024-01-07 16:00:21 1019

原创 databinding的基础和高阶使用

我都不想读概念,就一句话,数据源跟UI组件绑定。为什么要数据源跟ui绑定呢,还不是想开发更简单么。我们需要先监听数据的变化, 然后再将变化后的数据同步更新到UI上,这样的步骤我们一直在重复,这样的重复性代码我们写了一次又一次。而DataBinding就是为了解决这个问题而存在的,我们只需要将数据绑定到UI元素上,更新数据时UI就会跟着改变,反之亦然,大大节省了我们的代码。这个我们后续的博客里面会分享,这里涉及到架构的思想就先不细讲。带一句,参照前端的思想。

2024-01-06 11:43:52 1278

原创 Kotlin学习 --- 属性,Getters 与 Setters

get()和set()默认方法是可以加上权限修饰符的,比如private,protected。试想:如果用户输入了非法字符,我们在做是否可以在数据类里面把非法字符给排除掉,这里就涉及到了面向对象的封装 私有成员变量并提供get()set()方法以保证。数据的安全性:那么我们这里就可以使用kotlin的自定义访问器get()set()来把不合法规则的脏数据排除。Kotlin声明实体类之后,里面的变量默认就带有set和get的属性功能了。对于get()默认方法只有在获取(使用)属性变量的时候才会调用该方法。

2024-01-01 23:29:18 583

原创 kotlin --- 类 、构造函数、对象

在工作中用到kotlin,发现类的创建,单例,构造函数,创建对象和java有很多不同。这些是kotlin学习的基础,下面开始介绍kotlin的类及其相关的的知识点。

2024-01-01 22:15:32 402

原创 Kotlin --- 函数,高阶函数

kotlin中函数是第一公民,一切皆函数。那么函数就会用的很多了,但是又看到高阶函数。这又是什么意思,还是要从基础看起。kotlin和java一样也有程序入口,那就是main函数。下面一切皆函数的重点来了,函数返回结果赋值。

2024-01-01 21:13:37 566

原创 kotlin --- 控制语句/选择语句 if when for while

在java中,有 if()else{} ,有switch(){} , for , while ,之类语句。但是没见when,这里是什么意思?

2024-01-01 20:34:24 347

原创 kotlin --- 变量和常量区别、空安全

3、Kotlin编译器可以通过等号右边值的类型直接推断出等号左边变量的类型,所以变量的类型是可以被省略。3、Kotlin编译器可以通过等号右边值的类型直接推断出等号左边变量的类型,所以变量的类型是可以被省略。是用来存储数据的,但不同的是常量的数据类型和数据都不可以被修改,可以叫做只读变量,或者值变量(value)2、当变量声明在局部方法内时,当变量被使用时需要先进行初始化赋值,否则编译器也会报错。变量的数据类型是不可以被修改的,但是变量所存储的数据是可以被修改的。var 变量名: 数据类型 = 值。

2024-01-01 19:58:32 369

原创 上架到Google Play国际化,语言切换失效问题解决

然后,从Google play下载发现多语言失效了,从英语切换为法语直接还是英语,一脸懵,难道我弄出bug了,各种尝试,打包发现都没问题,但是只要打成aab ,再编译成apk之后,安装就直接多语言切换失效了。最近遇到一个很坑的问题,本来app在本地多语言切换一点问题都没有,测试也ok,想着打包上架。在app级gradle中,Android-defaultConfig中添加如下代码。主要是language设置为false,表示不进行分包。设置多语言不分包处理可解决。

2023-12-25 23:46:40 266

原创 Android路由框架 - ARouter使用

在组件式开发时,有时在某个Module下想要使用其他Module的业务,很不方便,要不重新写一个,要么提到公共Module,ARouter直接可以解决这类问题。下想要使用其他Module的业务,很不方便,要不重新写一个,要么提到公共Module,ARouter直接可以解决这类问题。这样就可以直接从MineModule调用loginModule的Service了(不用写登录这块逻辑了,很好的解耦)。现在Android项目一般都用的是组件化,组件化完全可以自己通过反射和注解写一套。在组件式开发时,有时在某个。

2023-12-24 21:11:33 158

原创 Android应用构建-BuildTypes ProductFlavor

引言同一套核心代码来维护多个订制的app现开发出一套Android app。在此app基础上,复制出另一个app, 两个app之间略微有一些不同之处。将不同环境的APP安装在同一设备中。构建类型构建类型 = productFlavors + buildTypes构建类型的数量为productFlavors和buildTypes笛卡尔的乘积配置 build 类型在app的build.gradle 内的 buildTypes。

2023-12-24 15:59:39 108

原创 协程 baseViewModel和 BaseRepository 封装

*** IO中处理请求*/): T?

2023-12-10 22:57:48 88

原创 RxJava之网络请求最常见的三种场景

这个例子中,我们使用zip操作符来合并这三个Observables.它们被结合为一个MyViewModel的POJO.其构造参数与源Observables的类型匹配。网络请求也将不会被调用,这也是我们所期待的。如果缓存没有值,然后它便会调用onCompleted,此时也没有发射任何一个值。当你订阅这个源Observable时,将会同时发起三个网络请求,但是只有当它们都完成后才将新的MyViewModel实例发射出去。使用MayBe暗示着观察不到值的可能,例如,缓存为空且网络也没有返回结果。

2023-12-10 13:37:21 77

原创 kotlin flow 项目中使用

首先项目gradle 引入 协程和flow。参照rxjava思路。然后在代码中可以用。

2023-12-07 22:21:39 25

原创 android 项目 gradle 统一版本管理

gradle

2023-09-20 22:32:59 1042

组件化多渠道打包demo

组件化多渠道打包demo

2023-12-24

android mvvm kotlin 项目

android mvvm kotlin 项目

2023-12-13

Android Dsbridge (前端Vue3.0打包)

Android Dsbridge (前端Vue3.0打包)

2023-12-03

vue 3.0 Dsbridge Demo

自己写的demo

2023-12-03

空空如也

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

TA关注的人

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