自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 kotin(三) 字符串函数

函数 描述compareTo(other: String): Int 将当前对象与指定对象进行比较以获得顺序。如果current等于指定的其他对象,则返回0。get(index: Int): Char 返回当前字符序列中给定索引处的字符。): String 返回连接字符串,其中包含给定其他字符串的字符串表示形式。

2022-10-23 09:25:54 831 1

原创 kotlin(二) 数据类型

Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。类型 描述String 字符串Char 单字符Int 整形Double 小数List 集合Set 无重复的元素集合Map 键值对的集合。

2022-10-23 09:21:33 982

原创 kotlin 泛型

KOTLIN 泛型

2022-09-18 16:16:20 1772

原创 kotlin(七) 标准 函数

kotlin 标准函数

2022-09-11 23:40:03 112

原创 kotlin(八) 集合 list map 数组

list set map

2022-09-09 23:06:22 2031

原创 kotlin(五) null

kotlin null 异常

2022-09-09 00:04:37 653

原创 kotlin(六) 函数

kotin 方法

2022-09-05 23:09:29 704

原创 koltin(四) 逻辑控制 if when 循环

kotlin if when for

2022-08-17 11:24:47 1120 1

原创 android.support迁移到androidx

Google 2018 IO 大会推出了 Android新的扩展库 AndroidX(Android 9.0),用于替换原来的 Android扩展库,将原来的android.替换成androidx.;只有包名和Maven工件名受到影响,原来的类名,方法名和字段名不会更改。官方早就推荐将support库迁移到androidx,因为后续support库不会再做更新。迁移时只需要3.2版本及以上的android studio,在菜单refactor中点击migrate to androidx即可,该向导会提示需

2021-11-12 17:51:43 894

原创 android MvvM使用

MVC:M-Model-模型、V-View-视图(xml)、C-Controller-控制器(activity),MVP作为MVC的演化版本,M-Model-模型、V-View-视图(activity)、P-Presenter-表示器。 从MVC和MVP两者结合来看,Controlller/Presenter在MVC/MVP中都起着逻辑控制处理的角色,起着控制各业务流程的作用。而 MVP与MVC最不同的一点是M与V是不直接关联的也是就Model与View不存在直接关系,这两者之间间隔着的是Presenter

2021-11-10 18:42:20 3765

原创 apk 反编译工具和方法

使用工具apktool(资源文件获取) dex2jar(源码文件获取) jd-gui(源码查看)工具介绍  apktool     作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看  dex2jar     作用:将apk反编译成java源码(classes.dex转化成jar文件)  jd-gui     作用:查看APK中classes.dex转化成出的jar文件,即源码文件工具下载  apktool下载地...

2021-10-21 17:18:04 519

原创 java8 新特性 stream 数据流

