自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhangjiaofa的专栏

码农不应该是平庸的,而应是趾高气扬的活着

  • 博客(33)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android Widget源码分析系列文章之AbsListView

Android Widget源码分析系列文章之AbsListViewAbsListView的源码剖析继承的类实现的接口相关的成员变量功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你...

2019-03-17 16:14:52 732

翻译 用React Native编写跨平台APP

用React Native编写跨平台APP React Native 是一个编写iOS与Android平台实时、原生组件渲染的应用程序的框架。它基于React,Facebook的JavaScript的库,为的是构建用户接口,而并不是以浏览器为目标,它是以手机平台为目的。换句话说,如果你是一个web开发者,你可以使用React Native去编写干净、快速的移动APP,并且可以体会到熟悉的框架和单

2016-04-05 01:00:10 5027

转载 知乎上关于ReactNative的评论汇总(网友们有才哟...)

React native充分利用了Facebook的现有轮子,是一个很优秀的集成作品,并且我相信这个团队对前端的了解很深刻,否则不可能让Native code「退居二线」。对应到前端开发,整个系统结构是这样: JSX vs HTML CSS-layout vs css ECMAScript 6 vs ECMAScript 5 React native View vs DOM 无需编译,我在

2016-03-29 20:16:11 2908

原创 JavaWriter源码分析

