自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

热爱技术

只要来日可期,今天就值得欣喜

  • 博客(127)
  • 资源 (24)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android开发中一些有用的命令积累

这里专门收集各种命令,后面会一直完善。Gradle的一些操作命令。adb的一些操作命令。

2021-01-25 20:14:01 691 1

原创 AGP7.0依赖版本管理version catalogs使用

使用versionCatalogs创建分组,在每个组中可以使用library、bundle 、version、plugin创建版本管理。2、libs.version.toml文件里面编写version 、plugins、libraires、bundles。1、在工程目录下创建一个libs.version.toml文件,如下图。2,比如在app模块中引入plugin依赖[app.gradle]1、在项目的build.gradle模块中加入老的依赖。1、在setting.gradle中做如下操作。

2023-11-05 15:13:44 436

原创 学习Kotlin~和java间互相操作

比如 :Spell.kt。比如:Spell.kt。

2023-07-06 10:33:20 208

原创 学习Kotlin~扩展

和定义一般函数差不多需要指定接受功能扩展的接受者类型/*** 定义扩展函数和定义一般函数差不多,有一点不同* 你还需要指定接受功能扩展的接受者类型*/ //定义下面的扩展函数,这里不单指定了方法名,还指定了接受者类型是String fun String . addExt(amount : Int = 1) = this + "!扩展函数需要在单独的文件使用,可以将它定义在单独的文件里面,然后import比如下面的kotlin文件;/**

2023-07-05 09:21:37 800 1

原创 学习Kotlin~函数式编程

在使用一个序列时,序列里的值可能有无限多,因为某个数据源可能产生无限多个元素;惰性集合,类似于惰性初始化,包含大量元素是,集合元素是按需产生的;Kotlin有个内置惰性集合类型叫序列Sequence;

2023-07-04 10:08:59 729

原创 学习Kotlin~泛型

泛型函数泛型参数也可以用于函数泛型参数泛型类和泛型函数可以有多个泛型参数泛型类型约束vararg关键字与get函数MagicBox能存放任何类型的Boy实例,但一次只能放一个,如果放入多个实例,则使用vararg关键字想要通过[]操作符取值,可以重载运算符函数get函数out(协变)如果泛型类只将泛型类型作为函数的返回(输出),那么使用outout主要用来生产指定的泛型对象in(逆变)如果泛型类只将泛型类型作为函数的入参(输入),那么使用inin主

2023-07-01 12:07:27 474

原创 学习Kotlin~接口和抽象类

【代码】学习Kotlin~接口和抽象类。

2023-06-30 13:21:18 241

原创 学习Kotlin~类

只要能确定any is父类条件检查属实,它就会将any当做子类类型对待,可以不经过as转换。在上面的枚举类中不可能正常带有驾照的id,为了实现这种需求,我们使用了密封类。经常需要比较、复制、打印自身内容的类,数据类适合它们;可以定义多个次构造函数来配置不同的参数组合。使用了密封类,就可以正常展示驾照的Id了;init初始化块里的属性赋值和函数调用。下面使用枚举类实现一个驾照类和司机类;使用次构造函数,定义初始化代码逻辑。次构造函数里属性赋值和函数调用。数据类使用有以下三个条件。主构造函数里声明的属性。

2023-06-30 09:35:16 778

原创 学习Kotlin~集合

【代码】学习Kotlin~集合。

2023-06-29 14:48:11 727

原创 学习Kotlin~操作符

使用这个符号的好,如果为null,就会抛出KotlinNullPointerException。kotlin区分可空类型和非可空类型,kotlin不允许在可空类型上调用函数。如果左边的求值结果为null,就使用右边的;使用先决条件函数可以抛出带自定义信息的异常。非空变量不可赋null值。

2023-06-29 09:32:33 104

原创 学习Kotlin~字符串

【代码】学习Kotlin~字符串。

2023-06-28 16:25:31 1151

原创 学习Kotlin~函数

参数的顺序相反了,也不会影响最终结果。

2023-06-28 09:21:52 430

原创 学习Kotlin~变量

声明变量数据类型全部都是引用类型var和val声明可修改使用var声明只读使用val,只读变量并非绝对只读类型推断对于已声明并赋值的变量,允许省略类型定义。

2023-06-27 10:37:14 620

原创 Installed Build Tools revision 33.0.0 is corrupted. Remove and install again using the SDK Manager

将上面两个文件中的d8名称修改成dx,问题就解决了;

