- 博客(34)
- 资源 (1)
- 收藏
- 关注
原创 EventBus要点记录
1、EventBus方法注册先从注册的对象中找到对应的方法1)先从对外声明的方法找,如果发生异常,再找全部方法找全部方法的时候会设置变量findState.skipSuperClasses = true; 这样就不用再次找父类的方法了try { // This is faster than getMethods, especially when subscribers are fa...
2020-06-26 16:50:17
318
原创 LeakCanary2.0版本原理简单查看
这几天看了一下leakCanary2.0版本的源码,在这里做一下记录。2.0版本使用kotlin重写的,使用起来也非常简单,省去了在Application中的注册,只需要在build.gradle文件中加入依赖 debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0'就可以了,代码上什么都不用写,完全做到...
2020-03-29 19:01:14
708
原创 Fiddler抓包flutter的请求
近期在学习flutter的时候想通过fiddler抓一下网络请求包。配置好了手机wifi的代理,项目一运行,咦,啥都没有抓到。然后赶紧上网找一通,终于找到了解决办法。首先说一下解决办法:在代码中通过代码为HttpClient设置代理:HttpClient httpClient = new HttpClient();httpClient.findProxy = (url) {...
2019-10-17 11:13:31
1701
原创 Flutter中Image的fit属性解析
flutter中image的fit属性表示在图片和image控件大小不一样的时候,图片该以何种方式展现在控件中。fit的属性都包含在枚举类BoxFit中,一共有以下7种方式:1、fill2、contain3、cover4、fitWidth5、fitHeight6、none7、scaleDown下面来分别介绍一下这几种方式下,图片的不同展现形...
2019-08-20 16:35:00
7546
原创 flutter中页面跳转之Navigator
在安卓和苹果设备上都有页面跳转的操作,flutter中是使用Navigator来管理页面之间的跳转的。在万物皆Widget的flutter中,Navigator自然也没有逃过成为一个widget的命运,它属于StatefulWidget的子类。Navigator负责管理页面的的堆栈,并提供管理堆栈的方法,像push(显示页面)、pop(关闭页面);Nav...
2019-07-31 20:34:00
1325
原创 Activity、View、Window之间关系的分析
看大家都放图,我也来一张通常我们所看到的Activity和View最直观的关系是在onCreate()方法中设置setContentView(LayoutId),为activity设置布局文件,这样view就在界面上显示出来了。这个方法做的操作如下: /** * Set the activity content from a layout...
2018-05-11 20:05:00
1668
原创 okhttp之ConnectInterceptor
ConnectInterceptor是okhttp中负责和服务端建立连接的一个拦截器,ConnectInterceptor类中代码看起来是不多,但千万不要被它纯洁的外表给欺骗了,实际上负责的操作都被封装到其他的类里了。下面来看代码: @Override public Response intercept(Chain chain) throws IOExc...
2018-04-15 18:05:00
176
原创 okhttp之BridgeInterceptor
BridgeInterceptor是okhttp中的第二个拦截器,这个拦截器的主要作用就是在对用户的请求头部加了一些信息,然后在获取到的响应中也做了一些处理。而这些处理对用户是透明的,减少了客户请求的工作。下面来看一下对用户的请求做了哪些处理:@Override public Response intercept(Chain chain) throws ...
2018-04-09 16:17:00
197
原创 okhttp之RetryAndFollowUpInterceptor
RetryAndFollowUpInterceptor是okhttp自己的第一个拦截器,这个拦截器主要负责请求的重定向和重试。下面看代码:先来分析重试部分的代码@Override public Response intercept(Chain chain) throws IOException {Request request = chain.re...
2018-04-08 20:00:00
179
原创 okhttp之CacheInterceptor
CacheInterceptor是okhttp中缓存拦截器,是负责http请求的缓存处理。当从上个拦截器中获取到http请求时,会从缓存里面取出对应的响应(之前缓存过的),如果没有,返回null。然后会根据request和获取到的缓存的response生成一个缓存策略CacheStrategy。@Override public Response inte...
2018-04-06 19:37:00
164
原创 okhttp之CallServerInterceptor 分析
CallServerInterceptor是okhttp中的最后一个拦截器,用来向服务器发送客户端的请求数据,并且封装服务器返回来的Response。开始分析代码:@Override public Response intercept(Chain chain) throws IOException {RealInterceptorChain realC...
2018-04-05 22:01:00
200
原创 AIDL生成的java文件分析
aidl生成的java代码是一个接口文件,这个接口继承了android.os.IInterface,这个接口生成的java文件中一共包括两个部分:1、静态内部抽象类Stub2、声明了具体的功能的抽象方法(aidl文件中声明的方法)如图:1.png看来这个类的重点就是在Stub中了,主要来分析一下Stub类。文字不够,图片来凑:...
2018-03-02 16:36:00
768
原创 DiskLruCache源码解析
DiskLruCache是一种使用有限数量的缓存空间来缓存文件的硬盘缓存,采用了最近最少使用策略在一定的空间大小下来缓存经常使用到的文件。在许多方面都有用到,比如移动开发中的图片在硬盘缓存时,经常用到的就是DiskLruCache.journal文件DiskLruCache中最重要的应该是一个叫journal的文件,这个文件记录了对缓存文件的所有操作,...
2017-05-08 23:30:00
184
原创 Android属性动画
Android动画分为三种:1.Tween动画,也叫补间动画 2.帧动画 3.属性动画。今天要说的就是第三种动画,属性动画。属性动画主要是改变对象本身的属性来形成的动画。属性动画是Android3.0以后才开始引用的,所以只有在3.0以上才能够使用,如果要兼容3.0以下的,需要使用开源库。下面就来简单介绍以下属性动画的基本用法。属性动画主要包括:A...
2016-11-15 11:04:00
165
原创 关于Jni开发中遇到的问题undefined reference to `__android_log_print'
前几天用到了jni,在开发中遇到一问题,就是我在android studio的c代码中添加了一个打印log的代码,如下: #include <android/log.h> //#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__) //#de...
2016-10-12 17:48:00
670
1
原创 ImageLoader图片加载流程分析
ImageLoader加载图片的方法有两种:1.loadImage2.displayImage经过查看源码,发现其实两种加载方法最终是一样的,因为loadImage方法最终也是调用的displayImage方法。代码如下:所以分析ImageLoader加载图片流程时,只需分析displayImage()方法就OK了。下面就开始分析...
2016-07-03 16:42:00
358
原创 Android自定义Dialog
在开发中,我们经常会用到一些自定义布局的对话框。每次自己写的时候,经常会遇到一些细小的问题需要上网来解决,所以干脆把经常遇到的几个问题总结了一下,这样就可以愉快自定义dialog了。本文主要总结的问题有:1.对话框的大小、位置 2.对话框的主题自定义dialog的大小、位置自定义对话框的大小对话框的大小的设置有两种方法:1.通过WindowM...
2016-06-04 21:35:00
154
1
原创 关于Viewpager中的Fragment 滑动时保存状态的问题
之前遇到了在ViewPager中使用Fragment的情况,结果遇到了一个问题就是当viewPager划过去,再滑动回来后之前的fragment又回到了初始化的状态。所以就研究了一下。网上搜了一下,大部分都是说这个FragmentPagerAdapter和FragmentStatePagerAdapter的。总结下来,主要是FragmentPagerAdapter会将每一个生成的fragment都
2014-12-22 17:04:23
9505
8
原创 android sqlite简单的sql语句介绍
看android sqlite的sql语句 不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。sqlite的数据类型:1.NULL:空值。2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。3.REAL:浮点数字,存储为8-byte IEEE浮点数。4.TEXT:字符串文本。5.BLOB:二进制对象。
2014-12-09 22:12:03
4971
原创 泛型
------- android培训、java培训、期待与您交流! ---------泛型:JDK1.5版本以后出现新特性。用于解决安全问题,是一个类型安全机制。表明这个集合要装的数据类型是哪种类型。好处1.将运行时期出现问题ClassCastException,转移到了编译时期。,方便于程序员解决问题。让运行时问题减少,安全。2,避免了强制转换麻烦。泛型格式:通过来
2013-05-29 09:00:46
466
原创 设计模式
------- android培训、java培训、期待与您交流! ---------设计模式:解决某一类问题最行之有效的方法。java中23种设计模式,仅总结了4中设计模式:单例设计模式、模板方法设计模式、装设设计模式和享元设计模式。单例设计模式:解决一个类在内存只存在一个对象,想要保证对象唯一。1,为了避免其他程序过多建立该类对象。先禁止其他程序建立该
2013-05-29 00:16:00
512
原创 交通灯管理系统
------- android培训、java培训、期待与您交流! ----------面向对象的分析与设计先初步设想一下有哪些对象:红绿灯,红绿灯的控制系统,汽车,路线。汽车看到自己所在路线对应的灯绿了就穿过路口吗?不是,还需要看其前面是否有车,看前面是否有车,该问哪个对象呢?该问路,路中存储着车辆的集合,显然路上就应该有增加车辆和减少车辆的方法了。再看题目,我们这里并
2013-05-28 22:27:49
595
原创 银行业务调度系统
------- android培训、java培训、期待与您交流! ----------面向对象的分析与设计有三种对应类型的客户:VIP客户,普通客户,快速客户 ,异步随机生成各种类型的客户,各类型客户在其对应窗口按顺序依次办理业务 。首先,每一个客户其实就是由银行的一个取号机器产生号码的方式来表示的。所以,要有一个号码管理器对象,让这个对象不断地产生号码,就等于
2013-05-28 19:36:30
472
原创 代理
------- android培训、java培训、期待与您交流! ----------动态代理技术可以动态的生成一段内部有一个被扩展类引用的代码,生成的类类似于用组合这种方式,并把它动态的编译成class文件,然后装载进jvm中执行。著名的框架Spring的核心技术之一aop就是使用的就是动态代理技术。 Java中为动态代理提供了支持,用到了类Proxy用于产生代理,还
2013-05-28 14:23:14
553
原创 反射
------- android培训、java培训、期待与您交流! ----------反射就是把Java类中的各个成分映射成相应的java类。Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class。也就是说Class类是描述类的类。正如众多的人用一个Person类表示,众多的Java类用一个Class类表示。Class类代表Java类,它
2013-05-28 13:53:22
495
原创 IO流中的输入输出流
------- android培训、java培训、期待与您交流! ----------IO流大体上分为字符流和字节流:字节流包括两个基类:字节输入流InputStream 和 字节输出流OutputStream字符流两个基类:字符输入流Reader 和 字符输出流Writer字符流的特点: 数据的最常见体现形式是:文件。字符流最适用于操作的就是文件。比如在硬盘
2013-05-25 12:52:50
568
原创 关于集合的总结
------- android培训、java培训、期待与您交流! ----------主要讲解集合类中Collection和Map两种集合。Collectin主要包括两种类型:1、 List集合该集合的特点是有序,并且其元素可以重复。List集合中又包括以下三种集合:ArrayList:其底层数据结构为数组数据结构,这种数据结构的特点是查
2013-05-19 13:44:11
571
原创 关于线程的总结
------- android培训、java培训、期待与您交流! ----------进程:是一个正在执行中的程序。 每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。 线程:就是进程中的一个独立的控制单元。线程在控制着进程的执行。一个进程中至少有一个线程。JavaVM 启动的时候会有一个进程java.exe. 该进程中至少一个线程
2013-05-19 10:34:32
511
原创 关于异常的总结
------- android培训、java培训、期待与您交流! ----------异常:就是程序在运行时出现不正常情况。异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象。其实就是java对不正常情况进行描述后的对象体现。对于问题的划分:两种:一种是严重的问题(Error),一种非严重的问题(Exception)。 对
2013-05-14 14:21:54
502
原创 内部类的总结
------- android培训、java培训、期待与您交流! ----------一、内部类的访问规则:1.内部类可以直接访问外部类中的成员,包括私有。之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式外部类名.this程序如下:class outer{ Private int x=3; Class Inner{ int x=
2013-05-14 13:15:37
469
原创 静态的总结
------- android培训、java培训、期待与您交流! ----------静态中分为静态变量和静态方法两种:一、静态成员变量被static修饰的成员变量就叫做静态变量,也可以叫做类变量。静态变量的特点有如下几个方面:1、 随着类的加载而加载,随着类的消失而消失,存在时间和类被加载的时间一样。2、 静态变量被这个类的所有对象共享,这个变量是放在一个静态存储区域
2013-05-03 14:45:21
661
原创 集合类中关于HashSet类和TreeSet类的理解
------- android培训、java培训、期待与您交流! ----------Set:无序,不可以重复元素。HashSet和TreeSet均是Set集合的子类。HashSet:数据结构是哈希表。线程是非同步的。保证元素唯一性的原理:判断元素的hashCode值是否相同。如果相同,还会继续判断元素的equals方法,是否为true。HashSet类中对元素的存储是无序
2013-04-25 23:06:17
636
原创 关于正则表达式的总结
------- android培训、java培训、期待与您交流! ----------软件包java.util.regex 的描述用于匹配字符序列与正则表达式指定模式的类。 pattern 类的实例采用类似于 Perl 的语法来表示以字符串形式指定的正则表达式。 Matcher 类的实例用于匹配字符序列与给定模式。通过CharSequence 接口将输
2013-04-24 12:24:30
484
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人