自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hey Man

Androider#记录并分享那些曾经发生过的~

  • 博客(220)
  • 资源 (2)
  • 收藏
  • 关注

原创 关于编程中Context的理解

前言在编程的过程中,经常看到别人的源码中使用Context。经过一段时间的实践,谈谈个人对其的理解。正文是什么Context 指做一件事情的背景/环境/上下文/所需要的必要的数据AppContext 应用上下文,包含整个App运行期间必要的数据UserContext 用户上下文,包含一个User的上下文数据一个经典的Context例子:在一个操作系统中,包含多个进程,每个进程包含多个线程

2017-03-05 23:11:41 9458 1

原创 关于Android Matrix pre post 的理解

前言最近由于项目需要,接触到矩阵相关的知识较多,在实践后于此做知识记录,方便下次用到的时候可以快速的捡起来。正文理论上,矩阵是按照长方形阵列排列的复数或实数集合实际上,从源码看Matrix是用于坐标变换的3x3的矩阵【本文讨论的是graphics包下的矩阵,非opengl包下的矩阵】单个Matrix对象在Java层保留一个Native层对象的指针,在Native堆上进行实际内存分配、使用、回收

2017-01-30 00:28:42 1018

原创 Android Glide GifDrawable 模块源码解析

背景项目有个需求:对GIF动图实时添加文字。结合之前FollowMe景区导游助手项目中做过图片添加水印,MovieMaker项目中多张图片合成一段具有多种切换效果视频的经验,预测需要对GIF文件的数据进行解码,合成处理,编码输出合成文件。 项目基于Glide库实现GIF图片的显示,因此需要搞清楚GIF文件的数据是怎么显示到ImageView模块。本文记录分析GifDrawable模块的原理的过程

2017-01-09 00:31:44 4211 2

原创 Android 从本地和服务器拉取数据显示

需求分析在做GankIO客户端App时,有这样一种需求:类似微信消息列表界面,每次进入该界面时,都会先显示本地的数据,同时向服务器拉取最新的数据,减少用户等待数据的时间,以增强用户体验。概要设计我已经使用RxJava中的merge操作符实现该需求。现在如果不用RxJava框架,这个怎么实现?如何封装一个好用的模块给上层使用?这里需要同时在本地、服务器拉取数据,而且两件事情都做完后,整个事情才做完,

2016-12-11 16:55:05 2204

原创 JVM 字符编解码 UTF-8 UTF-16

背景关于字符编码问题,印象深刻的有两次:JNI层获取JVM中Emoji表情出错,上层看到4个字节,到JNI层拿出来成了6个字节面试中一道笔试题byte[] a = new byte[]{(byte) 0xc6, (byte) 0xd0};String s = new String(a);byte[] b = s.getBytes();问:最后a和b的内容是否相等?这里分析下笔试中的题目。

2016-12-10 21:21:59 3998

原创 java 嵌套类

