- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 EventBus3
1.1 导入组件:打开App的build.gradle,在dependencies中添加最新的EventBus依赖:compile 'org.greenrobot:eventbus:3.0.0'1.2 初始化EventBusEventBus默认有一个单例,可以通过getDefault()获取,也可以通过EventBus.builder()构造自定义的EventBus,比
2016-09-04 00:56:51
326
转载 RecyclerView
转载请标明出处: http://blog.youkuaiyun.com/lmj623565791/article/details/45059587; 本文出自:【张鸿洋的博客】 通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果。你想要控制其显示的方式,请通过布局管理器LayoutManager你想要控制
2016-09-03 22:08:57
254
原创 多渠道打包
多渠道打包第一:添加签名信息第二:签名配置重新构建第二、实现多渠道打包1:添加渠道配置友盟 TalkingData第一:添加签名信息2:添加渠道(build.gradle中 android 中添加)第一:添加签名信息2:添加渠道(build.gradle中 android 中添加)第一:添
2016-09-03 17:47:52
220
原创 android中的存储方式有哪些
1.SharePreference2.SQLite3.File4.ContentProviderSharedPreference:SharedPreference是一种轻型的数据存储方式,实际上是基于XML文件存储的“key-value”键值对数据。通常用来存储程序的一些配置信息。其存储在“data/data/程序包名/shared_prefs目录下。SharedPreference
2016-09-03 17:08:29
277
原创 安作用卓中 activity intent contentprovider service各起到什么作用
Activity:Android组件中最基本也是最为常见用的四大组件之一,Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。 Intent:中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述
2016-09-03 16:57:52
1055
原创 内存泄漏和内存溢出的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。一个是收不回,一个是
2016-09-03 16:52:51
237
原创 简述ajax的原理,如何实现刷新数据及优点
1.AJAX的工作原理Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做, 只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。2 刷新数据Ajax其核心有JavaScript、XMLHTTPRequest、DOM对象组
2016-09-03 16:12:00
3315
原创 String 与StringBuffer、StringBuilder的区别
String 1,Stirng是对象不是基本数据类型 2,String是final类,不能被继承。是不可变对象,一旦创建,就不能修改它的值。 3,对于已经存在的Stirng对象,修改它的值,就是重新创建一个对象,然后将新值赋予这个对象 StringBuffer 1,一个类似于 String 的字符串缓冲区,对它的修改的不会像String那样重创建对象。 2,使用append
2016-09-03 15:12:39
217
原创 abstract class和interface的区别
在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。1.相同点 A. 两者都是抽象类,都不能实例化。 B. interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法。2. 不同点 A. interface需要实现,要用im
2016-09-03 13:03:35
289
原创 数组与链表的优缺点
数组: 优点: 使用方便,查询效率比链表高,内存为连续的区域 缺点: 大小固定,不适合动态存储,不方便动态添加链表: 优点: 可动态添加删除 大小可变 缺点: 只能通过顺次指针访问,查询效率低
2016-09-03 12:44:10
303
原创 哈希表的特点
哈希表是种数据结构,它可以提供快速的插入操作和查找操作。哈希表也有一些缺点它是基于数组的,数组创建后难于扩展某些哈希表被基本填满时,性能下降得非常严重。这个问题是哈希表不可避免的,即冲突现象:对不同的关键字可能得到同一哈希地址。如果两个同学分别叫 刘丽 刘兰,当加入刘兰时,地址24发生了冲突,我们可以以某种规律使用其它的存储位置,如果选择的一个其它位置仍有冲突,则再选下一个,直到找到没
2016-09-03 12:26:19
1714
原创 5.o新特新
1. 简介 0.1 Material Design 0.5.2 可以变更标题栏和ActionBar的颜色 0.5.3 其他的控件和动画展示 0.5.4 Material完整效果在5.0以上版本原生提供,Support包的兼容性无法做到完全一样2. 自定义状态栏、标题栏、导航栏的颜色3. 阴影 2.1 z = eleva
2016-09-02 18:07:25
521
原创 rxjava
RxJava 到底是什么一个词:异步。RxJava 的优势也是简洁,但它的简洁的与众不同之处在于,随着程序逻辑变得越来越复杂,它依然能够保持简洁。1. 概念:扩展的观察者模式观察者模式面向的需求是:A 对象(观察者)对 B 对象(被观察者)的某种变化高度敏感,需要在 B 变化的一瞬间做出反应。举个例子,新闻里喜闻乐见的警察抓小偷,警察需要在小偷伸手作案的时候
2016-09-02 17:19:09
245
原创 jni
what?JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)how?下载ndk在gradle中配置 ndk
2016-09-02 16:03:01
185
原创 dagger
how1.1 构建依赖我们首先想到的是,将创建UserModel的代码独立出来,这样可以保证MainActivity的代码不被修改1.2 构建Injector有了提供依赖的组件,我们还需要将依赖注入到需要的对象中1.3 完成依赖注入最后,我们需要在MainActivity中构建Injector对象,完成注入
2016-09-02 01:16:28
242
原创 retrofit+okhttp+rxjava
概念Rx是响应式编程的意思, 本质是观察者模式, 是以被观察者(Observerable)和订阅者(Subscriber)其实就是(observer观察者)为基础的异步响应方式。RxAndroid来源于RxJava, 在RxJava的基础上扩展了一些Android的功能。RxAndroid最核心的两个东西是Observables(被观察者,事件源)和Subscriber
2016-09-01 23:50:06
423
原创 binder连接池
why?产生原因:因为当有多个不同的业务块都要使用AIDL来进行通信,则需要创建多个Service,每创建一个Service就需要消耗系统资源。解决思路:将所有的AIDL放在一个Service中处理how?创建BinderPool连接池:1.单例模式:整个app只能创建一个对象2.创建IBinderPool的静态类:重写接口3.创建该
2016-09-01 22:48:10
286
原创 contentprovider
what:ContentProvider(内容提供者)是Android中的四大组件之一。主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作function:2.ContentResolver当外部应用需要对ContentProvider中的数据进行添加、
2016-09-01 20:16:04
186
原创 aidl
what:Interface definition language,function:aidl可以定义并实现进程通信how:实现你定义aidl接口中的内部抽象类Stub,public static abstract class Stub extends android.os.Binder implements com.cao.android.demos.bin
2016-09-01 20:01:58
243
原创 bundle
function:Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值。相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法,如:putString()/getString()和putInt()/getInt(),putXxx()用于往Bundle对象放入数据,getXxx()方法用于从Bundle对象里获取数据。Bundle的内部
2016-09-01 20:00:10
206
原创 安卓系统序列化机制
reason?1.永久性保存对象,保存对象的字节序列到本地文件中;2.对象在网络中传递;3.对象在IPC间传递。用于在activities之间传递Intent参数时,如果需要传递的的是对象(pass objects to activities),使用序列化就可以方便的传递。compare:1.Serializable在序列化的时候会产生大量的
2016-09-01 18:34:58
184
原创 AsyncTask
why?Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。为了简化操作,Android1.5提供了工具类android.os.AsyncTask,它使创建异步任务变得更加简单,不再需要编写任务线程
2016-09-01 17:03:03
504
原创 百分比布局
why Android 增强版百分比布局库 为了适配而扩展whatAndroid5.0+(Percent 百分比布局)两种布局供大家使用: PercentRelativeLayout、PercentFrameLayout,通过名字就可以看出,这是继承自FrameLayout和RelativeLayout两个容器
2016-09-01 17:00:23
460
原创 代理对象
why在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用function代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,并且可以在不改变目标对象的情况下添加一些额外的功能并且可以在不改变目标对象的情况下添加一些
2016-09-01 11:27:53
840
原创 观察者模式
what 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己'why 将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。观察者就是解
2016-09-01 11:09:30
150
原创 crash
why?一、为什么要Crashcrash可以理解成堕落,垮台。按照我们通俗理解就是android App 因为不可预知的因素导致奔溃。即使我们的程序发布前,经历了很多的测试,但是经过无数用户各种使用情况之后,可能会发生意想不到的crash.为了及时反馈bug,通常我们都需要一个crash机制,以让开发人员尽快了解到问题所在,在下个版本中及时改进。Appl
2016-09-01 09:35:42
306
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人