8 飞默

尚未进行身份认证

暂无相关描述

等级
TA的排名 9w+

在 Android Studio 中使用 Annotation Processor

Java的 AnnotationProcessor 是非常有用的功能,很多常用的库和框架都使用了AnnotationProcessor来生成代码,比如ButterKnife 就用来生成findViewById等代码。对于一些模板代码使用AnnotationProcessor来自动生成可以提高编写代码的效率和质量,手工编写毕竟容易出现纰漏,工具自动生成是有质量保证的

2017-03-30 14:42:31

Android编译时注解框架系列1-什么是编译时注解

转载请注明出处:https://lizhaoxuan.github.io概述Android编译时注解框架从入门到项目实践。该系列将通过5篇博客一步步教你打造一个属于自己的编译时注解框架,并在之后开源出基于APT的编译时注解框架。提到注解,普遍都会有两种态度:黑科技、低性能。而使用注解往往可以实现用非常少的代码作出匪夷所思的事情,比如这些框架:ButterKnife、Retr

2017-03-30 14:39:02

Android依赖管理与私服搭建

1.Android引入依赖的多种方式2.多平台私服搭建3.创建和依赖自己的代码仓库1、Android引入依赖的多种方式引入方式一AS切换project视图>新建libs目录(高版本AS默认存在libs目录)>copyjar包>addaslibrary下面以我开源的支付宝以及微信app支付项目为例引入相关的jar方式一:ad

2017-03-13 11:44:56

第十三章 线程安全与锁优化

一、线程安全线程安全:指当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调用和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么喝个对象就是线程安全的。1.Java语音中的线程安全我们可以根据线程安全的“安全程度”由强至弱来排序呢,将Java语音中各种操作共享的数据分为五类1.不可变2.绝对线程安全3.相对线程安全

2017-03-09 13:42:10

第12章 Java内存模型与线程

Java内存模型(JavaMemoryModel–>JMM)用来实现屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。屏蔽硬件差异、保证并发。而程序的功能就是数据流的交互,所以保证数据的快速、正确访问就是Java内存模型的核心。1.主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中

2017-03-09 13:41:05

第八章 虚拟机字节码执行引擎

执行引擎是Java虚拟机最核心的组成部分之一。执行引擎在执行Java代码的时候可能有解释执行(通过解释器执行)和编译执行(通过即时编译器产生的本地代码执行)两种选择,也可能两者兼备,甚至还可能包含几个不同级别的编译器执行引擎。但从Java虚拟机规范中描述的执行引擎概念模型来说,所有的Java虚拟机的执行引擎都是一样的:它的输入是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。1.运行时

2017-03-09 11:42:52

第七章 虚拟机类加载机制

虚拟机把描述类的数据从class文件加载到内存中,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类从加载到虚拟机内存开始,到卸载出内存,一共经历了7个步骤:1.加载2.验证3.准备4.解析5.初始化6.使用7.卸载对于初始化,Java虚拟机规范做了严格的限制,有且只有四种情况必须立即对类进行“初始化”遇到new,gets

2017-03-09 11:41:54

第三章 垃圾收集器与内存分配策略

3.2对象已死吗?在堆里面存放着Java世界中几乎所有的对象实例,下面就让我们了解下垃圾收集器在对堆进行回收前,如何判断哪些对象还存活,哪些已经死去3.2.1引用计数算法实现的原理:大致是给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。但是Java虚拟机没有选择引用计数算法来管理内存,其中最主要的原因

2017-03-09 11:35:32

第二章 Java内存区域与内存溢出异常

2.2运行时数据区域方法区堆虚拟机栈本地方法栈程序计数器2.2.1程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器都只会执行一条线程中的指令。因此,为了线

2017-03-09 11:33:17

Android架构思考(模块化、多进程)

推荐原因:这是我看过的比较宏观层面上面来对Android架构设计上面的思考的文章,架构的设计其实在一定程度上面是根据业务的需要,同一个项目在不同阶段,往往之前的架构设计无法满足后期的需求,这时候就需要我们从新的层面上面来考虑下原有架构的不足之处和改进方案。这篇文章从项目的小型模型-中大型模型为我们讲解了架构设计的演变方案。关于模块化(组件化)这个问题,我想每个开发者可能都认真的思考过。随着

