自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bigconvience的专栏

专注Java、Android开发

  • 博客(62)
  • 资源 (20)
  • 收藏
  • 关注

原创 深入理解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 1139

原创 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 6232

原创 Java泛型类的继承关系

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

2016-03-03 11:18:52 11227

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

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

2015-06-10 20:20:38 2921 1

原创 自己动手写编译器之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 22090 1

原创 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 1899

原创 实例讲解EventBus for Android

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

2015-05-30 22:09:58 5220

原创 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 1634

原创 Java中HashMap和SparseArray的数据结构

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

2015-05-25 19:20:05 3616 1

原创 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 2631

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

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

2015-05-25 08:49:36 16030 1

原创 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 5540 1

原创 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 9437

原创 calabash-android 命令行使用

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

2014-09-10 15:58:46 5618 1

原创 利用Calabash-Android刷广告

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

2014-09-08 21:40:16 5485

原创 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 3550

原创 Calabash-Android用法入门

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

2014-09-07 23:19:50 10790 1

原创 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 4549

原创 http协议的相关知识

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

2014-07-02 16:34:10 3040

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

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

2014-06-28 10:55:05 199135 1

原创 源码分析Fragmentd的BackStack管理过程

1. Fragment基本用法为了管理Activity中的fragments,需要调用Activity中的getFragmentManager()方法。因为FragmentManager的API是在Android 3.0,也即API level 11开始引入的,所以对于之前的版本,需要使用support library v4中的FragmentActivity,并且使用getSupportFr

2014-06-13 17:25:28 10442 2

原创 AndroidManifest详解之Application(有图更好懂)

能够包含的标签:                    常用的属性:android:process默认情况下,Android为每个应用程序创建一个单独的进程,所有组件运行在该进程中,这个默认进程的名字通常与该应用程序的包名相同。比如<manifest xmlns:android="http://schemas.android.com/apk/res/android"

2014-06-11 16:34:24 34510

原创 Android屏幕density, dip等相关概念总结

1、几个术语VGA、HVGA、QVGA、WVGA、WQVGA这些术语都是指屏幕的分辨率。VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素;HVGA:Half-size VGA;即:VGA的一半,分辨率为480×320;QVGA:Quarter VGA;即:VGA的四分之一,分辨率为320×240;WVGA:Wide Video

2014-06-10 14:26:19 19942 1

原创 源码讲解ActionBar的各种用法

1. Navigation Drawer许多应用程序都使用了Navigation Drawer,如网易邮箱客户端。该控件位于 android.support.v4.widget.DrawerLayout ,用法如下,点击下载源码:<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android

2014-06-06 18:17:05 11042

翻译 Android ActionBar的基本用法

本文翻译了这篇文章:Using the Android action bar (ActionBar) - Tutorial1、ActionBar的简介ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。ActionBar 是在Android 3.0(API 11)中加入到SK中的,

2014-06-06 15:44:33 111980 8

原创 Android布局文件的加载过程分析:Activity.setContentView()源码分析

大家都知道在Activity的onCreate()中调用Activity.setContent()方法可以加载布局文件以设置该Activity的显示界面。本文将从setContentView()的源码谈起,分析布局文件加载所涉及到的调用链。本文所用的源码为android-19.Step 1  、Activity.setContentView(intresId)public void s

2014-06-05 15:18:57 13677 1

原创 源码分析Android AsyncTask

Android UI操作是线程不安全的,若想在子线程红进行UI操作,需要借助Android提供的Handler。Android提供的AsyncTask其实是对Handler的封装,方便我们在子线程中更新UI元素。AsyncTask是一个泛型类,书写格式为: AsyncTask。这三个参数的用途如下:1. Params这三个参数的用途如下:1. Params在执行AsyncTas

2014-05-26 17:20:18 1517

原创 Android 编写多线程代码常用接口及官方注释

