自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录

足迹

  • 博客(30)
  • 资源 (3)
  • 收藏
  • 关注

转载 在Android中的一个程序中启动另一个程序

Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。

2014-02-23 21:00:59 616

原创 Android内存问题之bimap

最近的项目中,展现的图片比较多,都是通过手机上传的图片,现在手机相机的分辨率都是一个赛一个的高。因此在展示图片的时候就出现了图片出现OOM,因此把之前的问题整理一下。由于Android系统的手机在系统底层上指定了堆内存的上限值,大部分手机的缺省值是16MB,部分高配置的机型也会设置位24MB,因此在申请内存空间的时候,要保证能够成功的申请到内存空间,应该保证当前已经分配的内存,加上

2014-02-07 21:16:34 937

原创 node.js的事件机制

Node.js在Github代码库上介绍:Evented I/O  for V8 JavaScript(基于V8引擎的事件驱动IO)。与Rhino做比较,可以看出Rhino引擎支持的后端JavaScript拜托不掉其他语言的同步执行的影响。Node.js的两个状况:1)统一了前后端JavaScript的编程模型。2)利用事件机制充分利用用异步IO突破单县城编程模型的性能瓶颈,使

2014-02-03 17:57:17 807

原创 关于hashmap

HashMap是基于哈希表的map接口的非同步实现。允许使用null值和null键。不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap实际上是一个链表散列的数据结构,即数组和链表的结合体。底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。1. 存取:当我们往HashMap中put元素的时候,先根据key的hashCode重

2014-01-28 16:38:30 741

翻译 hashmap的内部实现机制

HashMap的是基于Hash的规则。Hash简单的说就是对变量/对象的属性应用某种算法的后得到的唯一的串,用这个串来确定变量/对象的唯一性。一个正确的哈希函数必须遵守这个准则。当哈希函数应用在相同的对象或者恶趣啊了的对象的时候,每次执行都应该返回相同的值。换句话说,两个相等的对象应该又相同的hashcode。应当注意:所有Java对象都从Object类继承了一个默认的hashCode

2014-01-28 16:09:01 1619

转载 Android fragment相关

由于TabActivity在Android4.0以后已经被完全弃用,取而代之的是Fragment。Fragment是Android3.0新增的概念,Fragment翻译成中文是碎片的意思,不过却和Activity十分的相似。1. 特性Fragment是activity的界面中的一部分或一种行为。可以把多个Fragment组合到一个activity中来创建一个多界面并且可以在多个activi

2014-01-24 10:35:04 578

转载 android intent中的action data Category、Extras的重要属性

Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。诸如此类,都可以通过设置Intent属性来完成。Intent主要有以下四个重要属性,它们分别为:  Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用

2014-01-22 17:32:02 816

翻译 关于Android多媒体框架(一)

Android最早采用的多媒体框架是OpenCore(PacketVideo)。1. OpenCore概述OpenCore的代码非常的庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:* PVPlayer:提供媒体播放器的功能,完

2014-01-21 10:07:26 828

原创 关于Android启动过程

1. Linux内核。Android是基于Linux内核的系统平台,启动的时候,首先通过bootloader,加载Linux内核。在Linux加载启动的时候,与普通的Linux启动过程相同,先初始化内核,然后调用init 进程。2. init。Android init进程对各种设备进行初始化,运行Android Framework所需用的各种Daemon、Context Manager

2014-01-20 10:45:38 728

原创 service 如何抛出ANR

Service在主线程中执行耗时操作,操作大于5秒,则ANR。费时和网络等操作放到线程中执行。

2014-01-15 17:54:46 777

转载 service与activity通信的几种方式

在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,Intent中我们可以传递数据给Service,而当我们Service执行某些操作之后想要更新UI线程,这里、介绍两种方式来实现Service与

2014-01-15 17:36:44 1007

原创 关于Android中的context

Android中Context是常用的类。在创建Application,Service,Activity时,创建Context。Context,中文直译为“上下文”,在SDK中,对其说明如下:Interface to global information about an application environment. This is an abstract class whose

2014-01-15 17:23:01 617

转载 数据库的内联,外联查询

连接类型        定义内连接        只连接匹配的行左外连接        包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行右外连接        包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行全外连接        包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。(H)(theta)连接  

2014-01-11 10:30:56 3532

原创 数据库范式