为何要实现Closeable的接口Closeable的英文注释 A {@code Closeable} is a source or destination of data that can be closed. The close method is invoked to release resources that the object is holding (such as

2015-10-20 15:53:14 769

原创 Android Sqlite框架 GreenDao的源码分析笔记

Android Sqlite 框架GreenDao的源码分析笔记GreenDao是一个开源的项目,有助于开发者与存储在Sqlite中的数据打交道。Sqlite是关系型数据库。然而,用Sqlite开发需要一些额外的工作。写SQL与解析查询的结果是一件相当繁琐的工作。GreenDao将会替你做这些额外的工作。它将Java对象映射到数据库的表(经常被称作ORM),通过以这种方式,你可以使用简单的面向对象的

2015-10-14 23:58:10 4530

转载 Android Sqlite 框架 GreenDao的原理与使用简介

(转:http://blog.csdn.net/dawnranger/article/details/43231731)一、背景知识ORM(Object Relation Mapping):对象关系模型。用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。ORM作为项目中间件形式实现数据在不同场景下数据关系映

2015-10-14 17:46:30 4698

原创 Android 注解框架 Butterknife的核心代码分析笔记

ButterKnife是一个注解框架,主要是针对Android平台。逐个的来看一下Library中的代码的组织架构:1、接口Binding  这个接口里面有一定对外的定义的方法,主要的功能就是具有可读性的注解的描述语。2、ButterKnifeProcessor,这是一个实体类,也是ButterKnife注解框架的核心类。2、1  首先他集成了JAVA处理注解所用到的抽象类  Ab

2015-10-10 14:44:01 832

原创 设计模式 观察者模式 以Android中TextView文本内容发生变化为背景

先来看看观察者模式的定义:定义了对象之间的一对多的依赖,这样一来,当一个对象改变时,它的所有的依赖者都会收到通知并自动更新。好了,对于定义的理解总是需要实例来解析的,如今的微信服务号相当火啊,下面就以微信服务号为背景,给大家介绍观察者模式。看一张图:其中每个使用者都有上图中的3条线,为了使图片清晰省略了。如上图所示,服务号就是我们的主题,使用者就是观

2015-10-08 17:54:01 585

原创 设计模式 策略模式 以Android 中TextView绘制文本、颜色为背景说明

先来看看策略模式的定义:策略模式(Strategy Pattern):策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。类图说明:上面的定义以及模式的类图可能还是比较抽象,知道个大概,然后继续读下面的文章,读完以后再来回味,效果嘎嘣脆。大家应该都玩过武侠角色游戏,下面

2015-10-08 17:00:38 925

原创 Java依赖注入库框架 Dagger的源码分析(一)

1、GeneratedAdapters对应的注释上面是这么说的:A single point for API used in common by Adapters and Adapter generators被Adapters以及Adapter的生产者广泛使用通过代码,可以注意到,这是一个final类,是不允许被重载的。他的构造函数是一个空的构造函数。同时带有下面的常量的定

2015-08-30 22:35:29 751

原创 Android DynamicLoadApk 开源插件开发项目代码剖析

目前的代码的目录结构是:1、com.ryg.dynamicload.internal2、com.ryg.dynamicload.service3、com.ryg.dynamicload4、com.ryg.dynamicload.utils先看com.ryg.dynamicload.internal包下面的几个类:1、DLAttachableDL是DynamicL

2015-08-28 16:39:28 1693

翻译 Material Design 之 Divider设计规范

Material Design 之 Dialog设计规范在列表与页面的布局之内,分割线的作用是将内部的内容进行内聚与隔离。使用方法分割线的类型留白的标准使用方法分割线通过在页面建立一个有节奏与层次分明的结构,帮助用户理解当前的页面的内容是如何被组织的。但是分割线的滥用会导致整个页面充斥着虚拟的噪音,同时也削弱内容本身所具有的影响力。-没有锚点的列表项当列表界面没有类似于头像与图标之类的锚点元

2015-05-29 11:37:18 1581

原创 Android内核源码bionic目录下的源码的学习笔记

好记性不如烂笔头。今天要做的学习是关于bionic目录下的代码。首先需要看的是_errno.c这份代码。volatile int* __errno( void ){ return &((volatile int*)__get_tls())[TLS_SLOT_ERRNO];}从上面可以看出,返回的是一个指向int类型的指针。  volatile关键字是一种类型修饰符,用它声明

2015-01-11 11:21:54 2091 1

原创 Android内核源码bionic目录下的子目录arch-arm源码分析笔记

依旧是好记性不如烂笔头,今天需要学习的是arch-arm目录下的代码。首先我们先看一下inclue目录下的endian这个头文件我们主要是需要知道下面的几点知识。1、先看一下下面的代码的片段#if !defined __ARM_ARCH_5__ && !defined __ARM_ARCH_5T__ && \ !defined __ARM_ARCH_5TE__ && !defi

2015-01-10 16:06:13 1737

原创 Android内核源码Abi目录学习笔记

好记性不如烂笔头,今天要学习的是Android中Abi目录下的代码。下面是基本的学习的笔记的汇总。首先是include中的头文件的说明。在cxxabi的头文件中主要需要掌握下面的几个点:1、这个头文件中包含的主要的功能就是基于C++ 2.9.5中的驱动的类型的信息。2、驱动的类型这里面主要定义了这么几类:2、1  __fundamental_type_info  基本驱动类型的

2015-01-09 22:50:51 1471

原创 Android中Activity源码中是如何对对话框Dialog进行处理的

各位童鞋,对于Android而言,离开Activity,基本上就无从谈起开发,那么亲们对于Activity的实现原理熟悉么?反正我在没有看源码之前是不熟悉的,下面,咱们一起按照老规矩,一起来看一下Activity的源码吧。这一篇文章主要讲解的是Activity如何对对话框Dialog进行实现统一管理的。      首先我们看到的是这样一个类: private static class Ma

2014-12-30 13:06:01 1012

原创 详细讲解Android中的AbsListView的源码

不知道各位童鞋们在开发的过程中有没有感兴趣过ListView是如何实现的呢?其实本身ListView的父类AbsListView才是关键,但是如果大家看过源码的话,会发现AbsListView将近7000多行代码,是不是头大啊,呵呵,没事,下面咱们就一起来看看吧。     我们先从类中的常量开始分析: public static final int TRANSCRIPT_MODE_

2014-12-29 22:57:55 1512

原创 详细讲解Android中的动画Animation(依据Android源码目录结构讲解)

Android中Animation如果仔细的整理一下,是一个非常值得学习的模块。由于其中涉及的内容比较多,大家经常在实际的开发的过程中,只是略微的攫取其中的部分进行运用,比较零碎,下面我就对照着源码中的Animation的实际代码结构,对Animation的实际体系进行讲解一下,希望对大家理解Andorid中的Animation的设计理念有一定的理解。      第一个类:AnimationT

2014-12-29 17:33:32 1015

原创 详细讲解Android中的Message的源码

相信大家对于Android中的Handler是在为熟悉不过了,但是要知道,Handler就其本身而言只是一个壳子,真正在内部起到作用的是Message这个类,对于Message这个类,相信大家也不会陌生,正如大家经常用到的Message.obtain()的方法一样。但是大家又是否知道obtain()方法里面为我们做了哪些操作了,下面我就带领大家进行Message的王国,去一探究竟吧。     

2014-12-29 12:02:25 2691 4

原创 管窥Android中的滑动条SeekBar的父类AbsSeekBar的源码

Android中的控件中有一类是ProgressBar,其子类中有一个是AbsSeekBar。相信有不少童鞋对这个拖动条的父类比较感兴趣吧!尤其是看到网易云音乐的进度条上面是可以处理播放与暂停事件,是不是很羡慕的哈~  俺在这里告诉大家,不用羡慕,看了我下面的代码分析,你也是可以做出那样的效果的哦。Let's go.       下面先给大家列表一下AbsSeekBar的成员变量有哪些。 

2014-12-28 21:22:43 2053

原创 关于butterknife在Eclipse中的空指针的问题

今天在看一个Android

2014-11-21 10:36:09 2096

原创 详细讲解Android图片下载框架UniversialImageLoader之内存缓存扩展(四)

内存缓存的扩展还是蛮重要的,无论是数据结构还是具体的实现还是值得我们进行细细的品味,下面咱们就一起能品味这里面的趣味吧。           内存缓存的扩展主要学习下面的几个类:FIFOLimitedMemoryCache、FuzzyKeyMemoryCache、LargestLimitedMemoryCache、LimitedAgeMemoryCache、LRULimitedMemoryCa

2014-11-18 22:41:41 1339

原创 详细讲解Android图片下载框架UniversialImageLoader之内存缓存(三)

前面的两篇文章着重介绍的是磁盘缓存,这篇文章主要是讲解一下内存缓存。对于内存缓存,也打算分两篇文章来进行讲解。在这一篇文章中,我们主要是关注三个类,MemoryCache、BaseMemoryCache以及LimitedMemoryCache。    首先我们先看一下内存缓存的接口MemoryCache。put(String key, Bitmap value);Bitmap ge

2014-11-17 18:00:38 1255

原创 详细讲解Android的图片下载框架UniversialImageLoader之磁盘缓存的扩展(二)

相对于第一篇来讲,这里讲的是磁盘缓存的延续。在这里我们主要是关注四个类,分别是DiskLruCache、LruDiskCache、StrictLineReader以及工具类Util。       接下来逐一的对它们进行剖析。废话不多说。       首先来看一下DiskLruCache。       这个类的主要功能是什么呢?我们先来看一段类的注释:       /** * A

2014-11-17 17:27:19 1595

原创 详细讲解Android的图片下载框架UniversialImageLoader之磁盘缓存(一)

沉浸在Android的开发世界中有一些年头的猴子们,估计都能够深深的体会到Android中的图片下载、展示、缓存一直是心中抹不去的痛。鄙人亦是如此。Ok,闲话不说,为了督促自己的学习,下面就逐一的挖掘Android中还算是比较牛叉的图片处理框架UniversialImageLoader以飨读者吧!   凡事如果过于草率必将陷入泥塘不能自拔。还是按部就班的一步一步的将这个框架给啃透。   第

2014-11-17 15:16:51 1352 3

原创 详细讲解Android框架EventBus

工欲善其事,必先利其器。要想非常好的将Ec

2014-11-13 16:25:14 1109

原创 C++快速入门

1、C++大部分的基本要素:内置类型、库类型、类类型、变量、表达式、语句和函数main()函数是唯一被操作系统显示调用的函数定义函数必须指定4个元素:返回类型、函数名、形参表与函数体在大多数的操作系统中,main函数的返回值是一个状态指示器2、输入与输出标准输入和输出的对象:标准库定义了4个IO对象,处理输入时候使用的是cin的isstream的对象,这个对象也称为

2013-06-22 10:19:01 697

原创 关于神庙逃亡这款游戏在很多款的手机上出现闪退的解决方案(Android)

目前神庙逃亡这款游戏很火,我的酷派8022出现闪退。作为开发人员,不要放弃任何一个修改Bug的机会。打开Eclipse 查看奔溃的日志如下:02-21 20:43:25.164: ERROR/AndroidRuntime(8922): java.lang.UnsatisfiedLinkError: Couldn't load mono: findLibrary return

2013-02-21 20:47:20 1586

原创 注意代码之间的逻辑性(拿自己写的一段代码作为例子)

大家看一下这段代码问题出在什么地方public Bitmap process(Bitmap curSingerBmp) { System.gc(); if (mBack != null && !mBack.isRecycled()) { mBack.recycle(); mBack = null; } try { mBack = Bitmap

2013-02-21 13:36:12 836

原创 LGame游戏引擎主要组件之一AVGame详解(结合具体的代码讲解)

首先对一个典型的例子进行仔细的剖析,后面再给出具体的理论分析。/***AVGScreen是LGame引擎的四种Scrren之一*与其他Screen的主要区别在于 他直接继承CanvasScreen,且必须注入脚本才能运作。*该类默认自动刷新画面**/public class MyAVGScreen extends AVGScreen { //L

2013-02-17 17:05:36 1481

原创 LGame游戏引擎的初始化

在介绍基于LGame中的自定义脚本的时候,先对一个基于该脚本的游戏的源码进行相关的解释。//完成LGame的游戏引擎的初始化 public void onMain() { //游戏窗体以及Admob广告的初始化的函数 this.initialization(true); //设定游戏初始的Logo是否显示 this.setShowLogo(false); //设定是否

2013-02-17 15:09:11 740

原创 基于Angle游戏引擎相关的文档说明

Android上的游戏引擎中,Angle是其中之一,觉得其小巧玲珑,故下面对其进行简而概之的进行相关的说明。  /** *下面的飞机是继承精灵类 */class MyShip extends AngleSprite { AngleVector mDestination;//时刻控制飞机的位置 float Speed; //对应的飞机的速度 public

2013-02-05 23:52:59 826

原创 对于不支持range的网络的分段下载

今天在排查一个问题的时候,发现部分网络环境不支持range,这样就会导致在分段下载的时候,必须用skip()方法,但是按照官方提供的API的说法,skip方法是不能保证一定能够过滤相应的字节数。  解决方案:  private long skipBytesFromStream(InputStream inputStream, long n) { long remainin

2013-02-05 12:28:48 699

Android AIDL传输数据

1、后台服务里是一个Android项目,是一个Service 后台服务 2、前台Activity里是一个Android项目,是一个从后台服务 中通过AIDL获取简单数据与复杂数据 导入,分别运行(先运行后台服务,没有界面),在运行前台界面(先绑定,再点击中间按钮,最后点击解除绑定)

2015-10-26

设计模式 观察者模式 以Android中TextView文本内容发生变化为背景

这个代码主要以Android中的TextView发生变化,而凡是订阅了此类消息的实体类对象均能够打印出日志。例子很简单,起抛砖引玉,希望大家能够理解观察者模式在Android中的应用

2015-10-08

设计模式 策略模式 以Android 中TextView绘制文本、颜色为背景说明

通过一个简单的Android TextView在策略模式中的应用,起到抛砖引玉的作用,让大家能够对策略模式有一个基本的认识

2015-10-08

Android的Jar包从主项目工程中读取并展示资源文件

作为Android程序开发,我们自己在实际项目的开发过程中,经常会遇到我们打的Jar包需要动态的读取主项目工程中的资源文件,那么有没有一种好的方式,能够让Jar包非常方便的读取与展示主工程中的资源文件呢?有,大家看一下我提供的Demo的源代码,相信大家会有所收获的。

2014-11-19

Android 程序

对于研究Android有非常大的好处 对于研究Android有非常大的好处 对于研究Android有非常大的好处

2011-05-21

空空如也

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

TA关注的人

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