Java编程语言允许开发者在一个类的内部定义另一个类。这样的类称为嵌套类,如:class OuterClass { ... class NestedClass { ... }}术语:嵌套类分为两种:static和非static。声明为static的嵌套类又称为静态嵌套类。没有声明为static的嵌套类称为内部类。 class OuterClass {

2015-03-18 16:48:14 642

原创 Handler和Looper是怎样绑定到一起的?

我们创建一个Handler一般方式是: private final Handler mHandler = new Handler() { @Override public void handleMessage(android.os.Message msg) { int what = msg.what; switch (what) { case MSG_START_MAIN

2014-12-26 16:04:51 2621 1

原创 Android ImageView和TextView居中

效果图:布局XML文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation

2014-12-15 23:37:24 8580

原创 Android Fragment 实战(一)

Fragment是Android 3.0之后出现的

2014-11-21 17:20:11 765

原创 Android 蓝牙游戏开发(一)

蓝牙4.0据说是超低功耗,随之而来的是

2014-11-18 11:07:33 2881

原创 《java并发编程实战》基础构建模块(七)

5.5.2 FutureTask

2014-11-18 09:07:20 732

原创 《java并发编程实战》基础构建模块(六)

5.5.3 信号量

2014-11-15 10:03:51 630

原创 《java并发编程实战》基础构建模块(五)

5.6

2014-11-13 11:36:46 650

原创 《java并发编程实战》基础构建模块(四)

前面了解到闭锁类,我们今天深入一下,看看它的其它方面。

2014-11-12 10:30:47 664

原创 《java并发编程实战》基础构建模块(三)

双端队列与工作密取

2014-11-11 11:28:42 811

原创 Java PriorityBlockingQueue 分析

在练习下载模块时需要对下载任务设置优先级

2014-11-11 10:24:47 2001

原创 Android Handler 分析

Handler的作用?为什么Android设计只能UI线程更新UI?

2014-11-10 16:46:01 676

原创 《java并发编程实战》基础构建模块(二)

并发容器

2014-11-10 15:05:19 677

原创 java接口不能声明为synchronized

/** * 任务完成 * @param task */ public synchronized void onTaskFinished(DownloadTask task);

2014-11-10 10:47:41 4337

原创 《java并发编程实战》基础构建模块(一)

同步容器类包括Vector和Hashtable,与之对应的非同步的容器是

2014-11-10 10:25:58 1041

原创 Android Messenger 分析

/** * Reference to a Handler, which others can use to send messages to it. * This allows for the implementation of message-based communication across * processes, by creating a Messenger pointing t

2014-11-07 17:03:34 4683

原创 Android 多点触摸输入

@Override public boolean onTouchEvent(MotionEvent event) { int numPoints = event.getPointerCount(); for (int i = 0; i < numPoints; i++) { int x = (int) event.getX(i); int y = (int) event.ge

2014-11-07 09:20:50 1057

原创 Dalvik VM 与 art 的区别

主要是Dalvik使用jit技术每次执行都需要编译一次ART是一次编译后面

2014-11-06 12:24:21 554

原创 Android 四大组件

1.Activity2.Service3.BroadcastReceiver4.ContentProvider

2014-11-06 11:41:15 663

原创 cocos: command not found

这个主要是cocos2d-console文件夹为空导致

2014-10-31 11:40:42 3068

原创 ubuntu 14.04 hgfs为空

http://ubuntuforums.org/showthread.php?t=1133427

2014-10-29 21:24:02 3166 1

原创 Android 屏幕旋转 Activity 重建

测试机器使用版本 Android 4.0.3

2014-10-23 09:50:58 561

原创 Android ListView 局部刷新

private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { int what = msg.what; switch (what) { case CMD_UPDATE_TASK: int index = msg.arg1; Downl

2014-10-23 09:23:26 8300 2

翻译 Android最佳实践之后台作业

原文链接这些类向wq

2014-10-19 23:44:00 699

原创 Android值得推荐的书籍

2014-10-18 20:50:05 486

原创 链表是否有环

Node * isLoop(Node *head){ if (head==NULL||head->nxt==head) { return head; } Node *p=head; Node *q=head; while (p!=NULL&&p->nxt!=NULL) { p=p->nxt->nxt; q=q->nxt; if (p==q) { return

2014-10-18 11:30:24 524

原创 Android版本差异

Android版本差异

2014-10-18 10:40:52 563

原创 C格式化输入/输出

int a,b,c;  printf("input a,b,c/n");  scanf("%d%d%d",&a,&b,&c);  printf("a=%d,b=%d,c=%d",a,b,c);

2014-10-18 10:26:04 515

原创 递归创建链表

Node *create(){ int input=0; scanf("%d",&input); if (input!=-1) { Node *node=new Node(); node->v=input; node->nxt=create(); return node; } return NULL;}

2014-10-18 10:25:48 2160

原创 二分查找

int binarySearch(int *data,int low,int high,int value){ if (data==NULL||lowhigh) { return -1; } while (low<=high) { int mid=(low+high)>>1; if (data[mid]==value) { return mid; } el

2014-10-18 09:56:37 451

原创 java 线程停止的方法

1.设置flag,死循环中检测flag是否为false2.interrupt方法 public static Object lock=new Object(); public static void main(String[] args) { Thread thread=new Thread(){ public void run() { synchronized (lo

2014-10-16 15:23:08 800

原创 java 中线程执行顺序控制

Thread t1 = new Thread(new Runnable() { @Override public void run() { System.out.println("t1"); } }); Thread t2 = new Thread(new Runnable() { @Override public void run() {

2014-10-16 14:21:06 16279 3

原创 快速排序

// DataStructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "stdlib.h"void quickSort(int *list,int low,int high){ if(low>=high) return ; int i=low; int j=high; int key=list[low]; w

2014-10-15 09:25:06 475

原创 滑动窗口的最大值

#include #include using namespace std;vector maxInWindow(const vector& num,int size){ vector maxInWindow; if (num.size()>=size&&size>=1) { deque index; for (int i = 0; i < size; i++) {

2014-10-14 17:55:13 1243

原创 按之字形顺序打印二叉树

使用两个栈。

2014-10-14 15:38:49 1609 2

Android Fragment Demo

Android Fragment Demo

2014-11-21

算符优先分析法 求FVT,LVT

算符优先分析法 求FVT,LVT 算符优先分析法 求FVT,LVT 算符优先分析法 求FVT,LVT 算符优先分析法 求FVT,LVT 算符优先分析法 求FVT,LVT

2011-09-05

空空如也

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

TA关注的人

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