关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(BCNF)和第六范式(5NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库。

2014-01-11 10:21:27 577

原创 Java程序开发中需要注意的内存问题

1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:  第一,控制资源的使用,通过线程同步来控制资源的并发访问;  第二,控制实例的产生,以达到节约资源的目的;  第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2. 尽量避免随意使用静态

2014-01-11 10:10:23 1607

转载 基于HTTP协议的断点续传

断点续传,顾名思义,继续上次传输中断处,继续传输。其原理很简单,就是在HTTP协议的请求上和一般的下载有所不同。例如:浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为 wwww.download.com,文件名为 down.zip的文件。 GET /down.zip HTTP/1.1 Accept: image/gif, image/x-xbitmap,

2014-01-11 09:57:09 1302

转载 Android MVC模式的原理

mvc是model,view,controller的缩写,mvc包含三个部分:  模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。  视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。  控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象

2014-01-09 15:07:16 1173

转载 单线程模型中Message、Handler、Message Queue、Looper之间的关系

简单的说,Handler获取当前线程中的looper对象,looper用来从存放Message的MessageQueue中取出Message,再有Handler进行Message的分发和处理.Message Queue(消息队列):用来存放通过Handler发布的消息,通常附属于某一个创建它的线程,可以通过Looper.myQueue()得到当前线程的消息队列Handler:可以发布或者处

2014-01-09 15:05:53 1290

原创 Activity在屏幕旋转的时候的生命周期

Activity在屏幕旋转的时候:1. 不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,且横评的时候会执行依次,切竖屏的时候会执行两次。2. 设置android:configChanges="orientation",切屏还是会重新调用各个生命周期,切横屏/竖屏的时候只会执行一次。 3. 设置Activity的android:con

2014-01-09 15:03:38 2024

原创 Android task介绍

Android中Activity有四种启动模式:standard(default),singleTop,singleTask,singleInstance。standard或者singleTop activity可以被实例化多个,而singleTask或singleInstance只可以有一个实例。Android的Task是一个Activity栈,用来完成用户的某一个目的,而不管这个A

2014-01-09 14:55:54 1048

原创 Android的数据存储方式

Android的数据存储方式有5种:1. SharedPreferences存储数据:主要用来存储一些简单的配置信息的一种机制,例如登录的账号密码等,采用Map数据结构来存储数据,以key-value的方式存储,可以尽心更简单的读写。写入的时候要调用edit()使其处于编辑状态,然后才能修改数据,最后使用commit()提交到修改的数据。存储在设备中,采用的是XML格式。在DDMS的F

2014-01-09 14:42:22 676

原创 android基本组件

Android的四大组件:Activity:是Android程序与用户交互的窗口,是android构造块中的最基本的一种,它需要为保持各界面的状态做很多持久化的事情,腿善管理生命周期以及一些跳转的逻辑。Service:后台服务于acitivity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事物,定义好需要接受的Intent提供同步和异步的接口。ContentProvid

2014-01-09 10:53:08 557

转载 Android中Touch事件的处理逻辑

Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而这个

2014-01-06 16:51:46 536

原创 android中scrollview中嵌入listview 产生的滚动问题

android中使用ScrollView内嵌ListView共存会存在滚动的问题,并且ListView只显示一个半Item。当ListView的高度设定一定的值时,ListView同样地会显示对应的高度的Item。因此我们可以计算出这个ListView的总高度,再将它设置到ListView中,这样就解决了之前的问题。代码如下:public void setLis

2014-01-06 16:44:22 627

原创 nodejs ejs 创建项目

在byvoid写的《node.js开发指南》中,用express ejs创建项目,按照书中的结果如下:直行后,实际上是jade。打开package.json。如何采用ejs,而不是使用jade呢。其实用如下命令即可。express -e microblog2  结果如下:执行 cd microblog2 && npm instal

2014-01-04 10:52:05 1552

转载 MongoDB的Replica Sets的介绍和部署

MongoDB在1.6版本对开发了新功能replica set,这比之前的replication功能要强大一些,增加了故障自动切换和自动修复成员节点,各个DB之间数据完全一致大大降低了维护成本。auto shard 已经明确说明不支持replication paris,建议使用replica set,replica set故障切换完全自动。Replica Sets的结构非常类似一个集群,其中一

2013-12-31 16:19:57 473

转载 Mongodb MapReduce

MongoDB的MapReduce相当于MySql的“group by”,所以在MongoDB上使用Map/Reduce进行并行统计比较容易。使用MapReduce要实现两个函数Map函数和Reduce函数,Map函数使用emit(key,value),遍历collection中的所有的记录,将key和value传递给Reduce函数进行处理。Map函数和Reduce函数可以使用JavaScr

2013-12-31 15:09:13 635

原创 android内存泄漏问题

android的内存泄漏问题,在开发过程中可能会因为java的内存回收机制而忽略。如果对象已经不再被使用,但是仍然有引用指向它,此时垃圾回收器是无法回收它的。此时,该对象占用的内存就无法被使用,造成了内存泄露。Android的一个应用程序的内存泄漏对别的应用程序影响不是很大,为了能够是应用程序安全且快速的运行,android的每个应用程序都会使用一个专有的Dalvik虚拟机实例来运行。并且

2013-12-27 10:45:38 723

转载 Java的内存

JAVA的内存管理,主要两方面:内存分配和内存回收。这两方面的工作都是由JVM自动完成。Java程序运行起来后,在内存中的状态可以看成三种:1. 可达状态:对象创建后,有一个以上的引用变量引用他。2. 可恢复状态:如果程序中某个对象不再有任何的变量引用它,它将先进入可恢复状态,此时系统的垃圾回收机制准备回收该对象的所占用的内存。回收之前,系统会调用finalize()方法进行资源清

2013-12-26 10:28:18 600

转载 关于android的JNI几点注意问题。

1.注册函数映射表      JNI API为了避免丑陋的函数名,提供了方法向Java虚拟机注册函数映射表。      这样当Java调用Native接口的时候,Java虚拟机就可以不用根据函数名来决定调用哪个函数了,直接通过查询表格就可以找到需要调用的函数了。2.关于JNI中的引用     JNI支持三种引用:局部引用、全局引用、弱全局引用。      局部引用和全局

2013-12-26 09:49:53 914

深入理解Java虚拟机:JVM高级特性与最佳实践

深入理解Java虚拟机:JVM高级特性与最佳实践。介绍虚拟机的。 有用的话,可以下载。

2013-12-31

空空如也

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

TA关注的人

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