自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孙群

记忆遥远了时光,脚步艰辛了成长,年少支付了梦想,坚守构筑了远方

  • 博客(188)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android中Intent对象与Intent Filter过滤匹配过程详解

如果对Intent不是特别了解,可以参见博文《Android中Intent概述及使用》,该文对本文要使用的action、category以及data都进行了详细介绍。本文在描述组件在manifest中注册的Intent Filter过滤器时,统一用intent-filter表示。概述我们知道,Intent是分两种的:显式Intent和隐式Intent。如果一个Intent明确指定了要启动的组件的完整

2015-09-16 01:12:45 19526 16

原创 Android中Intent概述及使用

Android中的Intent是一个非常重要且常用的类,可以用来在一个组件中启动App中的另一个组件或者是启动另一个App的组件,这里所说的组件指的是Activity、Service以及Broadcast。Intent的用途Intent主要有以下几种重要用途: 1. 启动Activity:可以将Intent对象传递给startActivity()方法或startActivityForResult(

2015-09-13 18:45:54 41018 7

原创 Android中通过Messenger与Service实现进程间双向通信

Android中的Service和其调用者既可以在同一个App中,也可以在不同的App。如果Service在App1中,而调用Service的客户端在App2中,那么我们就可以用Service实现进程间的相互通信。本文将介绍如何通过bindService和Messenger实现进程间通信(IPC),如果对bindService绑定服务和Binder不熟悉,可参见《Android中bindServic

2015-09-10 01:26:25 18980 17

原创 Android中bindService的使用及Service生命周期

Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindService方法,本文只探讨纯bindService的使用,不涉及任何startService方法调用的情况。如果想了解startService相关的使用,请参见《Android中startService的使用及Service生命周期》。bindService启动服务

2015-09-02 01:06:15 48619 17

原创 Android中IntentService的使用及其源码解析

为什么我们需要IntentService ?Android中的IntentService是继承自Service类的,在我们讨论IntentService之前,我们先想一下Service的特点: Service的回调方法(onCreate、onStartCommand、onBind、onDestroy)都是运行在主线程中的。当我们通过startService启动Service之后,我们就需要在Serv

2015-08-28 08:41:37 5307 1

原创 Android通过startService实现批量下载示例

关于startService的基本使用概述及其生命周期可参见博客《Android中startService的使用及Service生命周期》。本文通过批量下载文件的简单示例,演示startService以及stopService(startId)的使用流程。系统界面如下: 界面很简单,就一个按钮“批量下载文章”,通过该Activity上的按钮启动DownloadService。DownloadSer

2015-08-27 00:09:11 6589 2

原创 Android通过startService播放背景音乐简单示例

关于startService的基本使用概述及其生命周期可参见博客《Android中startService的使用及Service生命周期》。本文通过播放背景音乐的简单示例,演示startService的基本使用流程。系统界面如下: 界面上面就两个按钮,”播放音乐并退出Activity” 和 “停止播放音乐”。我们在该示例中,通过操纵Activity的按钮控制MusicService播放或停止播放音

2015-08-19 00:07:12 9366

原创 Android中startService的使用及Service生命周期

Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindService方法,本文只探讨纯startService的使用,不涉及任何bindService方法调用的情况。如果想了解bindService的相关使用,请参见《Android中bindService的使用及Service生命周期》。当我们通过调用了Context的s

2015-08-16 00:10:32 42718 9

原创 Android中Service概述

Service是Android中一种很重要的组件,一般来说有两种用途:用Service执行长期运行的操作,并且与用户没有UI界面的交互;某个应用程序的Service可以被其他应用程序的组件调用以便提供更广泛的使用。要想使得自己写的Service能够正常运行,必须在AndroidManifest.xml中通过标签注册Service,类似于通过标签注册Activity一样。有两种方式使用Service,

2015-08-15 17:48:19 3040

原创 Android中Looper的quit方法和quitSafely方法

Looper是通过调用loop方法驱动着消息循环的进行: 从MessageQueue中阻塞式地取出一个消息,然后让Handler处理该消息,周而复始,loop方法是个死循环方法。那如何终止消息循环呢?我们可以调用Looper的quit方法或quitSafely方法,二者稍有不同。 Looper的quit方法源码如下:public void quit() { mQueue.quit(fals

2015-08-13 22:02:13 25028

原创 Android中HandlerThread的使用及源码解析

HandlerThread类可以很方便地创建一个带有looper的新线程。该looper可以被用来创建hanlder对象。需要注意的是start方法必须要调用。HandlerThread使用起来之所以感觉方便,是因为HandlerThread这个类在run方法内部对Looper做了一些工作(调用Looper.prepare()和Looper.loop()方法),这样我们开发者在使用的时候就不需要太多的与Looper打

2015-08-06 17:36:37 7114 3

原创 Android新线程中更新主线程UI中的View方法汇总

Android中的UI控件都不是线程安全的,所以如果在某一个新线程中直接更新主线程中的UI控件时就会报如下错误: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 为了解决在另一个线

2015-08-05 17:36:39 9512

原创 深入源码解析Android中的Handler,Message,MessageQueue,Looper

本文主要是对Handler和消息循环的实现原理进行源码分析,通过分析源码的方式去探索Thread、MessageQueue、Looper、Message以及Handler的实现原理,并最终通过一张图的形式将它们之间的关系展示出来。

2015-08-01 02:20:53 31253 55

原创 Android中Handler的使用

Handler是Android中引入的一种让开发者参与处理线程中消息循环的机制。每个Hanlder都关联了一个线程,每个线程内部都维护了一个消息队列MessageQueue,这样Handler实际上也就关联了一个消息队列。可以通过Handler将Message和Runnable对象发送到该Handler所关联线程的MessageQueue(消息队列)中,然后在Hanlder的handleMessage中处理消息。

2015-07-29 00:16:47 95190 32

原创 Java中常见的IO流及其使用

Java中常见的IO流的介绍及使用:ByteArrayInputStream & ByteArrayOutputStreamFileInputStream & FileOutputStreamPipedInputStream & PipedOutputStreamObjectInputStream & ObjectOutputStreamSequenceInputStream...

2015-07-09 19:54:49 10029 1

原创 深入理解Java中的HashMap的实现原理

1. HashMap为了提高查找的效率使用了分块查找的原理,对象的hashCode返回的哈希值进行进一步处理,这样就有规律的把不同的元素放到了不同的区块或桶中。下次查找该对象的时候,还是计算其哈希值,根据哈希值确定区块或桶,然后在这个小范围内查找元素,这样就快多了。2. 如果重写了equals方法,那么必须重写hashCode方法,保证如果两个对象相互equals,那么二者的hashCode的返回值必定相等。3. 如果两个对象的hashCode方绘制相等,这两个对象不必是equals的。

2015-06-22 18:44:08 5608 1

原创 Java中常见的集合容器类关系图

Java中常见的集合容器类关系图

2015-06-19 23:36:24 3382 1

原创 Java中的嵌套类、内部类、静态内部类

嵌套类可以分为两种,静态的和非静态的,即静态嵌套类和非静态嵌套类。非静态嵌套类又叫做内部类(Inner Class)。我们通常所说的静态内部类其实是不严格的,严格的说应该叫做静态嵌套类(Static Nested Class)。虽然内部类和静态嵌套类都属于嵌套类,但是二者有本质区别:内部类的实例化对象需要绑定一个外围类的实例化对象,而静态嵌套类的实例化对象不能也无法绑定外围类的实例化对象。

2015-06-14 12:03:20 11947 1

原创 Java类的多态机制

Java中除了static方法和final方法(private方法也是final方法,只不过是隐式的为final)之外,其他所有的方法都是后期绑定。Java类的多态指的是当将子类向上转型为父类型并调用父类型中相应的方法时,多态机制会根据动态绑定自动判断出调用相应的子类的方法。也就是说多态机制的存在的基础是子类实现了对父类中相应方法的函数覆盖。

2015-06-06 19:23:44 3007 6

原创 Java中的垃圾回收

关于Java垃圾回收机制的几点:1. What ?Java中除了基本类型之外都是对象,基本类型分配的是堆栈内存,对象时通过new分配的堆内存。不同于C或C++,对象没有析构函数,Java是通过垃圾回收机制回收对象的内粗的。也就是当一个对象没有被其他对象或变量使用和引用的时候,该对象就属于无用的对象,在某种情况下,Java的垃圾回收机制就会回收这些无用的对象,以释放堆内存。2. When ?垃圾回收

2015-06-01 22:43:21 1591

原创 2014年总结

新的一年即将过去,在大年三十这天赶紧简单记录一下这一年的收获。2014年,说实话,很累,不过也收获了很多,第一次参与全球性产品的发布,第一次开发基于二十多种语言的产品,第一次感受到与多国开发人员协作的体验,对“产品”的认识有所提高。在年末带着另一半跟公司同事一起去泰国玩了几天,第一次出国,看人妖,泡海澡,逛夜市,玩的不亦乐乎。在此也记录一下明年的计划:1. 开源更多高质量的项目放到GitHub上2

2015-02-18 18:35:16 2017 2

原创 Ubuntu软件升级重启后,无法登陆,光标闪烁

我用的Ubuntu版本是12.04,有次提示软件更新(不是升级操作系统),就随手更新了,提示重启,

2014-09-17 21:51:47 4175

原创 OpenGL中的坐标变换、矩阵变换

OpenGL中存在六种坐标系:1. Object or model coordinates(模型坐标系)2. World coordinates(世界坐标系)3. Eye (or Camera) coordinates(视坐标系)4. Clip coordinates(裁剪坐标系)5. Normalized device coordinates(归一化设备坐标系)6. Wi

2014-06-01 16:12:33 20960 17

原创 OpenGL 矩阵变换相关链接

感觉这几篇文章对OpenGL中的矩阵变化解释的比较好:

2014-05-31 07:51:18 2488 3

原创 Eclipse经验总结

1.在Eclipse要确保package的结构要与实际的文件夹目录结构一致,否则会报错"The declared packag"

2014-04-07 15:15:36 2370

原创 Java经验总结

1.自己手动创建java文件时,不要将其设置为UTF-8编码,否则在编译的时候会报“非法字符”的错误,应该用ANSI编码。如果使用了ANSI编码,那么Java文件中的中文不会受影响,正常输出。

2014-04-06 19:26:50 2564

原创 正则表达式学习

1. 如果想同时使用多个修饰符可以这样写/reg/gi2. .(点号)匹配任何字符,除了换行和行结束符3. n?匹配零个或一个n的字符串,例如/http(s?)/可以匹配http或https4.n+匹配至少包含一个n的字符串5.n*匹配包含零个或多个n的字符串,例如可以用(.*)匹配连续任意字符串,例如/http:\/\/www.(.*).com/既可以匹配http://www.b

2014-03-30 17:20:28 2310

原创 Dojo点滴记录

1.如果在小部件a的模板文件中使用了其他的小部件b,那么就需要在a的js文件中也要引入b的路径,并且a还要继承自dijit/_WidgetsInTemplateMixin,否则无法正确解析a中的b小部件。2.使用on、topic.subscribe、aspect.before、aspect.after都会返回一个handler对象,该对象有个一个remove方法,在小部件中使用以上几个

2014-03-29 18:42:01 2712

原创 Git使用总结

1.branchgit branch列出所有分支,当前分支为绿色git checkout demo将当前分支切换为demo分支git push origin develop将更新推送到develop分支git push将更新推送到所有分支,不过有可能GitHub上的某个分支拒绝接收更新

2014-03-29 17:49:19 2397

原创 前端点滴记录

1.强制浏览器刷新某个dom节点a.removeChild(b);a.appendChild(b);2.经测试发现IE10中不支持dom.dataset属性,如果如下自定了属性的话,在Chrome的高版本中可以通过div.dataset.tip直接获取,而在IE10中要通过div.getAttribute('data-tip')获取,IE11没测试过是否支持dataset,di

2014-03-29 17:25:10 2240

原创 本命年总结

2013是蛇年,也是我的本命年,转眼就要过去了,一晃自己都24了,在帝都漂了一年半,把自己今年的变化写下来。今年自己换工作了,按照去年的计划,自己上半年开始用WebGL鼓捣WebGlobe,最后鼓捣的差不多了,然后就把做的东西放到了HiWebGL站长的站点上,算是自己学习WebGL的一个阶段性成果吧。自己做这个东西主要是自己感兴趣,因为渲染对于GIS太重要了,当然自己只是会点皮毛而已。当时厌倦

2014-01-25 09:30:01 2991

原创 Element属性方法的浏览器兼容性概览

参考自https://developer.mozilla.org/en-US/docs/Web/API/Element

2013-12-17 09:39:42 8041

原创 document.documentElement

参考   https://developer.mozilla.org/zh-CN/docs/Web/API/document.documentElement             http://www.w3schools.com/jsref/prop_document_documentelement.asp该属性为只读属性,返回的元素是document的根元素(例如:HTML文档的根元素

2013-12-16 23:10:13 2185

原创 getComputedStyle与currentStyle

本文参考https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle1.简介   getComputedStyle是window下的一个全局函数,可以获取元素真正使用的样式。2.语法   var style = window.getComputedStyle(element[, ps

2013-12-15 20:00:40 3668

原创 document.devaultView

在浏览器中,该属性返回当前 document 对象所关联的 window 对象,如果没有,会返回 null。该属性为只读,IE 9 以下版本不支持 defaultView。

2013-12-15 19:21:47 1947

原创 Linux目录结构

Linux文件系统是采用层级式的目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其它的目录。跟目录/下主要包括以下一些目录:/root是存放系统管理员root用户文件的目录/home/bin/sbin/etc/mnt是专门挂载光驱和软驱的目录/var/boot

2013-12-01 13:22:35 2310 3

原创 dojo AMD开发之dojo/_base/html

在dojo的AMD开发方式中,以前在dojo全局中的方法被拆分到各个不同的文件中,比如在开发一个widget的时候经常要对dom进行操作,为了遵从AMD的开发方式,要引入很多的文件,比如dojo/dom-construct、dojo/dom-class、dojo/dom-style等,这样每次引入的文件太多,一则麻烦,二则加大了http的请求数量,dojo官方也考虑到了这个问题,将dojo中有关d

2013-12-01 00:51:03 2349 2

原创 Linux下开发C

首先用vi编写c程序,然后用gcc进行编译,具体如下:1.gcc -v可以察看gcc的版本2.执行vi test.cpp3.在vi中收入以下代码#include int main(){ printf("Hello World!"); return 0;}4.输入完成后在vi的底行模式中执行:wq保存退出5.在终端中执行gcc test.cpp6.执

2013-11-30 23:45:55 2289

原创 Linux下vi使用

1.vi有三种模式:指令模式(Command Mode)、插入模式(Insert Mode)以及底行模式(Last line Mode)。2.指令模式下输入i、a、o、r可进入插入模式,插入模式下按Esc键可返回指令模式。3.指令模式下输入:可进入底行模式,底行模式下按回车键执行完命令或按Esc键都可以返回指令模式。4.插入模式与底行模式之间不能直接进行切换,二者如果需要切换需要首先切

2013-11-30 22:03:34 2477

原创 Linux常用命令

1.Ctrl+Alt+T -> 显示控制台2.pwd显示当前的路径3.ls列出当前路径下的文件4.ls -l显示当前路径下文件的详细信息5.ls -a显示隐藏文件6.ls -al同时显示隐藏文件,并以长列表形式显示文件的详细信息5.cd跳转到某个路径下6.sudo一般用于执行root权限,如果某个命令无法正常执行时,在命令前加入sudo试试 7.sudo usera

2013-11-29 21:03:59 2087

在Windows上流畅投影演示Android 程序

在Windows上安装客户端,作为接收器。 在Android上安装apk,作为发射器。 通过Wifi将二者连接。

2016-04-12

PorterDuffXfermode

该资源是一个Android Studio工程,演示了16种PorterDuffXfermode的效果

2016-01-11

Android使用MaskFilter的Demo

本示例代码演示了在Android上如何通过调节BlurMaskFilter以及EmbossMaskFilter的参数调整绘制出的阴影以及浮雕效果,详见博文http://blog.csdn.net/iispring/article/details/49877661

2015-11-17

Android中Canvas绘图基础详解

该代码是一个完整的Android工程,详细演示如了如何使用Android中的各种drawXXX方法,以及画笔Paint如何影响绘制的效果。 具体参见博文: http://blog.csdn.net/iispring/article/details/49770651

2015-11-11

Android中使用Loader读取联系人信息(兼容低版本Android)

本示例演示了在Android中如何使用Loader异步读取联系人数据,并且通过使用support v4支持低版本的Android系统(1.6+)。 该源码的详细解读可参见博文http://blog.csdn.net/iispring/article/details/48834767

2015-09-30

Android利用Intent拍照、摄像、打电话、发短信、发邮件等示例

该资源是一个完整的Android应用,演示了如何在Android中利用Intent进行拍照、摄像、打电话、发短信、发邮件等

2015-09-19

ArcObjects开发基础与技巧——基于Visual+Basic.NET-蒋波涛

这本书是蒋波涛所写的第一本书,是GIS界公认的AE开发入门最好的一本书,内容丰富翔实,对AE想入门的初学者来说是最合适的,希望大家从中吸收其精华!

2010-04-28

空空如也

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

TA关注的人

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