11 bigconvience

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1w+

深入理解Java Annotation

引言本文将从class文件的角度来探索Annotation的相关知识,为理解JVM是如何处理Annotation打下基础.class文件中的Annotation假设有一个Annotation:@Target(ElementType.TYPE)@Retention(RetentionPolicy.SOURCE)@interface MyAnnotation { String value(

2016-03-03 15:06:15

Java泛型类型参数的界限

作用1. 限制类型参数的类型如要定义一个类IntegerPair来存取元素类型为Integer的对偶,此类可写成如下的形式:public class IntegerPair<T extends Integer>{ public IntegerPair() { first = null; second = null; } public IntegerPair(T first, T sec

2016-03-03 11:24:56

Java泛型类的继承关系

引言类型兼容的对象可以进行赋值,如可将一个 Integer 对象传给一个 Object 对象,因为 Object 是 Integer 的基类。Object someObject = new Object();Integer someInteger = new Integer(10);someObject = someInteger; // OK对于方法的参数,也可传递类型兼容的对象。如 In

2016-03-03 11:18:52

仿英语流利说取词放大控件的实现

1 取词放大控件英语流利说是一款非常帮的口语学习app,在app的修炼页面长按屏幕,会弹出一个放大镜,当手指移到某个单词的附近,可以看到该英文单词会被选中,效果如下图所示: 2 代码示例该控件挺有意思,于是我写了个简单的demo,点击下载,程序运行后的效果如下: 3 实现原理该控件的实现原理比较简单,下面介绍几个比较重要的类1 WordView在实习该控件的过程中,我发现看似普通的TextVie

2015-06-10 20:20:38

自己动手写编译器之Tiny语言语法分析器的实现

接着上一篇文章介绍的Tiny语言的词法分析的实现,本文将介绍Tiny语言的语法分析器的实现。1 Tiny语言的语法下图是Tiny在BNF中的文法, 文法的定义可以看出,INNY语言有以下特点: 1 程序共有5中语句:if语句,repea语句,read语句,write语法和assign语句。 2 if语句以end作为结束符号,if语句和repeat语句允许语句序列作为主体。 3 输

2015-06-10 12:46:46

EventBus for Android 源码分析

上文实例讲解EventBus for Android介绍了EventBus的基本用法,本文将介绍EventBus的实现原理。EventBus的实现主要围绕两个函数register和post,下面分别介绍之。1 register(Object subscriber)功能 注册subscriber中以onEvent开头的方法 代码:private synchronized void register

2015-06-01 21:25:11

实例讲解EventBus for Android

简介EventBus是一个很棒的事件订阅与发布的框架,项目地址:https://github.com/greenrobot/EventBus。作用Android各个组件间的以接口的方式进行的通信问题: 1 增加了组件间的耦合,某个组件的修改可能会引起另一个组件的修改,因此灵活度不高。 2 充斥着大量样板话的代码: 定义接口和回调 管理监听器 在各个

2015-05-30 22:09:58

Android开发资源文件用法小结

本文用来记录在Android开发中经常用到的一些用法 arrays.xml定义数组 例:<resources> <!-- share items --> <string-array name="app_share_items"> <item>新浪微博</item> <item>腾讯微博</item> </string-array> </

2015-05-26 10:40:58

Java中HashMap和SparseArray的数据结构

最近听同事说使用SparseArray代替HashMap可以提高性能,于是边对这两个类的数据结构进行简单的分析。Hashmap的数据结构 Hashmap是一个数组和链表的结合体(在数据结构称“链表散列“),如下图示:图片来源:Java的HashMap和HashTableSparseArray的数据结构    SparseArray指的是稀疏数组(Sparse

2015-05-25 19:20:05

JDK中ArrayList、HashMap和HashSet的equals方法源码分析

最近遇到个坑,在进行ArrayList和HashMap进行比较时,发现数据一样,但equals一直返回false。于是乎看了一下ArrayList和HashMap的源码,才恍然大悟。本文的代码摘自JDK 1.7.0。ArrayList的equals方法:public boolean equals(Object o) { if (o == this) return

2015-05-25 17:55:49

自己动手写编译器之TINY编译器词法分析

TINY是《编译原理与实践》一书中介绍的教学编程语言,该语言缺少真正程序设计语言的主要特征,但足以例证编译器的主要特征了。本文将介绍该编译器的实现过程,完整的实现代码loucomp_linux中,供编译原理初学者参考。小试牛刀:下载源码后,进入loucomp_linux, 在命令行输入$make便生成tiny程序,然后输入$tiny sample.tnytiny 将samp

2015-05-25 08:49:36

Android自定义View的用法总结

本文参考了:http://greenrobot.me/devpost/android-custom-layout/Android SDK中提供了很多UI组件,如RelativeLayout, LinearLayout等,使用自定义控件有两大优点:1、通过减少View的使用来增加UI的显示效率2、构建SDK中没有的控件原文总结了4种自定义View,分别是Compo

2015-05-23 15:55:28

XmlPullParser 解析不到END_DOCUMENT,XmlPullParserException: Unexpected token (position:TEXT

最近遇到一个坑,我在网上找了一段代码来解析XML,片段如下: int eventType = xpp.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if(eventType == XmlPullParser.START_DOCUMENT) {

2015-04-19 10:59:57

calabash-android 命令行使用

本文介绍calabash-android的命令行的使用,通过例子,熟悉calabash-android所调用的ruby api和常用控制台命令, 如query, touch, wait等。,。熟悉这些API有助于我们编写自定义feature。第一步:下载app    本文所用的测试app为黑客头条,点此下载。app中view的元素如下图所示:第二步:打开命令行,进入app的下载

2014-09-10 15:58:46

利用Calabash-Android刷广告

calabash-android是一个单元测试的工具,用来测试UI。这个特点非常适合来刷应用程序的广告。本文以一个简单的例子来教大家使用calabash-anroid来刷应用程序的广告。代码下载地址:https://github.com/bigconvience/poker_hu    在使用本文提供的例子进行测试前,请先确保安装好测试环境,可参考此文:Windows 安装Calabash-A

2014-09-08 21:40:16

Calabash-android 预定义steps

Calabash-android目录下的canned_steps.md中列出了一系列预定义的steps,这些steps的定义位于calabash-android\steps\目录下。本文将介绍这些steps和用法。1.断言steps:定义在assert_steps.rb中断言看到了文本:Then /^I see the text "([^\"]*)"$/Then /^I see

2014-09-08 10:33:35

Calabash-Android用法入门

上文介绍了如何在windows中安装calabash-android的测试环境,本文用一个实例来介绍calabash-android的基本用法。本文所用的源代位于:https://github.com/bigconvience/HackerNews下载完代码后,进入工程目录中,在命令行中输入:calabash-android gen,此命令会在工程目录下生成目录features,目

2014-09-07 23:19:50

Windows 安装Calabash-Android

calabash简介:Calabash-android是支持android的UI自动化测试框架,PC端使用了cucumber框架,通过http和json与模拟器和真机上安装的测试apk通信,测试apk调用robotium的方法来进行UI自动化测试,支持webview操作。1 安装ruby,下载地址:http://rubyinstaller.org/downloads/

2014-09-07 16:28:22

http协议的相关知识

由于现在的工作设计的Web开发,因此了解了一下Http协议。在阅读了这篇文章HTTP协议详解(真的很经典)后,总结了相关常用知识并列在此处以方便以后的查询。HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使

2014-07-02 16:34:10

Android 中查看内存的使用情况集常用adb命令

1. 在IDE中查看Log信息当程序运行垃圾回收的时候,会打印一条Log信息,其格式如下:D/dalvikvm: , , , GC_Reason表示导致垃圾回收的原因以及当前的回收类型,包括以下几类:    GC_CONCURRENT:当堆中对象数量达到一定是触发的垃圾收集    GC_FOR_MALLOC:在内存已满的情况下分配内存,此时系统会暂停程序并回收内存  

2014-06-28 10:55:05

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!