- 博客(22)
- 资源 (15)
- 收藏
- 关注
原创 基础反射技术总结
前言相信每一个做Android开发的同学都用到过反射;同样我也经常用到;但是我从来没有好好的总结过这个经常用到的技术。很幸运在读包建强老师的书的时候看到了他专门有一章关于反射的总结。我决定在此基础上总结记录一下。反射包括一下技术:根据一个字符串得到一个类对象获取一个类的所有公有或者私有、静态或者实例的字段、方法、属性对于泛型类的反射得到Class对象getClass方法String s = "Hello";s.getClass();Class.forNametry {
2020-10-24 22:26:07
321
原创 EventBus分析
EventBus简介github地址:https://github.com/greenrobot/EventBus用法Eventbus 使用很简单,三步就行定义事件类型public static class MessageEvent { /* Additional fields if needed */ }订阅事件,使用注解订阅事件@Subscribe(threadMode = ThreadMode.MAIN) public void onMessageEvent(MessageE
2020-08-08 18:43:47
483
原创 Native层的Looper和MessageQueue
java层处理message,是在Looper死循环中不断从MessageQueue中读取Message进行处理,但是不知道有没有注意到,MessageQueue的一些native函数。其实MessageQueue不仅在java有一套实现,MessageQueue在native层还有一套实现。MessageQueueMessageQueue初始化frameworks/base/core/ja...
2020-03-25 14:19:01
585
原创 Touch事件的获取与分发
Android输入系统整体结构Android系统支持触摸屏与键盘等很多输入设备。当输入设备可用时,Android系统会在Linux内核/dev/input下创建event0~n或其他名称的的设备节点;当输入设备不可用时会删除相应的节点。在用户空间可以通过ioctl的方式从这些设备节点中获取信息。Android 输入系统简单说就是监控/dev/input下的所有节点,然后将获取的原始信息进行加工...
2020-03-25 14:07:14
2320
原创 android EditText输入长度限制
android EditText输入长度限制UTF-16编码UTF-16描述从U+0000至U+D7FF以及从U+E000至U+FFFF的码位从U+10000到U+10FFFF的码位从U+D800到U+DFFF的码位UTF-8 编码自定义的lengthFilter我相信大家一定都遇到过这样的需求,PM要求你限制EditText输入字符的个数;很多同学肯定会想到使用InputFilter.Leng...
2019-05-01 13:47:43
4241
原创 kotlin第八天:异常、java和kotlin互操作
kotlin第八天:异常、java和kotlin互操作异常异常类Try 是一个表达式受检的异常Nothing 类型java 和kotlin互操作在 Kotlin 中调用 Java 代码已映射类型Kotlin 中的 Java 泛型Java 数组Java 可变参数操作符受检异常对象方法从 Java 类继承Java 反射SAM 转换在 Kotlin 中使用 JNIJava 中调用 Kotlin属性包级函...
2019-04-07 21:55:17
1383
原创 kotlin第七天:集合数组、注解、反射
集合与数组可空性和集合kotlin支持值为null的集合,也就是集合的类型参数支持“?”;看个例子就明白了注意区分集合值可空,还是集合本身可空只读集合和可变集合Kotlin 的集合设计和 Java不同的另 一项重要特质是,它把访问集合数据的接 口和修改集合数据 的接口分开了 。 这种区别存在于最基础的使用集合的接口之中 :使用kotlin.collections.Collectio...
2019-04-07 11:43:09
1305
原创 kotlin第六天:解构、运算符重载
kotlin第六天:解构、运算符重载解构声明使用场景一:函数返回多个值使用场景二:循环迭代运算符重载重载二元算术运算基本语法运算符函数声明为扩展函数运算符函数重载重载复合赋值运算符重载一元运算符重载比较运算符等号运算符排序运算符解构声明解构声明,允许你展开单个复合值,并且使用它来初始化多个单独的变量。val p = Point(10,20)val(x,y) = p事实上,解构声明用到了...
2019-03-23 14:19:26
249
原创 kotlin 第五天:类与对象(四)
kotlin 第五天:类与对象 四泛型类型参数约束类、类型和子类型协变:保留子类型化关系逆变:反子类型化关系使用点变型使用*投影对象对象表达式对象声明单例伴生对象对象表达式和对象声明之间的语义差异委托委托实现覆盖由委托实现的接口成员委托属性标准属性委托延迟属性 Lazy可观察属性 Observable把属性储存在映射中局部委托属性(自 1.1 起)提供委托(自 1.1 起)泛型类型参数约束可...
2019-03-18 09:31:56
261
原创 kotlin 第四天:类与对象 三
kotlin 第四天:类与对象 三扩展扩展函数扩展是静态解析的可空接收者扩展属性伴生对象的扩展扩展的作用域扩展声明为成员动机函数函数声明函数用法参数默认参数命名参数返回 Unit 的函数单表达式函数显式返回类型可变数量的参数(Varargs)中缀表示法函数作用域局部函数成员函数泛型函数尾递归函数高阶函数与 lambda 表达式高阶函数函数类型函数类型实例化函数类型实例调用Lambda 表达式与匿名...
2019-03-11 15:46:45
604
原创 Kotlin第三天:类与对象二
类与对象二 接口接口中的属性接口中的属性接口继承解决覆盖冲突可见性包类和接口构造函数局部声明模块嵌套类与内部类内部类This 表达式限定的 this匿名内部类数据类复制密封类定义特点好处枚举类初始化匿名类在枚举类中实现接口使用枚举常量内联类成员表示方式内联类与类型别名内联类的实验性状态在 Gradle 中启用内联类:在 Maven 中启用内联类接口Kotlin 的接口与 Java 8 类似,既...
2019-02-26 09:02:16
290
原创 Kotlin第二天:类与对象(一)
Kotlin第二天:类与对象(一)类类的定义构造函数主构造函数次构造函数创建实例类成员继承覆盖方法覆盖属性派生类初始化顺序调用超类实现覆盖规则继承接口和类个数抽象类属性和字段声明属性Getters 与 Setters幕后字段幕后属性编译期常量延迟初始化属性与变量类类的定义Kotlin 中使用关键字 class 声明类,类声明由类名、类头(指定其类型参数、主构造函数等)以及由花括号包围的类体构...
2019-02-25 10:21:42
187
原创 Kotlin第一天:基本语法
Kotlin第一天:基本语法定义函数定义变量字符串模板空安全空安全编译检测条件中检测null安全调用Elvis 操作符!! 操作符类型安全转换可空类型的集合使用类型检测及自动类型转换循环迭代使用forwhilebreak和continue条件语句if表达式when语句(相当于switch)本着上去就是干的原则,学习kotlin第一天,看了一些基本语法;有点java基础知识的应该没有太多问题定义...
2019-02-22 17:59:04
205
原创 流与文件
流与文件流流家族组合流过滤器流java 流定义:可以从中读入一个字节序列的对象称为 输入流;可以向其写入字节序列的是 输出流主要有2种基类:InputStream 、OutputStream和Reader、WriterInputStream 、OutputStream处理单字节的字符;Reader、Writer处理 两字节的Unicode码元。InputStream 的read方法读入一个...
2019-01-23 09:29:40
196
原创 java线程基础知识总结
java线程基础知识总结什么是线程线程的简单使用线程中断线程状态线程属性线程同步ReentrantLock类条件锁注意synchronized关键字同步阻塞volatile关键字线程局部变量stop 和suspend方法被弃用原因阻塞队列Callable、Future和FutureTask执行器什么是线程一个程序同时执行多个任务,通常每个任务称为一个线程。进程和线程区别进程拥有自己的一整套...
2019-01-01 22:43:43
3176
2
原创 Java泛型程序设计
Java 泛型程序设计简单的泛型使用泛型类的定义和使用泛型方法类型变量的限定要学习java泛型,我觉得首先得知道设计的目的;第一,不用强制类型转换;第二,能够编译时检查,更加安全;第三,代码可读性增加。简单的泛型使用泛型类的定义和使用泛型类就是具有有个或者多个类型变量的类。public class Pair<T>{ private T first; private T s...
2018-12-16 20:38:06
480
原创 Android注解:自定义注解之源码注解
Android注解:自定义注解之源码注解 首先如果你对注解没有太多了了解,建议先看一下我之前的两篇博客Android注解:Java注解Android注解:Android 常用注解...
2018-11-13 10:27:33
1080
原创 Android注解:Android 常用注解
Android注解:Android 常用注解 1 添加支持注解库依赖项2 运行代码检查3 Android常用注解首先说一下在Android代码中使用注解的好处。使用注解向 Lint 之类的代码检查工具提供提示,帮助检测这些更细微的代码问题;还可以少写一些重复代码;使用注解还非常的方便等等。1 添加支持注解库依赖项支持注解库是 Android 支持库的一部分。要向您的项目添加注解,您必须下载支...
2018-11-04 13:35:23
3983
原创 Android注解:Java注解
java注解语法java 注解定义java注解通过@interface进行定义;例:public @interface TestAnnotation {}其实这个和定义接口没啥区别,只是在interface关键字前加了一个@元注解我们每次点开别人的注解经常看到的是这样的@Target(ElementType.METHOD)@Retention(RetentionPolicy.S...
2018-10-28 23:21:37
489
原创 Groovy 闭包
Groovy 闭包 前言1 闭包语法1.1 闭包定义1.2 闭包作为一个对象1.3 闭包调用2 闭包参数2.1常规参数2.2 隐含参数2.3 可变参数3 代理策略3.1 Groovy 闭包VS lambda表达式3.2 owner,delegate和 this3.2.1 闭包中this的含义3.2.2 闭包中的Owner前言 Groovy闭包对于之前没有多少动态语言学习经验的小伙伴可能刚开...
2018-10-13 22:44:46
454
原创 JAVA正则表达式
最近项目需要,需要用到正则表达式,我们需要匹配String中的某个特定标签,然后依次替换,替换的东西每次都不一样,我这里先记录一下Matcher 类 :Matcher 方法如下:MatcherappendReplacement(StringBuffer sb, String replacement) 将当前匹配子串替换为指定字符串,并且将
2017-10-17 10:28:57
223
原创 android ImageView 播放动画
最近要做一个loading的动画,刚开始使用gif图做,但是gif图效果不好,播放速度太慢,后来通过ImageView一帧一帧的播放,这里放过demo。首先上几张图:Animation-ListAnimation-list是帧动画的默认选择,我们在drawable文件夹下创建一个my_animation_list.xml<animation-list xmlns:andr
2017-10-11 10:41:27
8192
EasyTouch Uinty3d
2014-10-07
串口调试助手
2013-01-13
传感器原理及工程应用_第三版答案--郁有文、西安电子科技大学出版
2013-01-13
CRC16校验程序代码
2012-12-31
msp430DAC12
2012-09-21
12864与msp430
2012-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人