2022-10-19 11:51:54 1792 1

原创 Android Jetpack组件DataBinding

数据绑定。

2022-10-18 10:58:50 1345 1

原创 Android Jetpack组件ViewModel

ViewModel 类旨在以注重生命周期的方式存储和管理界面相关数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。ViewModel类让数据可在发生屏幕旋转等配置更改后继续留存。异步回调问题不会造成内存泄漏。隔离Model层和View层。Fragments间共享数据。

2022-08-26 08:28:25 331

原创 推荐Android MVVM模式编码

通过这三层之间的联系,把UI操作、业务逻辑操作和数据操作进行解耦,使得代码逻辑更加简洁清晰。本人学习了融云通讯的官方Demo,感觉MVVM真的特别赞;可以直接去官网下载Demo。我这片文章只是做一个Demo笔记缩减代码,希望小伙伴快速上手MVVM开发吧;ViewModel:视图模型层,负责完成View和Model间的业务逻辑。不太想云里雾里的写一大堆东西,这个MVVM我也是看别人的项目学会的;Model:模型层,负责处理数据的获取和处理。View:视图层,负责界面数据的展示。

2022-07-02 09:16:21 245

原创 Android Jetpack组件Lifecycle

Lifecycle 是一个类,用于存储有关组件(如 Activity 或 Fragment)的生命周期状态的信息,并允许其他对象观察此状态。

2022-01-07 13:18:31 592

原创 Android之gradle自定义插件实现

Build script 脚本 —— 把插件写在build.gradle文件中,一般用于简单的逻辑,只在该build.grade文件可见buildSrc目录 —— 将插件源代码放在buildSrc/src/main中,只对该项目可见独立项目 |—— 一个独立的Java项目/模块,可以将文件包发布到仓库(Jecenter,Maven),使其他项目方便引入

2021-11-27 20:12:11 3345 2

原创 Android CoordinatorLayout之自定义Behavior

协调布局CoordinatorLayout概况原理自定义常见Behavoir概况作为最上层的View作为一个 容器与一个或者多个子View进行交互CoordinatorLayout中文翻译为“协调布局”,它可以协调调度子布局,当触摸的时候会影响布局从而产生动画效果(从协调子布局可以了解到,协调布局必须是跟布局,否则不起作用)。CoordinatorLayout通过设置子View的 Behaviors来调度子View。原理自定义常见Behavoir......

2021-11-21 12:46:18 1796 2

原创 jni笔记

首先定位到build/intermediates/javac/debug/classes下面。首先定位到Adnroid工程的java目录下执行。1、首先在gradle中配置。2、其次在c文件中导入。

2021-01-24 13:10:18 303

原创 解决 Program type already present 问题

`打包报错: Program type already present: com.ohmerhe.kolley.image.Image$ImageListener`从远程更新一下代码以后报了上面的错误,“Program type already present:”考虑是系统编译之后出现的问题,就先clean project之后就解决问题了!记得以后代码有更新项目跑不起来的时候记得 clean project、clean project、clean project重要事情说三遍!!!...

2021-01-18 22:30:03 16072 1

原创 底部菜单控件BottomNavigationView的使用

BottomNavigationView实现底部导航栏的整体效果如下图所示:基本使用BottomNavigationView控件的主要属性含义:控件点击时候颜色选择@color/sl_color_green_grey完整的MainActivity代码运行的效果图如下:item多的时候,指的是item非选中状态显示文字,有以下几个值:它们依次运行如下图所示auto和select和i 属性sShifting有关此时isShifting=true;你会发现auto和 selected的效

2021-01-16 03:17:04 13718 22

原创 gradle依赖冲突的解决方式以及开发中遇到的相关问题

在当前项目开发过程中引入了了腾讯云对象存储COS的库文件之后,implementation 'com.tencent.qcloud:cosxml:5.5.5'项目死活都跑不起来;报了以下的错误:完整的错误日志如下: java.lang.NoSuchMethodError: No virtual method getHttpUrlChecked(Ljava/lang/String;)Lokhttp3/HttpUrl; in class Lokhttp3/internal/Internal; or

2021-01-14 12:55:01 4696 4

原创 安卓proguard代码混淆以及反编译工具

混淆以及反编译那些事儿含义解释:- 压缩(Shrink): 检测并删除未使用的类,字段,方法和属性。- 优化(Optimize): 分析并优化方法的字节码。- 混淆(Obfuscate): 使用简短的无意义名称例如a,b,c等,重命名类,字段和方法。- 预检(Preveirfy): 主要是在Java平台上对处理后的代码进行预检。#### 输入/输出配置项```groovy@filename```