2017-03-02 11:13:38

Android中的Service:Binder,Messenger,AIDL(2)

前面一篇博文介绍了关于Service的一些基本知识,包括service是什么,怎么创建一个service,创建了一个service之后如何启动它等等。在这一篇博文里有一些需要前一篇铺垫的东西,建议没有看过前一篇博文的同学先去看一下前一篇: Android中的Service:默默的奉献者(1) 。但是在前一篇博文中也有一些遗漏的东西——主要是关于bindService()这一块的具体细

2017-02-26 11:01:48

Android中的Service

这段时间在看一些IPC相关的东西,这里面就不可避免的要涉及到service,进程线程这些知识点,而且在研究的过程中我惊觉自己对这些东西的记忆已经开始有些模糊了——这可要不得。于是我就干脆花了点心思温故了一下,就有了这篇博文。非常感谢Google的官方文档——尤其是其中部分文章有中文版了之后。正文1,什么是service?Service是一个可以在后台执行长时间操作而不使用用

2017-02-26 10:35:47

Android 事件的分发

Android事件的分发和消费机制dispatchTouchEvent()returntrue;—–>stopreturnfalse;——>if(View==Activity){onTouchEvent();}else{

2017-02-23 21:55:41

HttpClient和HttpURLConnection的区别

总结了网上的一些资源,主要有以下两个观点:分析一:       在研究Volley框架的源码中,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android2.2及以下版本,使用的是HttpClient。我也比较好奇这么使用的原因,于是专门找到了一位Google的工程师写的一篇博客,文中对Http

2017-02-22 14:01:33

RxJava之三—— observeOn()与subscribeOn()的详解

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51967967 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!为什么多次调用subscribeOn()却只有第一个起作用? 为什么多次调用observeOn()却可以切换到不同线程 observeOn()后能不能再次调用subscri

2017-02-22 11:48:30

RxJava 之二—— Lift()详解

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/53611268 文章出自:薛瑄的博客RxJava最让人兴奋的就是它有各种各样的操作符,什么map呀,flatMap呀各种,我们今天要知其然知其所以然,那么他们是如何实现功能的呢?下面通过一个例子,逐步深入分析。最后面还会再进行一次总结例子:代码块一:

2017-02-22 11:46:48

RxJava之一——使用详解

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52068014 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!在正文开始之前的最后,放上GitHub链接和引入依赖的gradle代码:Github: https://github.com/ReactiveX/RxJava h

2017-02-22 11:45:34

Gradle笔记——构建基础

本篇文章主要介绍一下Gradle的构建基础。它看起来似乎和Android项目没多大关系,不能让人一下子理解android项目中的Gradle配置文件,但是这篇基础真的很重要。学习Gradle前,需要有一个Groovy语言的基础,以免被Groovy的语法困扰,反而忽略了Gradle的知识。这里有一个Groovy的简明中文教程文档,可以快速学习Groovy的一些语法:http://downlo

2017-02-21 09:33:51

Gradle笔记——Gradle的简介与安装

博客对Gradle进行一个简单的介绍,以及它的安装。Gradle介绍Gradle是一个基于JVM的构建工具,它提供了:像Ant一样,通用灵活的构建工具可以切换的,基于约定的构建框架强大的多工程构建支持基于ApacheIvy的强大的依赖管理支持maven,Ivy仓库支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件。对Ant的任务

2017-02-21 09:32:27

Android Studio之基本Gradle使用

Android Studio的一大特色就是自动构建工具gradle的使用。1.配置Gradle环境变量下载最新Gradle整包下载地址:http://www.androiddevtools.cn/index.html 配置Gradle的环境变量新建GRADLE_HOME目录:打开系统->高级系统设置,在弹出的菜

2017-02-20 17:43:33

查看更多

勋章 我的勋章
    暂无奖章