在编写多线程代码时常会接触到一些接口,这些接口是专门为多线程编程设计的。本文将总结这些常用的接口,如果大家发现其它的,希望能补充一下。1、无参数,无返回值,无异常:Runnable/** * Represents a command that can be executed. Often used to run code in a * different {@link Thread}.

2014-05-26 13:53:37 2389

原创 Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项

本文首先总结一下Bitmap的相关概念,然后通过一个实际的问题来分析设置BitmapFactory.options的注意事项,以减少不必要的内存占用率,避免发生OOM。一、 Bitmap的使用trick尽量不要使用setImageBitmap或setImageResource 或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,

2014-05-26 10:23:06 26095 5

原创 代码讲解Android Scroller、VelocityTracker

在编写自定义滑动控件时常常会用到Android触摸机制和Scroller及VelocityTracker。Android Touch系统简介(二):实例详解onInterceptTouchEvent与onTouchEvent的调用过程对Android触摸机制需要用到的函数进行了详细的解释,本文主要介绍两个重要的类:Scroller及VelocityTracker。利用上述知识,最后给出了一个自

2014-05-23 19:16:53 12283 4

原创 图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()

Android系统手机屏幕的左上角为坐标系,同时y轴方向与笛卡尔坐标系的y轴方向想反。通过提供的api如getLeft , getTop, getBottom, getRight可以获得控件在parent中的相对位置。同时,也可以获得控件在屏幕中的绝对位置,详细用法可参考android应用程序中获取view的位置当我们编写一些自定义的滑动控件时,会用到一些api如scrollTo(),scro

2014-05-23 14:59:08 83002 42

原创 Android触控基础:MotionEvent

之前的文章层从Framework层介绍了Android Touch事件即(MotionEvent)的传递机制。本文将详细介绍MotionEvent的一些成员和方法。了解了MotionEvent对开发一些特效如拖动控件或多点缩放控件有很大的作用。同时,掌握MotionEvent类也是学好android触控技术的基础。一、一些常量常见的动作常量:    public static fina

2014-05-22 19:29:34 61593 4

原创 使用SourceInsight查看android中的native方法

SourceInsight真的是查看源代码的神器。只要知道了文件名,就可以快速定位到文件。最近在研究Android的touch系统,发现MotionEvent的getX()方法调用的是nativeGexAxis(),于是想看看该本地代码是如何实现的,但我不知道nativeGexAxis的实现代码在什么位置。Android中的类调用本地代码是通过类名相似或Android.mk文件定义。MotionE

2014-05-22 16:56:32 6039 1

原创 Android获取LayoutInflater对象的方法总结

在写Android程序时,有时候会编写自定义的View,使用Inflater对象来将布局文件解析成一个View。本文主要目的是总结获取LayoutInflater对象的方法。1、若能获取context对象,可以有以下几种方法:LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYO

2014-05-22 14:28:26 19388

原创 Android Touch系统简介(二):实例详解onInterceptTouchEvent与onTouchEvent的调用过程

上一篇文章主要讲述了Android的TouchEvent的分发过程,其中有两个重要的函数:onInterceptTouchEvent和onTouchEvent,这两个函数可被重装以完成特定的逻辑。onInterceptTouchEvent的定义为于ViewGroup中,默认返回值为false,表示不拦截TouchEvent。onTouchEvent的定义位于View中,当ViewGroup要调用o

2014-05-21 12:50:13 14527

原创 Android的Touch系统简介(一)

Android touch事件的相关概念

2014-05-20 19:07:30 12980 3

原创 ViewSwitcher使用例子

android.widget.ViewSwitcher是ViewAnimator的子类,用于在两个Viewzhij

2014-05-18 21:39:23 23500 2

原创 Android FrameLayout的:layout_marginTop属性失效的问题

在Android3.0以下的平台上,FrameLayout内部的LinearLayout控件设置android:layout_marginTop属性是没有效果的,而

2014-05-07 20:28:10 7660

原创 利用组合控件自定义Android控件

代码出处:组合控件的用法:

2014-05-07 10:51:36 1201

转载 Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)

转载请注明地址:http://blog.csdn.net/xiaanming/article/details/10298163很多的时候,系统自带的View满足不了我们功能的需求,那么我们就需要自己来自定义一个能满足我们需求的View,自定义View我们需要先继承View,添加类的构造方法,重写父类View的一些方法,例如onDraw,为了我们自定义的View在一个项目中能够重用,有时候我

2014-05-07 10:22:51 2198

DBFlow Migration

一个简单的使用DBFlow提供的升级数据库的实例

2015-06-15

DBFlowBasic

一个使用DBFlow ORM操作数据库的例子

2015-06-14

ActionBar与Tab组合使用的例子

该代码介绍了ActionBar中的Tab如何使用。

2014-06-06

ActionBar中Contextual action mode的使用

Contextual action mode可以用来在程序运行时切换ActionBar的布局,下面将介绍如何使用

2014-06-06

ActionBar与DropDown Menu组合使用的例子

Dropdown菜单也常被用在ActionBar中,下面的代码介绍了用法.

2014-06-06

ActionBar与Drawer组合使用的例子

许多应用程序都使用了Navigation Drawer,如网易邮箱客户端。本代码展示了这些控件的基本用法。

2014-06-06

使用ActionBar的HomeIcon进行导航

Action Bar的左侧图标称为home icon,可为这个图标设置一个Action。推荐做法是当按了这个图标,返回到Home Activity中。

2014-06-06

动态改变ActionBar的图标

Action View控件可以替换Action bar的Action按钮图标。可以利用这个特点将某个Action项替换成一个ProgressBar。此代码展示了如何使用Action View

2014-06-06

自定义Android Action Bar的布局

一个简单的列子展示了如何自定义ActionBar的布局,详细的介绍可以查看我的Blog

2014-06-06

自定义Android可滑动控件源码

实现了一个可滑动显示图片的控件,用于了解Android的触控机制,Scroller和VelocityTracker的用法

2014-05-23

掌握android Touch 系统

本文档为一个讲义,简要介绍了Android的Touch系统和Touch Event的Framework

2014-05-20

《c语言解惑》源代码

《c语言解惑》书中所有谜题的源代码,所有代码均能用gcc正确编译

2012-01-06

python3程序开发指南第二版实例与课后习题源代码

这是《python3程序开发指南》中实例与课后习题的源代码。所有程序都能在windows或linux上正确运行

2012-01-06

编译原理与实践 Kenneth 第一章习题解答

编译原理与实践 Kenneth 机械工业出版社 第一章习题详细解答。此文档是本人辛苦整理的,若发现错误请与我联系

2011-12-05

水木清华BBSC++讨论区精华帖

BBS 水木清华站∶精华区。C++讨论版块的精华帖子。

2011-11-09

高性能计算机系统结构考试知识点

高性能计算机系统结构期末考试第一二章知识点和几道计算题。

2011-11-09

编译原理及实践编程练习原代码

编译原理及实践编程练习原代码,只有第2章的,若对代码有疑问,请与我练习,我们共同探讨。

2011-10-02

编译原理及实践编程练习原代码

编译原理及实践编程练习原代码,目前只有的2章和第4章的代码,第5章的正在整理中。所有代码都经过调试,若有疑问请与我联系

2011-10-02

空空如也

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

TA关注的人

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