- 博客(51)
- 资源 (2)
- 收藏
- 关注
原创 Android Touch 事件的分发和消费机制
本文改自转载:Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup 及其子类、Activity。方法与控件的对应关系如下表所示...
2019-06-28 15:12:21
564
转载 Android开发知识点
1、RecyclerView计算滑动距离2、最全的Android 颜色透明度3、Android样式的开发4、用SpannableString打造绚丽多彩的文本显示效果5、Android自定义控件三部曲文章索引6、判断RecyclerView到达底部的方法7、用ColorFilter为安卓按钮增加效果8、PageTransformer实现一个层叠的卡片9、制作圆形图片...
2019-02-20 20:16:47
165
原创 正则表达式的规则
A:字符 x 字符 x。举例:'a'表示字符a \\ 反斜线字符。 \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') B:字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范...
2018-11-13 20:47:05
244
原创 原型模式
原型模式:* 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。* 优点:* 1、性能优良* 原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式 可以更好地体现其优点。* 2、逃避构造函数的约束* 这既是它的优点也是缺点,直接在内存中拷贝,构造函数是不会执行的** 使用场景:* 1...
2018-11-12 20:19:24
139
原创 监听者模式
// 执行者接口interface Subject { public String doSomething(int state);}class ConcreteSubject{ private Subject subject; public void setSubject(Subject subject) { this.subject = subject; } pub...
2018-11-12 20:18:31
159
原创 模板模式
模板模式:* 优点:* 1、封装不变部分,扩展可变部分* 2、提取公共部分,便于维护* 3、行为由父类控制,子类实现** 缺点:* 一般设计习惯,抽象类负责声明最抽象、最一般的事物的属性和方法,实现类完成具体的事物属性和方法。但是模板模式却颠倒* 了过来,抽象类定义了部分抽象方法,由子类来实现,子类执行的结果影响了父类的结果,也就是子类对父类产生了影响,这在* ...
2018-11-12 20:17:22
108
原创 建造者模式
建造者模式* @author Administrator* 优点:* 1、封装性* 2、建造者独立,容易扩展* 3、便于控制细节风险** 适用场景:* 1、相同方法,不同的执行顺序,产生不同的事件结果时* 2、多个部件或者零件,都可以转配到一个对象中,但是生产出来的运行结果又不相同时* 3、产品非常复杂,或者产品类中的调用顺序不同产生了不同的效能* 4、...
2018-11-08 21:14:42
116
原创 单例模式
单例模式* @author Administrator*饿汉*优点:* 1、由于单例模式在内存中只有一个实例,减少了内存的开支,特别是一个对象需要频繁地创建、销毁时,而且创建或者销毁时的性能又无法优化* 2、单例模式减少对资源的多重占用* 3、优化共享资源**缺点:* 1、单例模式一般没有接口,扩展困难* 2、单例对测试不利。在并行开发环境中,如果单例没...
2018-11-08 21:13:50
112
原创 适配器模式
适配器模式* @author Administrator*优点:* 1、适配器模式可以让两个没有任何关系的类在一起运行,只要适配器这个角色能够搞定他们就行* 2、增加了类的透明性* 3、提高了类的复用度* 4、灵活性非常好*使用场景:* 你有动机修改一个已经投产中的接口时,适配器模式可能是最适合你的模式。比如:系统扩展了,需要使用一个* 已有的或者新建立的类,但...
2018-11-08 21:12:58
117
原创 代理者模式
* 动态代理** @author Administrator* 动态代理的主要意图就是解决审计问题,也就是横切面编程,在不改变我们已有代码结构的情况下增强或控制对象的行为。* 动态代理实现代理的职责,业务逻辑Subject实现相关的逻辑功能,两者之间没有必然的相互耦合关系。* 通知从另一个切面切入,最终在高层模块也就是Client进行耦合 完成逻辑封装任务。* 要实现动态代...
2018-11-08 21:11:52
134
原创 装饰者模式
装饰者模式: 优点:1、装饰类和被装饰类可以独立发展,而不会互相耦合。2、装饰模式是继承关系的一个替代方案3、装饰模式可以动态地扩展一个实现类的功能 缺点: 对于装饰者模式多层的装饰是比较复杂的 使用场景:1、需要扩展一个类的功能,或者给一个类增加附加的功能2、需要动态地给一个对象增加功能,这些功能可以再动态地撤销3、需要为一批兄弟类进行改装或加装功...
2018-11-08 21:10:37
150
原创 工厂模式
简单工厂模式有如下缺点,而工厂方法模式可以解决这些问题:由于工厂类集中了所有实例的创建逻辑,这就直接导致一旦这个工厂出了问题,所有的客户端都会受到牵连。 由于简单工厂模式的产品是基于一个共同的抽象类或者接口,这样一来,产品的种类增加的时候,即有不同的产品接口或者抽象类的时候,工厂类就需要判断何时创建何种接口的产品,这就和创建何种种类的产品相互混淆在了一起,违背了单一职责原则,导致系统丧失灵活...
2018-11-08 21:09:41
128
原创 抽象工厂模式
抽象工厂模式优点 因为每个具体工厂类只负责创建产品,没有简单工厂中的逻辑判断,因此符合单一职责原则。 与简单工厂模式不同,抽象工厂并不使用静态工厂方法,可以形成基于继承的等级结构。 新增一个产品族(如上文类图中的MySQLUserDao,MySQLRoleDao,MySQLProductDao)时,只需要增加相应的具体产品和对应的具体工厂类即可。相比于简单工厂模式需要修改判断逻辑而言,...
2018-11-08 21:08:35
170
原创 观察者模式
观察者模式的优点:* 1、观察者和被观察者之间是抽象耦合* 2、建立一套触发机制(形成了一个触发链,观察者模式可以完美地实现这里的链条形式。)** 观察者模式的缺点:* 1、观察者模式需要考虑一下开发效率和运行效率问题,一个被观察者,多个观察者,开发和调试就会比较复杂,而且在Java中消息的通知默认是顺序执行,一个观察者卡壳,* 会影响整体的执行效率。在这种情况下,一般考虑...
2018-11-08 21:07:16
126
原创 观察者模式(Java自带实现类)
观察者模式的优点:* 1、观察者和被观察者之间是抽象耦合* 2、建立一套触发机制(形成了一个触发链,观察者模式可以完美地实现这里的链条形式。)*观察者模式的缺点:* 1、观察者模式需要考虑一下开发效率和运行效率问题,一个被观察者,多个观察者,开发和调试就会比较复杂,而且在Java中消息* 的通知默认是 顺序执行,一个观察者卡壳, 会影响整体的执行效率。在这种情况下,一般考虑...
2018-11-08 21:06:18
252
原创 责任链模式
责任链模式:* 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求, 直到有* 对象处理它为止。* 重点:* 重点是在“链”上,有一条链去处理相似的请求在链中决定谁去处理这个请求,并返回相应的结果。链是由多个处理者组成的。* 抽象的处理者必须实现三个职责:* 1、定义一个请求的处理方法HandlerMess...
2018-11-08 21:04:34
99
转载 组件通讯(二)
DfyProject01/** * Sample React Native App * https://github.com/facebook/react-native */import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, Image, Touch...
2018-09-02 15:48:20
343
转载 复杂的组件通讯(一)
DfyProject01/** * Sample React Native App * https://github.com/facebook/react-native */import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, Image, Touch...
2018-09-02 15:46:06
286
转载 物理back键(一)
DfyProject01/** * Sample React Native App * https://github.com/facebook/react-native */import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, Image,...
2018-09-02 15:42:52
430
转载 AsyncStorage
DfyProject01/** * Sample React Native App * https://github.com/facebook/react-native */import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, Image,...
2018-09-02 15:39:59
416
转载 react-native-side-menu
DfyProject01/** * Sample React Native App * https://github.com/facebook/react-native */import React, {Component} from 'react';import { AppRegistry, StyleSheet, Text, Image, ...
2018-09-02 15:35:31
499
转载 RN组件通讯(一)
DfyProject01/** * Sample React Native App * https://github.com/facebook/react-native */import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, Image, Touch...
2018-08-23 22:19:18
552
转载 ViewPagerAndroid
/** * Sample React Native App * https://github.com/facebook/react-native */'use strict';import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, ViewPag...
2018-08-22 23:37:07
382
转载 DrawerLayoutAndroid
/** * Sample React Native App * https://github.com/facebook/react-native */'use strict';import React, { Component } from 'react';import { AppRegistry, StyleSheet, PixelRatio, T...
2018-08-22 23:36:07
304
转载 Navigator
/** * Sample React Native App * https://github.com/facebook/react-native */'use strict';import React, { AppRegistry, Component, StyleSheet, PixelRatio, Navigator, Scroll...
2018-08-22 23:34:20
408
原创 Picker组件和箭头函数
Picker组件和箭头函数废话少说,直接上代码/** * Sample React Native App * https://github.com/facebook/react-native */'use strict';import React, { Component } from 'react';import { AppRegistry, StyleS...
2018-08-22 23:18:11
796
转载 开源轮播组件react-native-swiper
Button/** * Sample React Native App * https://github.com/facebook/react-native */import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, TouchableWit...
2018-08-22 23:06:16
766
转载 RN仿异步获取网络数据
Button/** * Sample React Native App * https://github.com/facebook/react-native */import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, Touchable...
2018-08-22 23:01:46
601
原创 Handler内存泄漏分析及解决
Handler内存泄漏分析及解决一、介绍首先,请浏览下面这段handler代码:public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override public void handleMessage(Message msg) {
2017-06-22 09:31:31
175
原创 Git操作
Git 操作git 命令创建本地仓库git init获取远程仓库git clone [url]例:git clone https://github.com/you/yourpro.git创建远程仓库// 添加一个新的 remote 远程仓库git remote add [remote-name] [url]例:git remote add origin https://github
2017-06-22 09:31:00
183
原创 Fragment
Fragment为何产生同时适配手机和平板、UI和逻辑的共享。介绍Fragment也会被加入回退栈中。Fragment拥有自己的生命周期和接受、处理用户的事件可以动态的添加、替换和移除某个Fragment生命周期必须依存于ActivityFragment依附于Activity的生命状态生命周期中那么多方法,懵逼了的话我们就一起来看一下每一个生命周期方法的含义吧。Fragment生命周期
2017-06-22 09:30:39
160
转载 EventBus用法详解
EventBus概述EventBus是一款针对Android优化的发布/订阅(publish/subscribe)事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅。以及将发送者和接收者解耦。比如请求网络,等网络返回时通过Handle
2017-06-22 09:29:58
245
转载 Bitmap的分析与使用
Bitmap的分析与使用Bitmap的创建创建Bitmap的时候,Java不提供new Bitmap()的形式去创建,而是通过BitmapFactory中的静态方法去创建,如:BitmapFactory.decodeStream(is);//通过InputStream去解析生成Bitmap(这里就不贴BitmapFactory中创建Bitmap的方法了,大家可以自己去看它的源码),我们跟进Bitm
2017-06-22 09:28:53
512
转载 Binder机制
Binder机制首先Binder是Android系统进程间通信(IPC)方式之一。Binder使用Client-Server通信方式。Binder框架定义了四个角色:Server,Client,ServiceManager以及Binder驱动。其中Server,Client,ServiceManager运行于用户空间,驱动运行于内核空间。Binder驱动程序提供设备文件/dev/binder与用户空
2017-06-22 09:28:29
173
转载 Asynctask源码分析
AsyncTask首先从Android3.0开始,系统要求网络访问必须在子线程中进行,否则网络访问将会失败并抛出NetworkOnMainThreadException这个异常,这样做是为了避免主线程由于耗时操作所阻塞从而出现ANR现象。AsyncTask封装了线程池和Handler。AsyncTask有两个线程池:SerialExecutor和THREAD_POOL_EXECUTOR。前者是用于任
2017-06-22 09:28:06
220
原创 Art和Dalvik区别
ART和Dalvik区别Art上应用启动快,运行快,但是耗费更多存储空间,安装时间长,总的来说ART的功效就是”空间换时间”。ART: Ahead of Time Dalvik: Just in Time什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一,它可以
2017-06-22 09:27:47
232
原创 APP启动过程
APP启动过程上图就可以很好的说明App启动的过程ActivityManagerService组织回退栈时以ActivityRecord为基本单位,所有的ActivityRecord放在同一个ArrayList里,可以将mHistory看作一个栈对象,索引0所指的对象位于栈底,索引mHistory.size()-1所指的对象位于栈顶Zygote进程孵化出新的应用进程后,会执行ActivityT
2017-06-22 09:27:31
186
转载 ANR问题
ANR1、ANR排错一般有三种类型KeyDispatchTimeout(5 seconds) –主要是类型按键或触摸事件在特定时间内无响应BroadcastTimeout(10 seconds) –BroadcastReceiver在特定时间内无法处理完成ServiceTimeout(20 secends) –小概率事件 Service在特定的时间内无法处理完成2、哪些操作会导致ANR 在
2017-06-22 09:27:13
267
转载 Android性能优化
Android性能优化合理管理内存节制的使用Service如果应用程序需要使用Service来执行后台任务的话,只有当任务正在执行的时候才应该让Service运行起来。当启动一个Service时,系统会倾向于将这个Service所依赖的进程进行保留,系统可以在LRUcache当中缓存的进程数量也会减少,导致切换程序的时候耗费更多性能。我们可以使用IntentService,当后台任务执行结束后会自动
2017-06-22 09:25:50
242
转载 Android系统机制
Android系统机制APP启动过程Launcher线程捕获onclick的点击事件,调用Launcher.startActivitySafely,进一步调用Launcher.startActivity,最后调用父类Activity的startActivity。Activity和ActivityManagerService交互,引入Instrumentation,将启动请求交给Instrumen
2017-06-22 09:24:45
297
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人