实用工具
丶如一
编程中最没用的东西是源代码,最有用的东西是算法和数据结构
展开
-
Android知识点复习整理
Thread、MessageQueue、Message、Looper、Handler关系及需要注意的地方Android任何一个Thread中都跟着一个Looper,Looper提供了MessageQueue。只要Thread拥有MessageQueue,别的线程就可以往其中添加Message。Looper.prepare(),Looper.loop(),Looper.release(). 如果不原创 2016-09-26 17:09:20 · 1716 阅读 · 0 评论 -
View的事件分发机制复习
MotionEvent 所谓点击事件的事件分发,其实就是对MotionEvent事件的分发过程。即当一个MotionEvent产生了以后,系统需要把这个事件传递给一个具体的View,而这个传递的过程就是分发过程。三个重要方法public boolean dispatchTouchEvent(MotionEvent ev) 用来进行事件的分发。如果事件能够传递给当前View,就一定会调用这个原创 2016-10-10 16:21:32 · 308 阅读 · 0 评论 -
Android 经典框架收集
网络请求Retrofit + RxAndroid 优点: 以接口/注解的形式定义请求和响应Square 开源的项目. 是一套RESTful架构的Android(Java)客户端实现,基于注解,提供JSON to POJO(Plain Ordinary Java Object,简单Java对象),POJO to JSON,网络请求(POST,GET,PUT,DELETE等)封装。 本身原创 2016-10-09 10:58:39 · 458 阅读 · 0 评论 -
设计模式(全)
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池转载 2016-06-23 17:16:43 · 487 阅读 · 10 评论 -
Android学习笔记----解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题
同时在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件。解决办法如下:1、谷歌官方已经给出了相关的文档,参照网上搜索的资料,首先,我的问题是: 复制代码Error:Execution failed for task ‘:duchazhushou:dexRelease’. co转载 2016-06-23 17:18:04 · 517 阅读 · 0 评论 -
ReactNative 安装步骤
1、 JDK安装、环境变量配置 2、 Android SDK 安装 build tools 版本必须严格匹配23.0.1、环境变量配置 3、 Git 安装 4、 Python 必须为2.7.X 版本 5、 Node.js 安装 npm 版本必须为3.+ 6、 建议设置npm镜像以加速后面的过程(或使用科学上网工具)。 npm config set registry htt原创 2016-06-13 14:50:02 · 435 阅读 · 0 评论 -
AOP(面向切面编程 Aspect Oriented Programming)
AOP(面向切面编程 Aspect Oriented Programming)概念(百度百科)通过 预编译方式和运行期动态代理 实现 程序功能 的 统一维护 的一种技术。特点:低耦合,高聚合。 AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。OOP与AOP原创 2016-06-12 10:01:16 · 4855 阅读 · 0 评论 -
代理 及 注解
代理(Proxy)Proxy代理类的理解:在系统程序设计中,有时需要面对无法确定接口,却需要构造对象的情况。通过代理类,能够在不额外创建Java文件的情况下构造对象及调用该对象方法。(系统程序设计用得较多,应用程序设计遇到的情况比较少)代理类可以在运行时创建全新的类,这样的代理类能够实现指定的接口,尤其是,它具有下列方法: 指定接口所需要的全部方法。 Object类中的全部方法,例如:原创 2016-06-02 16:17:07 · 1024 阅读 · 0 评论 -
Android 简单特殊知识点
Android 简单特殊知识点View变灰色, 即实现灰度视图// 获取当前activity 的根ViewgetWindow().getDecorView().findViewById(android.R.id.content) // true 为灰, false 为正常 public void setGreyscale(View v, boolean greyscale) {转载 2015-11-02 15:03:16 · 576 阅读 · 0 评论 -
微信小程序
http://wxopen.notedown.cn/原创 2016-10-08 11:26:35 · 564 阅读 · 0 评论 -
ReactiveX/RxJava文档中文版
http://wiki.jikexueyuan.com/project/rx-docs/原创 2017-02-20 10:46:47 · 698 阅读 · 0 评论 -
Dialog 和 Popup Window 的区别
AlertDialog是非阻塞式对话框,而PopupWindow是阻塞式对话框 AlertDialog弹出时,后台还可以做事情;而PopupWindow弹出时,程序会等待,在PopupWindow退出前,程序一直等待,只有当我们调用了dismiss方法的后,PopupWindow退出,程序才会向下执行。这两种区别的表现是:AlertDialog弹出时,背景是黑色的,但是当我们点击背景,Aler原创 2017-04-07 09:44:51 · 1694 阅读 · 0 评论 -
Kotlin基础
一、 函数与变量函数1. 函数特征 fun 关键字 参数声明 如: arg1:Int, arg2:Array<String> 函数不一定要放在类中,可以放在文件的最外层 数组也是类 有些方法可以简化,如 println 可以直接使用 可以省略末尾的分好 返回值同参数声明,同类字段声明都是冒号隔开 函数体是单个表达式的可以省略花括号 可以推出来原创 2017-11-06 17:18:21 · 377 阅读 · 0 评论 -
android:singleLine ="true" 过时
android:singleLine =”true” 过时,会导致莫名其妙的错误。 解决方法: android:lines=”1”原创 2017-04-24 15:01:38 · 1707 阅读 · 0 评论 -
各种常用第三方包地址
各种资源 开源项目 https://github.com/kHRYSTAL/AndroidStarArchive/tree/master/app RxJava https://github.com/ReactiveX/RxJava RxAndroid https://github.com/ReactiveX/RxAndroid RxLifecycle h原创 2017-04-26 10:52:51 · 790 阅读 · 0 评论 -
Android Support Library
com.android.support:support-annotations:23.1.1Nullness注解 Nullable 作用于函数参数或者返回值,标记参数或者返回值可以为空。 NonNull 作用于函数参数或者返回值,标记参数或者返回值不可以为空。如果违反,会出现警告 资源类型注解 AnyRes: 标记整型值是 任何一种资源类型 AnimatorRes:原创 2017-05-03 16:13:18 · 693 阅读 · 1 评论 -
android 插件框架机制
android 插件框架机制原创 2017-05-11 16:55:25 · 589 阅读 · 1 评论 -
Android 过渡动画(Transition Animation)
放个标题在这慢慢补充原创 2017-05-03 09:37:51 · 888 阅读 · 2 评论 -
Glide 使用
/** * 使用glide下载图片 glide 默认缓存 * Created by wangyy on 2017/3/22. */public class ImageLoaderUtils { /*gif 图片也可以使用 但gif 不能放在圆形控件里面*/ public static void loadImageFromUri(Context context, String原创 2017-03-22 14:18:40 · 310 阅读 · 0 评论 -
RxJava 各种操作符(2、3)
RxJava 各种操作符(2) - Transforming Observables buffer, FlatMap, GroupBy, Map, Scan, Windowbufferbuffer操作符周期性地收集源Observable产生的结果到列表中,并把这个列表提交给订阅者,订阅者处理后,清空buffer列表,同时接收下一次收集的结果并提交给订阅者,周而复始。一旦源Observabl转载 2015-10-29 18:14:38 · 1421 阅读 · 0 评论 -
RxJava 各种操作符(1)
RxJava 各种操作符(1) - Creating Observables Create, Defer, Empty/Never/Throw, From, Interval, Just, Range, Repeat, Start, and TimerCreatecreate操作符是所有创建型操作符的“根”,也就是说其他创建型操作符最后都是通过create操作符来创建Observable的.转载 2015-10-27 15:17:36 · 2787 阅读 · 0 评论 -
Core Java 结合 android 新发现(一)
对于时间格式化显示问题string.xml <string name="now_time">当前时间是:%1$tF %1$tR</string>textviewTextView view = (TextView)findViewById(R.id.helloworld);view.setText(getResources().getString(R.string.now_time, n原创 2015-06-05 11:33:35 · 317 阅读 · 0 评论 -
Core Java 学习(三) - 继承设计技巧
继承设计技巧公共操作和域放在超类不要使用 protected 的域使用继承实现 is - a 关系除非所有的继承的方法都有意义,否则不要使用继承在覆盖方法时,不要改变预期的行为使用多态,而非类型信息不要过多地使用反射原创 2015-06-24 14:17:32 · 429 阅读 · 0 评论 -
Comparable与Comparator的区别
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.util下,而Comparable位于包转载 2015-06-24 14:52:04 · 349 阅读 · 0 评论 -
Core Java 笔记(三) - 反射
Class类 - 运行时的类型标记Class 对象表示一个特定类的属性Student student;Class cl = student.getClass();getName() 获取类名Student student;Class cl = student.getClass();String name = cl.getName();Class 的静态方法 forName() 获得类原创 2015-06-18 11:21:46 · 432 阅读 · 0 评论 -
activity 的启动模式 详细实验报告。。。
activity 的启动模式有4种: “standard” (默认模式), “singleTop”,”singleTask”,”singleInstance”四种模式的作用:文档中解释的 intent.setFlags 中的 Flag测试1:manifest中未设置启动模式(即使用默认的启动模式),MainActivity一开始已经有启动 Intent intent = new Intent原创 2015-05-22 15:53:57 · 1477 阅读 · 2 评论 -
Android 中的 NFC
在了解NFC之前,需要先了解一下 射频识别技术1. 什么是NFC (参考百度百科)NFC近场通信技术是由非接触式射频识别(RFID)及互联互通技术整合演变而来,在单一芯片上结合感应式读卡器、感应式卡片和点对点的功能,能在短距离内与兼容设备进行识别和数据交换。工作频率为13.56MHz.但是使用这种手机支付方案的用户必须更换特制的手机。目前这项技术在日韩被广泛应用。手机用原创 2015-04-10 11:00:41 · 1226 阅读 · 0 评论 -
eclipse 打开直接关闭 的时候。。。。。。
eclipse 打开直接关闭可能你是个很急躁的人。。。可能你突然之间因为着急所以做出了例如 因为非常卡 所以直接结束进程,导致再次启动 eclipse时打开直接关闭的情况。。。重启电脑都没有用的时候,你可以参照如下操作。。。。1、打开"\eclipse\configuration\.settings\org.eclipse.ui.ide.prefs", 将"SHOW_W原创 2015-04-17 17:03:26 · 2427 阅读 · 0 评论 -
Android AmS 中比较重要的几个系统常量
Android AmS 中比较重要的几个系统常量以下截图来自: 《Android内核剖析》原创 2015-03-30 09:45:38 · 481 阅读 · 0 评论 -
Activity属性[全]
activity属性设置大全android:allowTaskReparenting=["true" | "false"] 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。android:alwaysRetainTaskState=["true" | "false"] 是否保留状态不变, 比如切换回home, 再从新打开,转载 2015-03-25 14:31:14 · 314 阅读 · 0 评论 -
Core Java 笔记(二)
this 关键字 和 super 关键字this关键字作用:1、引用隐式参数,2、调用该类的其他的构造器。super关键字作用:1、调用超类的方法,2、调用超类的构造器。动态绑定(继承中,在运行时,自动选择哪个方法执行)查看对象的声明类型及方法名查看调用方法时的参数类型(方法名+参数列表 为方法的签名,返回值不是;即不能有方法名一样,参数列表一样,返回值不同的方法)。从子类开始查找,再查原创 2015-06-09 17:59:18 · 414 阅读 · 0 评论 -
Android中Bitmap和Drawable [转]
一、相关概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的目的区域,用于绘图3、Bitmap位图,用于图的处理4、Matrix矩阵二、Bitmap 1、从资源中获取Bitmap Java代码转载 2015-07-08 15:42:07 · 294 阅读 · 0 评论 -
RecyclerView 的使用详解
什么是 RecyclerView? 请度娘。。。本文只介绍RecyclerView 的常规使用,基本问题都已经解决。xml文件<android.support.v7.widget.RecyclerView android:id="@+id/recyler_view" android:layout_width="match_parent" android:layout_heig原创 2015-05-28 11:12:50 · 3877 阅读 · 0 评论 -
单立模式 Java
单立模式 - 确保一个类只有一个实例,并提供全局访问点一:同步getInstance方法缺点:如果频繁调用getInstance,同步会导致代码执行效率下降100倍,而且当uniqueInstance已经被实例化的时候,同步显得累赘。public class Singleton{ private static Singleton uniqueInstance; private S原创 2015-09-24 10:31:10 · 463 阅读 · 0 评论 -
android studio 目录结构
build:构建目录,相当于Eclipse中默认Java工程的bin目录。libs:依赖包src: main - java Java代码 - res 资源文件 - - layout App布局及界面元素配置 - - menu App菜单配置 - - values - - - dimens.xm转载 2015-06-18 11:24:05 · 337 阅读 · 0 评论 -
Android 绘制渐变梯形,其他图形同理
// LinearGradient 第一个参数第二个参数为 起始位置x,y 三四参数为终点位置x,y。 // 如果x不变则为y轴渐变, y不变则为x轴渐变 // 第五个参数为颜色渐变,此处为红色渐变为绿色 // 第七个参数为渐变次数,可repeat Shader mShader=new LinearGradient(0, 500, 0, 0,原创 2015-11-09 15:16:37 · 6809 阅读 · 0 评论 -
常用viewpager动画效果实现
/** * position参数指明给定页面相对于屏幕中心的位置。它是一个动态属性,会随着页面的滚动而改变。当一个页面填充整个屏幕是,它的值是0, * 当一个页面刚刚离开屏幕的右边时 * ,它的值是1。当两个也页面分别滚动到一半时,其中一个页面的位置是-0.5,另一个页面的位置是0.5。基于屏幕上页面的位置 * ,通过使用诸如setAlpha * ()、setTranslationX()、原创 2015-10-23 14:14:51 · 414 阅读 · 0 评论 -
Matrix 简介
Matrix 在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵图片的处理分为四个基本类型:Translate 平移变换Scale 缩放变换Rotate 旋转变换Skew 错切变换图片变换的三种操作方式set(用于设置Matrix中的值)post(后乘,根据矩阵的原理,相当于左乘)pre(先乘,相当于矩阵中的右乘) 默认时,这四种变换原创 2015-11-03 16:44:39 · 857 阅读 · 0 评论 -
RecyclerView 动画 (添加、删除动画 以及 加载item 时的动画)
github地址: https://github.com/wasabeef/recyclerview-animators感谢作者。转载 2015-08-04 15:40:58 · 7202 阅读 · 0 评论 -
Volley全解析
什么是VolleyVolley 的单词涵义是:迸发、万箭齐发。 是比喻的命名方式,寓指网络请求并发效率高。Volley 的重要方法mQueue = Volley.newRequestQueue(context); public static RequestQueue newRequestQueue(Context context, HttpStack stack) {原创 2015-07-22 11:00:16 · 470 阅读 · 0 评论