- 博客(83)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 kotin(三) 字符串函数
函数 描述compareTo(other: String): Int 将当前对象与指定对象进行比较以获得顺序。如果current等于指定的其他对象,则返回0。get(index: Int): Char 返回当前字符序列中给定索引处的字符。): String 返回连接字符串,其中包含给定其他字符串的字符串表示形式。
2022-10-23 09:25:54 904 1
原创 kotlin(二) 数据类型
Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。类型 描述String 字符串Char 单字符Int 整形Double 小数List 集合Set 无重复的元素集合Map 键值对的集合。
2022-10-23 09:21:33 1024
原创 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 965
原创 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 3852
原创 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 539
原创 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 241
原创 java 8 新特性
lambda 表示式Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。Lambda表达式就必须使用函数式接口,如果使用函数式接口,那么该接口之中就只能有一个抽象方法(必须要有这个函数)@FunctionalInterface //添加此注解后,接口中只能有一个抽象方法(允许有默认方法(用defaultx修饰 java8新特性)和静态方法)@FunctionalInterfac..
2021-09-30 23:46:46 103
原创 java 集合
Java集合主要分为三种类型:Set(集)、List(列表)和Map(映射)。1:集合和组数的区别数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。所有的JAVA集合都位于java.util包中。 JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。几乎所有的集合都是基于数组来实现的。因为集合是对数组做的封装,所以数组永远比任何一个集合要快。但任何一个集合,比数组提供的功能要多。2集合(Collectio
2021-08-30 00:11:40 128
原创 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 141
原创 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 580
原创 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 108
原创 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 450 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 571
原创 Android 路由框架ARouter使用
这款路由框架是阿里Android技术团队开源的一款路由框架。ARouter官方项目地址添加依赖://defaultconfig中加入javaCompileOptions {annotationProcessorOptions {arguments = [moduleName :project.getName() ]} }compile'com.alibaba:ar...
2019-08-30 14:38:12 296
原创 Java单例模式
1介绍1.1 模式说明实现1个类只有1个实例化对象 & 提供一个全局访问点1.2 作用保证1个类只有1个对象,降低对象之间的耦合度1.3 工作原理Java中,我们通过使用对象(类实例化后)来操作这些类,类实例化是通过它的构造方法进行的,要是想实现一个类只有一个实例化对象,就要对类的构造方法下功夫:单例模式的原理单例模式的一般实现:(含使用步骤)......
2019-07-10 11:26:46 126
原创 工厂模式
简单工厂1. 含义简单工厂模式又叫静态方法模式(因为工厂类定义了一个静态方法) 现实生活中,工厂是负责生产产品的;同样在设计模式中,简单工厂模式我们可以理解为负责生产对象的一个类,称为“工厂类”。2. 解决的问题将“类实例化的操作”与“使用对象的操作”分开,让使用者不用知道具体参数就可以实例化出所需要的“产品”类,从而避免了在客户端代码中显式指定,实现了解耦。即使用者可直接消...
2019-07-08 18:26:45 103
原创 Android注解处理器(Android Annotation Processor)
APT工具APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation,根据注解自动生成代码,所以如果想要自定义的注解处理器能够正常运行,必要要通过APT工具来进行处理。也可以这样理解,只有通过声明APT工具后,程序在编译期间自定义注解解释器才能执行。这里使用的APT工具是annotationProcessor,...
2019-06-27 18:14:10 943
原创 java 泛型
1. 概述泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型...
2019-06-26 17:33:23 97
原创 JavaPoet - 生成Java代码
一、介绍 JavaPoet项目可以动态的生成Java文件,使用注解的时候假如需要生成新的Java文件就可以通过这个开源项目实现。 项目地址:https://github.com/square/javapoet二、JavaPoet常用的类JavaFile 用于构造输出包含一个顶级类的Java文件TypeSpec 生成类,接口,或者枚举MethodSpec 生成构...
2019-06-24 23:45:37 320
原创 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 1017
原创 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 465
原创 android studio java liabray module运行一个Java文件,带main方法,一只卡在“Gradle build using tasks:[:xx:assemble]
edit configurantions ->去掉make.选择make project
2019-06-22 01:12:25 358
原创 android studio 定位跳转文件所在树形目录
单次定位,点击设置旁边带圆圈的小叉叉按钮,就跳转到该文件的树形目录设置定位。在设置中勾选autoscroll from source,每次点击文件。都会跳转到树形目录。...
2019-06-21 11:44:13 1638
原创 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 380
原创 java 注解Annotation
描述java注解是在JDK5时引入的新特性,Java注解与普通修饰符(public、static、void等)的使用方式并没有多大区别,可以修饰java对象元素。声明注解//自定义声明的注解,可以提供java元素调用@Target(ElementType.METHOD)//元注解@Retention(RetentionPolicy.RUNTIME)//元注解public @i...
2019-06-19 11:41:09 201
转载 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 292
原创 java 代理模式
简介代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法1.1.静态代理静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同...
2019-06-11 18:06:32 236 1
原创 java 反射
序言java是面向对象的语言,把程序代码比作一辆车,车子有自己的颜色、车型号、品牌这些属性,也有正常行驶、倒车、停泊这些功能操作。正常情况下,我们需要为车子配备一个司机,然后按照行为准则规范行驶。那么反射是什么呢?无人驾驶。Class就是行驶规则。Class获取1. 通过 Object.getClass() // 这种方法不适合基本类型如 int、float 等等 ...
2019-06-05 18:33:01 951
原创 Timer
1.概览Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。原理:其基本处理模型是单线程调度的任务队列模型,Timer不停地接受调度任务,所有任务接受Timer调度后加入TaskQueue,TimerThread不停地去TaskQueue中取任务来执行.开始运...
2019-05-23 17:16:56 115
原创 AsyncTask
作用AsyncTask底层是handle+Executor,它不需要我们程序员再手动管理线程,动手写回调之类,性能跟好,更加简单方便。使用publicabstractclassAsyncTask<Params, Progress, Result> { }三种泛型类型分别代表“启动任务执行的输入参数”、“后台任务执行的进度”、“后台计算结果的类型”。在特定场合下,...
2019-05-22 17:01:48 108
原创 Android线程池ThreadPoolExechtor
线程池的作用:对多个线程进行统一地管理,避免资源竞争中出现的问题。对线程进行复用,线程在执行完任务后不会立刻销毁,而会等待另外的任务,这样就不会频繁地创建、销毁线程和调用GC。JAVA提供了一套完整的ExecutorService线程池创建的api,可创建多种功能不一的线程池,使用起来很方便。创建线程池(基类ThreadPoolExecutor)public ThreadPoolEx...
2019-05-21 18:27:51 487
原创 hanlder
简介、hanlder主要用于两个线程间的通信。在Android开发过程中,将耗时的一些操作放在子线程(work thread)中去执行,然后将执行的结果告诉主线程(UI线程main thread)。android给我了我们一个消息传递机制,handlerHandler最常规的使用方式private Handler mHandler = new Handler(){ @Over...
2019-05-18 16:46:32 177
原创 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 204
android httpurlconnection或者httpclient总是超时
2014-08-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人