自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

江湖夜雨十年灯

天地悠悠,长风破浪会有时

  • 博客(24)
  • 收藏
  • 关注

转载 Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别

Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别如果你不带参数的实例化:Handler handler = new Handler();那么这个会默认用当前线程的looper一般而言,如果你的Handler是要来刷新操作UI的,那么就需要在主线程下跑。情况:1.要刷新UI,hand

2016-06-20 10:21:10 896

转载 避免Activity内存泄露

在android中context可以作很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。比如一个activity的onCreate:protected void onCreate(Bundle state

2016-06-15 10:48:48 307

转载 深入理解Android(一):Gradle详解

编者按:随着移动设备硬件能力的提升,Android系统开放的特质开始显现,各种开发的奇技淫巧、黑科技不断涌现,InfoQ特联合《深入理解Android》系列图书作者邓凡平,开设深入理解Android专栏,探索Android从框架到应用开发的奥秘。Gradle是当前非常“劲爆”的构建工具。本篇文章就是专为讲解Gradle而来。介绍Gradle之前,先说点题外话。一、题外话说实

2016-06-13 11:47:44 736

转载 Android Gradle Plugin指南(二)——基本项目

原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Basic-Project3、Basic Project(基本项目)一个Gradle项目的构建过程定义在build.gradle文件中,位于项目的根目录下。3.1 Simple build files(简单的构建

2016-06-13 09:25:00 644

转载 Android Gradle Plugin指南(五)——Build Variants(构建变种版本)

6、 Build Variants(构建变种版本) 新构建系统的一个目标就是允许为同一个应用创建不同的版本。这里有两个主要的使用情景:1、同一个应用的不同版本。例如一个免费的版本和一个收费的专业版本。2、同一个应用需要打包成不同的apk以发布Google Play Store。查看http://developer.android.com/google/p

2016-06-13 09:19:58 443

转载 Android批量打包

使用Ant或者Gradle来给程序进行多渠道批量打包,通常都是在manifest文件中写入一个meta标签:meta-data android:name="CHANNEL" android:value="xxx" />meta的key值固定,通过循环改变meta中的value值来实现市场渠道的写入。Ant批量打包实现相对麻烦,以前写的时候多亏了谦虚的天下-《App自动化之使用A

2016-06-12 17:04:07 366

转载 instanceof, isinstance,isAssignableFrom的区别

instanceof运算符 只被用于对象引用变量,检查左边的被测试对象 是不是 右边类或接口的 实例化。如果被测对象是null值,则测试结果总是false。 形象地:自身实例或子类实例 instanceof 自身类  返回true 例: String s=new String("javaisland");       System.out.println(s instanceof St

2016-06-07 14:14:19 277

转载 深入理解Java:注解(Annotation)--注解处理器

如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement):  Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Anno

2016-06-07 11:07:14 364

转载 Android -- Annotation

Override Annotation@Overridepublic void onCreate(Bundle savedInstanceState){};概念An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables,

2016-06-06 17:00:28 266

转载 Android EventBus源码解析 带你深入理解EventBus

1、概述一般使用EventBus的组件类,类似下面这种方式:[java] view plain copy public class SampleComponent extends Fragment  {        @Override      public void onCreate(Bundle savedInsta

2016-06-06 14:04:05 234

转载 EventBus使用详解(二)——EventBus使用进阶

一、概述前一篇给大家装简单演示了EventBus的onEventMainThread()函数的接收,其实EventBus还有另外有个不同的函数,他们分别是:1、onEvent2、onEventMainThread3、onEventBackgroundThread4、onEventAsync这四种订阅函数都是使用onEvent开头的,它们的功能稍有不同,在介绍

2016-06-06 07:44:44 244

转载 EventBus使用详解(一)——初步使用EventBus

一、概述EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。1、下载EventBus的类库源码:https://github.com/greenrobot/EventBus2、

2016-06-06 07:43:37 254

转载 EventBus事件总线——优雅地替换Handler

什么是EventBusEventBus是Android下高效的发布/订阅事件总线机制。作用是可以代替传统的Intent,Handler,Broadcast或接口函数在Fragment,Activity,Service,线程之间传递数据,执行方法。特点是代码简洁,是一种发布订阅设计模式(Publish/Subsribe),或称作观察者设计模式。下载EventBus1.

2016-06-06 07:41:49 538

转载 python: android批量多渠道打包

安卓市场太多,一个一个手动打包太累而且容易出错。看过有很多Ant批量打包的,还是想试试不一样的方法。举个例子,如友盟(真心不是给他打广告)的多渠道统计我们只是需要动态的修改这个channel_value,然后打包就可以了。思路1.导出一个未签名的apk包,其中渠道号配置如上图。2.使用apkTool解压apk包

2016-06-03 14:58:52 405

转载 Android Studio加速

Android Studio慢、吃内存!启动时后会立即通过Gradle来sync & build工程。 (1)设置Android Studio a) 禁用插件 File -> Settings...  Plugins 去掉一些没有用的插件。 比如:Git Integration、GitHub、Google Cloud Testing、Google Cloud Tools For

2016-06-03 14:50:22 376

转载 Gradle学习系列之十——自定义Plugin

在Plugin中,我们可以向Project中加入新的Task,定义configurations和property等。我们3种方法可以自定义Plugin,这些方法和自定义Task类型的3种方法相似。在接下来的例子中,我们将分别通过这3种方法来创建一个DateAndTimePlugin,该Plugin定义了2个Task,分别用于输出系统当前的日期和时间,另外,我们可以配置日期和时间的输出格式。

2016-06-02 15:46:47 345

转载 Gradle学习系列之九——自定义Task类型

在前面的文章中我们讲到,Gradle本身只是一个架子,真正起作用的是Task和Plugin。要真正了解Task和Plugin的工作机制并熟练运用,学会自定义Task类型和Plugin是大有裨益的。Gradle中的Task要么是由不同的Plugin引入的,要么是我们自己在build.gradle文件中直接创建的。在默认情况下,我们所创建的Task是DefaultTask类型,该类型是一个非常

2016-06-02 15:44:47 314

转载 Gradle学习系列之八——构建多个Project

Gradle为每个build.gradle都会创建一个相应的Project领域对象,在编写Gradle脚本时,我们实际上是在操作诸如Project这样的Gradle领域对象。在多Project的项目中,我们会操作多个Project领域对象。Gradle提供了强大的多Project构建支持。 要创建多Project的Gradle项目,我们首先需要在根(Root)Project中加入名为s

2016-06-02 15:43:58 321

转载 Gradle学习系列之四——增量式构建

如果我们将Gradle的Task看作一个黑盒子,那么我们便可以抽象出输入和输出的概念,一个Task对输入进行操作,然后产生输出。比如,在使用java插件编译源代码时,输入即为Java源文件,输出则为class文件。如果多次执行一个Task时的输入和输出是一样的,那么我们便可以认为这样的Task是没有必要重复执行的。此时,反复执行相同的Task是冗余的,并且是耗时的。为了解决这样的问题,Gr

2016-06-02 15:42:45 292

转载 LeakCanary开源项目(使用及原理github项目文档的翻译)

前两天,Square开源了一个内存泄露自动探测神器——LeakCanary,它是一个Android和Java的内存泄露检测库,可以大幅度减少了开发中遇到的OOM问题,对于开发者来说,无疑是个福音,下面对该库的readme进行简单的翻译:“A small leak will sink a great ship.” - Benjamin Franklin小漏不补沉大船。——本杰明 富兰克林

2016-06-02 15:40:05 709

转载 Gradle学习系列之三——读懂Gradle语法

Gradle是一种声明式的构建工具。在执行时,Gradle并不会一开始便顺序执行build.gradle文件中的内容,而是分为两个阶段,第一个阶段是配置阶段,然后才是实际的执行阶段。在配置阶段,Gradle将读取所有build.gradle文件的所有内容来配置Project和Task等,比如设置Project和Task的Property,处理Task之间的依赖关系等。虽然很多时候我们只需要

2016-06-02 15:20:06 275

转载 Gradle学习系列之二——创建Task的多种方法

Gradle的Project从本质上说只是含有多个Task的容器,一个Task与Ant的Target相似,表示一个逻辑上的执行单元。我们可以通过很多种方式定义Task,所有的Task都存放在Project的TaskContainer中。(1)调用Project的task()方法创建Task在使用Gradle时,创建Task最常见的方式便是:task hello1 {

2016-06-02 15:12:31 346

转载 Gradle学习系列之(一)——Gradle快速入门

和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。Gradle在默认情况下为我们提供了许多常用的Plugin,其中包括有构建Java项目的Plugin,还有War,Ear等。与Maven不同的是,Gradle不提供内建的项目生命周期管理,只是java Plugin向Project中添加了许多Task,这些Task依次执行,为我们营造了一种如同Maven般项目构

2016-06-02 14:28:15 309

转载 Gradle Android客户端程序打包(基于gradle 2.10版本验证通过)

http://www.cnblogs.com/Freedoms/p/5171201.html一、前言  目前正在准备从eclipse开发环境向AndroidStudio迁移,提前过去探探路,不出所料,原来gradle脚本果然报错,无法运行,想想索性把本地的gradle一起升级到最新版本,毕竟1.22有点太古老了。  仍然不废话,先上干货。二、准备工作

2016-06-02 14:10:54 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除