2021-01-04 03:13:03 1145

原创 解决使用BottomSheetDialog底部虚拟导航栏NavigationBar的颜色

最新版本的BottomSheetDialog状态栏发黑问题已经没有了但是虚拟导航栏还是会发黑。华为手机在使用BottomSheetDialog的时候底部虚拟导航栏总是黑色的看着和App整个UI不搭配这里可以看到底部是黑色,要想解决需要单独为底部虚拟导航栏设置一下 @RequiresApi(api = Build.VERSION_CODES.M) private void setWhiteNavigationBar(@NonNull Dialog dialog) { Wi

2021-01-02 00:22:17 4865 6

原创 Andoird Studio 错误: 非法字符: ‘\ufeff‘ 解决方案

这里写自定义目录标题dialog\ScanPopWindow.java:1: ����: �Ƿ��ַ�: '\ufeff'dialog\ScanPopWindow.java:1: ����: �Ƿ��ַ�: ‘\ufeff’

2020-12-29 16:21:24 1844 2

原创 Retrofit的解析

网络框架Retrofit的源码解析1.如何使用Retrofit网络框架1.1 首先定义一个接口类public interface RemoteService { @GET("/user/{path}/name") Call<ResponseBody> getUser(@Path("path") String str);}1.2 Retrofit的网络代码...

2019-12-21 20:50:06 10314

原创 代理模式(静态和动态)

代理模式的定义为其他对象提供一种代理,以控制对这个对象的访问;代理对象起到中介的作用,可去掉功能服务或者增加额外的服务;比如:买火车票,可以去火车票代售处购买而不用非得去到火车站,火车票代售处就是火车站的代理,火车票代售处和火车站的功能的比较:

2019-12-20 18:46:39 437

原创 Drawable与Bitmap转换方法

Drawable和Bitmap相互转换

2019-11-18 15:17:13 1897

原创 绘制文字、Canvas范围裁切和几何变换、Matrix的几何变换

一,文字的高度测量和计算1.第一种方式 (计算出来的文字的高度超级精确) //1,这种方式计算出来的文字的高度超精确 Rect rect = new Rect(); paint.getTextBounds("ababj", 0, "ababj".length(), rect); int offset = (rect.top + re...

2019-11-14 19:41:58 718

原创 Path.setFillType()方法小结

Path.setFillType()用法这个方法用来判断图形的某个点是属于外部还是内部Path添加的图形是带有方向的 ,比如下面path添加一个圆形;Path.addCircle(getWidth() / 2, getHeight() / 2 + 150, 150, Path.Direction.CCW);第四个参数代表的是图形的方向,有两个Path.Direction.CW(顺时针)......

2019-11-13 15:35:41 982 2

原创 Android中的压力测试笔记

学习的地址:https://www.imooc.com/video/13013准备测试环境准备Android SDK环境 下载 AndroidSDK准备python环境 下载 pythonAPP的压测实践一压测过程step1:手机调试到开发者选项,将USB调试选上。(【设置】-【关于手机】-【点击版本号5/6次】进入开发者选项,点击【开发人员选项】-【勾选USB调试】)压测过程st...

2019-11-11 17:34:07 685

原创 约束布局ConstraintLayout看这一篇就够了

真的很有必要学习约束布局和它的辅助布局,因为它可以做出很多好看的效果,且性能高;比如这个ConstraintHelper,效果如下图所示:喜欢的可以继续往下看,不夸张的说,约束布局和其辅助布局的相关的这里都有,而且很详细;引入androidx的constraintlayout的lib相对定位基本定位属性如下表,意思好比就是那一条边和那一条边对齐,比如设置B控件的属性 layout_constraintLeft_toLeftOf=“@id/A”就表示B控件的左边对齐A控件的左边,会收到这个约束。

2019-09-12 15:53:12 4455 2

原创 Android数据库框架DBFlow基本运用

DBFlow的github地址Gradle配置在根的gradle中引用 maven { url “https://www.jitpack.io” }allProjects { repositories { google() // required to find the project's artifacts // place last maven...

2019-09-11 10:24:05 1643

原创 Android开发中使用Gson的笔记

开发中使用到json记录

2019-09-10 10:43:02 376

原创 快速排序算法

快速排序的主要是利用递归和分区域来排序,其中分区,主要是分成三个区域,小于区,等于区,大于区;主要的流程如下:比如某一个值 p来划分一个数组1,数组当前数 > p,当前数和大于区的前一个数交换,大于区向左扩,当前位置停在原地2,数组当前数 < p,当前数和小于区的后一个数交换,小于区向右扩,当前位置跳到下一个位置3,数组当前数 = p,当前数直接跳到下一个当前位置的索引ind...

2019-05-19 17:20:16 441 2

原创 堆排序算法

堆堆是一种特殊的完全二叉树二叉树树的每一层最多两个节点完全二叉树是二叉树的每一层都是排满的,或者最后一层没有排满,但是从左到右是依次遍满的。堆的分类堆分为大根堆和小根堆大根堆是每个子树的头结点是最大的小根堆是每个子树的头结点是最小的任何一个节点位置 i,它的左孩子位置是: i * 2+1;它的右孩子的位置是: i * 2+2;它的父节点的位置是: (i–1)/2;...

2019-03-03 13:29:41 408

原创 归并排序算法

归并排序,整体就是一个简单的递归过程,左边排好序,右边排好序,让其整体有序。让其整体有序的过程中用到了外排序的方法。坦白的说,这种排序不好去理解,归并的代码我是看了好久才学会的,自己也练了好多遍,感觉还是晕晕的,这种排序要靠自己去领悟的,我是用最笨的方法,把所有执行的过程全部写出来,结果自己看懂了!顺便也推出的它的时间复杂度,实在不好用语言说清楚的;下面我就先写出代码;然后画图推出它的时间复杂度...

2019-02-27 11:22:00 395

原创 AndroidStudio编译不过报 :Device supports,but APK only supports.....

AndroidStudio的开发中偶尔出现下面这样的问题:Device supports,but APK only supports…就像下图这样:出现这个问题的原因是因为,当前APK支持的系统cpu架构中,手机是不支持的;手机一共有7中,armeabi、armeabi-v7a、arm64-v8a、mips、mips64、x86、x86_64;图片中的手机设备支持 armeabi、a...

2018-12-30 12:59:53 9496

Android MVVM学习使用Demo

Android MVVM学习使用Demo

2022-11-01

DataBinding使用Android

DataBinding使用Android

2022-10-18

BottomNavigation底部菜单

BottomNavigation底部菜单Design

2022-06-29

Plugin1.zip

自定义安卓插件

2021-11-27

CoordinatorLayout.zip

CoordinatorLayout+Behavior自定义和仿系统的协调布局

2021-11-24

TabLayout.zip

TabLayout使用介绍(com.google.android.material.tabs.TabLayout)

2021-11-20

buttonwithprogress.zip

带进度的按钮

2021-01-26

drawable.zip

自定义RadioGroup实现应用市场上的按钮切换效果

2021-01-25

DragViewTest.zip

使用各种方式滑动View

2021-01-22

COSTransferPractice.zip

腾讯云对象存储-直接运行

2021-01-14

InPutEditText.zip

Android自定义View验证码输入框

2021-01-09

Android自定义Dialog--DanmakuFlame弹幕发送框界面的实现

Android自定义Dialog--DanmakuFlame弹幕发送框界面的实现

2017-09-26

LayerDrawable

Android的Drawable运用之----LayerDrawable

2017-09-20

友盟多渠道打包 Android Apk

友盟多渠道打包 Android Apk

2017-04-15

EditText的清空 查看密码 限制输入空格 最大字数 Android

EditText的清空 查看密码 限制输入空格 最大字数

2016-12-20

仿华为应用市场下载进度条

仿华为应用市场下载进度条

2016-12-18

属性动画Android3.0以下兼容包

nineoldandroids.jar 兼容Android3.0以下的版本

2016-07-13

Binder连接池Android

Binder连接池

2016-05-31

SQLiteExpertPersSetup.exe

SQLiteExpertPersSetup.exe

2016-05-17

颜色提取器COLOR

颜色提取器

2016-05-09

Json格式化工具HiJson2.12_jdk64

HiJson2.12_jdk64

2016-05-09

Android中XML的解析Pull//SAX/DOM

XML的三种常用解析方式

2016-05-02

Android中xml的解析

XML的解析方式

2016-05-02

xml格式解析

xml格式解析

2016-05-02

git for windows下载

Git-2.8.1-64-bit.exe

2016-04-30

java排序Comparator和Comparable

java排序Comparator和Comparable

2015-09-21

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

TA关注的人

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