- 博客(30)
- 资源 (3)
- 收藏
- 关注
转载 在Android中的一个程序中启动另一个程序
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。
2014-02-23 21:00:59
647
原创 Android内存问题之bimap
最近的项目中,展现的图片比较多,都是通过手机上传的图片,现在手机相机的分辨率都是一个赛一个的高。因此在展示图片的时候就出现了图片出现OOM,因此把之前的问题整理一下。由于Android系统的手机在系统底层上指定了堆内存的上限值,大部分手机的缺省值是16MB,部分高配置的机型也会设置位24MB,因此在申请内存空间的时候,要保证能够成功的申请到内存空间,应该保证当前已经分配的内存,加上
2014-02-07 21:16:34
985
原创 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
865
原创 关于hashmap
HashMap是基于哈希表的map接口的非同步实现。允许使用null值和null键。不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap实际上是一个链表散列的数据结构,即数组和链表的结合体。底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。1. 存取:当我们往HashMap中put元素的时候,先根据key的hashCode重
2014-01-28 16:38:30
801
翻译 hashmap的内部实现机制
HashMap的是基于Hash的规则。Hash简单的说就是对变量/对象的属性应用某种算法的后得到的唯一的串,用这个串来确定变量/对象的唯一性。一个正确的哈希函数必须遵守这个准则。当哈希函数应用在相同的对象或者恶趣啊了的对象的时候,每次执行都应该返回相同的值。换句话说,两个相等的对象应该又相同的hashcode。应当注意:所有Java对象都从Object类继承了一个默认的hashCode
2014-01-28 16:09:01
1672
转载 Android fragment相关
由于TabActivity在Android4.0以后已经被完全弃用,取而代之的是Fragment。Fragment是Android3.0新增的概念,Fragment翻译成中文是碎片的意思,不过却和Activity十分的相似。1. 特性Fragment是activity的界面中的一部分或一种行为。可以把多个Fragment组合到一个activity中来创建一个多界面并且可以在多个activi
2014-01-24 10:35:04
607
转载 android intent中的action data Category、Extras的重要属性
Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。诸如此类,都可以通过设置Intent属性来完成。Intent主要有以下四个重要属性,它们分别为: Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用
2014-01-22 17:32:02
872
翻译 关于Android多媒体框架(一)
Android最早采用的多媒体框架是OpenCore(PacketVideo)。1. OpenCore概述OpenCore的代码非常的庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:* PVPlayer:提供媒体播放器的功能,完
2014-01-21 10:07:26
876
原创 关于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
772
转载 service与activity通信的几种方式
在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,Intent中我们可以传递数据给Service,而当我们Service执行某些操作之后想要更新UI线程,这里、介绍两种方式来实现Service与
2014-01-15 17:36:44
1050
原创 关于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
662
转载 数据库的内联,外联查询
连接类型 定义内连接 只连接匹配的行左外连接 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行右外连接 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行全外连接 包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。(H)(theta)连接
2014-01-11 10:30:56
3597
原创 数据库范式
关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(BCNF)和第六范式(5NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库。
2014-01-11 10:21:27
625
原创 Java程序开发中需要注意的内存问题
1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问; 第二,控制实例的产生,以达到节约资源的目的; 第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2. 尽量避免随意使用静态
2014-01-11 10:10:23
1659
转载 基于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
1350
转载 Android MVC模式的原理
mvc是model,view,controller的缩写,mvc包含三个部分: 模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。 视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。 控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象
2014-01-09 15:07:16
1213
转载 单线程模型中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
1352
原创 Activity在屏幕旋转的时候的生命周期
Activity在屏幕旋转的时候:1. 不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,且横评的时候会执行依次,切竖屏的时候会执行两次。2. 设置android:configChanges="orientation",切屏还是会重新调用各个生命周期,切横屏/竖屏的时候只会执行一次。 3. 设置Activity的android:con
2014-01-09 15:03:38
2077
原创 Android task介绍
Android中Activity有四种启动模式:standard(default),singleTop,singleTask,singleInstance。standard或者singleTop activity可以被实例化多个,而singleTask或singleInstance只可以有一个实例。Android的Task是一个Activity栈,用来完成用户的某一个目的,而不管这个A
2014-01-09 14:55:54
1134
原创 Android的数据存储方式
Android的数据存储方式有5种:1. SharedPreferences存储数据:主要用来存储一些简单的配置信息的一种机制,例如登录的账号密码等,采用Map数据结构来存储数据,以key-value的方式存储,可以尽心更简单的读写。写入的时候要调用edit()使其处于编辑状态,然后才能修改数据,最后使用commit()提交到修改的数据。存储在设备中,采用的是XML格式。在DDMS的F
2014-01-09 14:42:22
729
原创 android基本组件
Android的四大组件:Activity:是Android程序与用户交互的窗口,是android构造块中的最基本的一种,它需要为保持各界面的状态做很多持久化的事情,腿善管理生命周期以及一些跳转的逻辑。Service:后台服务于acitivity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事物,定义好需要接受的Intent提供同步和异步的接口。ContentProvid
2014-01-09 10:53:08
582
转载 Android中Touch事件的处理逻辑
Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而这个
2014-01-06 16:51:46
568
原创 android中scrollview中嵌入listview 产生的滚动问题
android中使用ScrollView内嵌ListView共存会存在滚动的问题,并且ListView只显示一个半Item。当ListView的高度设定一定的值时,ListView同样地会显示对应的高度的Item。因此我们可以计算出这个ListView的总高度,再将它设置到ListView中,这样就解决了之前的问题。代码如下:public void setLis
2014-01-06 16:44:22
650
原创 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
1606
转载 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
492
转载 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
679
原创 android内存泄漏问题
android的内存泄漏问题,在开发过程中可能会因为java的内存回收机制而忽略。如果对象已经不再被使用,但是仍然有引用指向它,此时垃圾回收器是无法回收它的。此时,该对象占用的内存就无法被使用,造成了内存泄露。Android的一个应用程序的内存泄漏对别的应用程序影响不是很大,为了能够是应用程序安全且快速的运行,android的每个应用程序都会使用一个专有的Dalvik虚拟机实例来运行。并且
2013-12-27 10:45:38
764
转载 Java的内存
JAVA的内存管理,主要两方面:内存分配和内存回收。这两方面的工作都是由JVM自动完成。Java程序运行起来后,在内存中的状态可以看成三种:1. 可达状态:对象创建后,有一个以上的引用变量引用他。2. 可恢复状态:如果程序中某个对象不再有任何的变量引用它,它将先进入可恢复状态,此时系统的垃圾回收机制准备回收该对象的所占用的内存。回收之前,系统会调用finalize()方法进行资源清
2013-12-26 10:28:18
631
转载 关于android的JNI几点注意问题。
1.注册函数映射表 JNI API为了避免丑陋的函数名,提供了方法向Java虚拟机注册函数映射表。 这样当Java调用Native接口的时候,Java虚拟机就可以不用根据函数名来决定调用哪个函数了,直接通过查询表格就可以找到需要调用的函数了。2.关于JNI中的引用 JNI支持三种引用:局部引用、全局引用、弱全局引用。 局部引用和全局
2013-12-26 09:49:53
956
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人