跟我一起写EventBus(四)

项目链接 xBus 项目GitHub地址 系列文章 跟我一起写EventBus(一) 跟我一起写EventBus(二) 跟我一起写EventBus(三) 概述前面三部分我们已经实现了一个完整的 EventBus ,这一部分主要是优化和增强,包括事件类型模糊匹配和缓存优化,还有扩展功能和高级用法。 方法缓存Java中的反射虽然速度已经很快,但相对于正常的方法调用来说还是慢很多,使用注解也有不小的性能成本,但是通过使用缓存,一次查找多次

Read More...

跟我一起写EventBus(三)

项目链接 xBus 项目GitHub地址 概述在 跟我一起写EventBus(一) 里实现了一个非常粗糙的EventBus,在 跟我一起写EventBus(二) ,又增加了基类中注册和事件类型宽泛匹配的功能,这一节需要加上在不同线程分发事件的功能,下面会详细解释事件的分发流程。 在不同的线程分发事件(即在指定的线程调用使用了 @BusReceiver 注解的事件接收器的方法),主要支持三种线程: 事件发送者(调用 post(even

Read More...

跟我一起写EventBus(二)

项目链接 xBus 项目GitHub地址 概述在 跟我一起写EventBus(一) 里我们实现了一个非常粗糙的EventBus,在这一节里面我们要给这个EventBus添加以下两个功能: 支持在基类中调用 register(target) 注册,调用 unregister(target) 取消注册 发送事件时, post(event) 支持匹配基类的事件接收器 基类注册支持 register 和 unregister 在基类中使用

Read More...

跟我一起写EventBus(一)

项目链接 xBus 项目GitHub地址 什么是EventBus先介绍一下概念, EventBus 直译过来就是事件总线,它使用发布订阅模式支持组件之间的通信,不需要显式地注册回调,比观察者模式更灵活,可用于替换Java中传统的事件监听模式,EventBus的作用就是解耦,它不是通用的发布订阅系统,也不能用于进程间通信。可用于Android的EventBus库主要有这几个:Google出品的Guava,Guava是一个庞大的库,Eve

Read More...

Android开发杂记(三)

这是另一部分的Android开发笔记整理 ###如何完全不显示一个Activity的UI可以使用 android:theme="@android:style/Theme.NoDisplay" 但是有一个注意事项,见how to completely get rid of an activity’s GUI ###如何移除ActionBar底部的阴影自定义ActionBar的Style,使用 <item name

Read More...

Android开发杂记(二)

2013年下半年的Android开发过程中记录的一些经验和教训,整理出来一部分 ###Fragment的状态恢复问题 [20131218] 在FragmentActivity里,如果存在Fragment,系统恢复被销毁的Activity的同时会回复所有FragmentManager里的Fragment列表,然后添加到当前的Activity中,但问题是,Fragment虽然恢复了,状态却没有回复,这些都需要在onCreate或onRest

Read More...

Android XML Shape使用入门

XMLDrawable是google为android定义的一种声明式图形文件格式,类似于SVG,但更简单,官方文档非常少,网上有人整理了一份文档,值得细看: Android Drawable XMLDocumentation 下面是一个简单的使用例子: Activity代码 123456789101112package com.test;import android.app.Activity; import android.os.

Read More...

Android开发杂记(一)

这些是这半年做Android开发的小部分技巧记录,摘录自我的Tweets,大部分没有发在Twitter上的以后想起来了再记一下 android:layout_alignLeft 指该控件距离边父控件的边距,android:paddingLeft 指该控件内部内容,如文本距离该控件的边距.当按钮分别设置以上两个属性时,效果不一样的 android:paddingLeft=”30px”,按钮上设置的内容(例如图片)离按钮左边边界30个像素

Read More...

Android IntentService使用简介

春节放假有点自己的时间,准备抽空做个饭否上传照片的工具,其中上传功能需要用到后台任务,Android上的后台任务主要有三种实现方式,一是按照常规的Java方式,自己写线程,二是使用SDK封装好的后台任务类AsyncTask,三是使用Service,线程和AsyncTask都是和Activity的生命周期绑定的,而Service有自己的独立生命周期,考虑到以后的扩展和代码的清晰,决定使用Service,看到国外的博客和GoogleGrou

Read More...

Android程序反编译流程

APK是AndroidPackage的简称,是Android平台安装包的标准封装格式,实际上是标准的zip压缩文件,里面包含清单文件,数字签名文件,压缩后的资源文件,以及二进制dex字节码文件,Android程序的反编译包括两部分,三个流程,二部分是资源文件resources.arsc的反编译和字节码文件classes.dex的反编译;三流程是资源文件反编译为人类可读的XML文本格式和图片文件,字节码文件dex反编译为标准的Java压缩

Read More...