用于重新封装集合数据,通过使用流式Stream代替常用集合数组1:forEachclass Employee { private Long empno; //员工号 private String ename; //员工姓名 private Integer salary; //薪水 private Integer deptno; //所属部门号 //此处省略get/set方法、构造方法以及toString方法}Employee e1 = new Emp

2021-10-03 00:24:33 228

原创 java 8 新特性

lambda 表示式Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。Lambda表达式就必须使用函数式接口,如果使用函数式接口,那么该接口之中就只能有一个抽象方法(必须要有这个函数)@FunctionalInterface //添加此注解后,接口中只能有一个抽象方法(允许有默认方法(用defaultx修饰 java8新特性)和静态方法)@FunctionalInterfac..

2021-09-30 23:46:46 95

原创 java 集合

Java集合主要分为三种类型:Set(集)、List(列表)和Map(映射)。1:集合和组数的区别数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。所有的JAVA集合都位于java.util包中。 JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。几乎所有的集合都是基于数组来实现的。因为集合是对数组做的封装,所以数组永远比任何一个集合要快。但任何一个集合,比数组提供的功能要多。2集合(Collectio

2021-08-30 00:11:40 100

原创 java list,数组 set map

List转ArrayArrayList<String> list=new ArrayList<String>();String[] strings = new String[list.size()];list.toArray(strings);或者String[] dest = list.toArray(new String[0]);//new String[0]是指定返回数组的类型 System.out.println("dest: " + Arrays.toS

2021-08-30 00:11:23 128

原创 Kotlin(一) 变量-常量-数据类型

Kotlin 基本数据类型Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。类型 位宽度 Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 比较两个数字在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小。fu

2021-08-02 17:35:17 527

原创 kotlin基本语法

包包的声明:package 引入包import和Java相同。但是kotlin可以不放在该目录下。但不建议package com.runoob.mainimport java.util.*fun test() {}class Runoob {}函数定义函数定义使用关键字 fun,参数格式为:参数 : 类型fun sum(a:Int ,b:Int ) :Int {// Int 参数,返回值 Int return a+b}表达式作为函数体,返回类型自动推断...

2021-07-28 18:34:33 101

原创 kotlin(八)类和对象

类定义Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。Kotlin 中使用关键字class声明类,后面紧跟类名:class Test{}类的属性属性定义类的属性可以用关键字var声明为可变的,否则使用只读关键字val声明为不可变。class Test{var name:String="test"var url:String="www.baidu.com"}非空属性必须在定义的时候初始化,kotlin提供了一种可以延迟......

2021-07-20 15:24:56 388 1

原创 kotlin(九) 枚举类-密封类-数据类-继承

Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类Any 默认提供了三个函数:equals()hashCode()toString()定义要被继承的类使用 open 关键字进行修饰。open class Base(age:Int)继承类 :object()class myPerson(age:Int) :Base(age)构造函数子类有主构造函数如果子类有主构造函数, 则基类必须在主构造函数中立即初始化open..

2021-07-20 14:52:21 520

原创 kotlin 抽象类-嵌套类-单例类-接口

抽象类-嵌套类-单例类-接口

2021-07-20 11:41:31 93

原创 Android 路由框架ARouter使用

这款路由框架是阿里Android技术团队开源的一款路由框架。ARouter官方项目地址添加依赖://defaultconfig中加入javaCompileOptions {annotationProcessorOptions {arguments = [moduleName :project.getName() ]} }compile'com.alibaba:ar...

2019-08-30 14:38:12 260

原创 Java单例模式

1介绍1.1 模式说明实现1个类只有1个实例化对象 & 提供一个全局访问点1.2 作用保证1个类只有1个对象,降低对象之间的耦合度1.3 工作原理Java中,我们通过使用对象(类实例化后)来操作这些类,类实例化是通过它的构造方法进行的,要是想实现一个类只有一个实例化对象,就要对类的构造方法下功夫:单例模式的原理单例模式的一般实现:(含使用步骤)......

2019-07-10 11:26:46 110

原创 工厂模式

简单工厂1. 含义简单工厂模式又叫静态方法模式(因为工厂类定义了一个静态方法) 现实生活中,工厂是负责生产产品的;同样在设计模式中,简单工厂模式我们可以理解为负责生产对象的一个类,称为“工厂类”。2. 解决的问题将“类实例化的操作”与“使用对象的操作”分开,让使用者不用知道具体参数就可以实例化出所需要的“产品”类,从而避免了在客户端代码中显式指定,实现了解耦。即使用者可直接消...

2019-07-08 18:26:45 93

原创 Android注解处理器(Android Annotation Processor)

APT工具APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation,根据注解自动生成代码,所以如果想要自定义的注解处理器能够正常运行,必要要通过APT工具来进行处理。也可以这样理解,只有通过声明APT工具后,程序在编译期间自定义注解解释器才能执行。这里使用的APT工具是annotationProcessor,...

2019-06-27 18:14:10 893

原创 java 泛型

1. 概述泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型...

2019-06-26 17:33:23 83

原创 JavaPoet - 生成Java代码

一、介绍  JavaPoet项目可以动态的生成Java文件,使用注解的时候假如需要生成新的Java文件就可以通过这个开源项目实现。  项目地址:https://github.com/square/javapoet二、JavaPoet常用的类JavaFile 用于构造输出包含一个顶级类的Java文件TypeSpec 生成类,接口,或者枚举MethodSpec 生成构...

2019-06-24 23:45:37 278

原创 Failed to resolve: com.android.support:appcompat-v7:28 问题解决

dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', mo...

2019-06-24 18:31:43 984

原创 android Studio 低版本升级gradle3.0以上版本

项目builde.gradleclasspath 'com.android.tools.build:gradle:3.0.0'gradle.wrapperdistributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip出现问题。Could not find com.android.tool...

2019-06-24 18:29:51 430

原创 android studio java liabray module运行一个Java文件,带main方法,一只卡在“Gradle build using tasks:[:xx:assemble]

edit configurantions ->去掉make.选择make project

2019-06-22 01:12:25 336

原创 android studio 定位跳转文件所在树形目录

单次定位,点击设置旁边带圆圈的小叉叉按钮,就跳转到该文件的树形目录设置定位。在设置中勾选autoscroll from source,每次点击文件。都会跳转到树形目录。...

2019-06-21 11:44:13 1543

原创 android studio module操作

module管理都在settings.gradle中添加moduleAndroid Studio -> file -> new module ->android library/java library删除module:Android Studio对module做了一个保护机制,module是不能随意删除的,要删除必须先从module列表中移除1、File-...

2019-06-20 17:59:17 320

原创 java 注解Annotation

描述java注解是在JDK5时引入的新特性,Java注解与普通修饰符(public、static、void等)的使用方式并没有多大区别,可以修饰java对象元素。声明注解//自定义声明的注解,可以提供java元素调用@Target(ElementType.METHOD)//元注解@Retention(RetentionPolicy.RUNTIME)//元注解public @i...

2019-06-19 11:41:09 147

转载 java.lang.NoClassDefFoundError: io.bugtags.agent.instrumentation.HttpInstrumentation

第一天使用是好的,第二天就出现这个问题解决方案:1.gradle –> wrapper –> gradle-wrapper.propertiesdistributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip2.android gradle build 插件版本classp...

2019-06-13 16:50:32 277

原创 java 代理模式

简介代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法1.1.静态代理静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同...

2019-06-11 18:06:32 179 1

原创 java 反射

序言java是面向对象的语言,把程序代码比作一辆车,车子有自己的颜色、车型号、品牌这些属性,也有正常行驶、倒车、停泊这些功能操作。正常情况下,我们需要为车子配备一个司机,然后按照行为准则规范行驶。那么反射是什么呢?无人驾驶。Class就是行驶规则。Class获取1. 通过 Object.getClass() // 这种方法不适合基本类型如 int、float 等等 ...

2019-06-05 18:33:01 750

原创 Timer

1.概览Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。原理:其基本处理模型是单线程调度的任务队列模型,Timer不停地接受调度任务,所有任务接受Timer调度后加入TaskQueue,TimerThread不停地去TaskQueue中取任务来执行.开始运...

2019-05-23 17:16:56 101

原创 AsyncTask

作用AsyncTask底层是handle+Executor,它不需要我们程序员再手动管理线程,动手写回调之类,性能跟好,更加简单方便。使用publicabstractclassAsyncTask<Params, Progress, Result> { }三种泛型类型分别代表“启动任务执行的输入参数”、“后台任务执行的进度”、“后台计算结果的类型”。在特定场合下,...

2019-05-22 17:01:48 92

原创 Android线程池ThreadPoolExechtor

线程池的作用:对多个线程进行统一地管理,避免资源竞争中出现的问题。对线程进行复用,线程在执行完任务后不会立刻销毁,而会等待另外的任务,这样就不会频繁地创建、销毁线程和调用GC。JAVA提供了一套完整的ExecutorService线程池创建的api,可创建多种功能不一的线程池,使用起来很方便。创建线程池(基类ThreadPoolExecutor)public ThreadPoolEx...

2019-05-21 18:27:51 406

原创 hanlder

简介、hanlder主要用于两个线程间的通信。在Android开发过程中,将耗时的一些操作放在子线程(work thread)中去执行,然后将执行的结果告诉主线程(UI线程main thread)。android给我了我们一个消息传递机制,handlerHandler最常规的使用方式private Handler mHandler = new Handler(){ @Over...

2019-05-18 16:46:32 165

原创 Fragment

简介一般用v4包的fragment, 不用sdk自带的fragment。,24.2.0版本开始,将support-v4库模块化为多个jar包,包含:support-fragment, support-ui, support-media-compat等,这么做是为了减少APK包大小,你需要用哪个模块就引入哪个模块。如果想引入整个support-v4库,则compile'com.androi...

2019-05-10 17:41:51 183

androidfby.rar

使用工具 apktool (资源文件获取) dex2jar(源码文件获取) jd-gui (源码查看)

2021-10-21

PullHeadGridView添加header

修改PullToRefreshGridView添加headiew,。。。。。。。。。gridView添加headview

2018-08-08

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

TA关注的人

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