自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 Android初始化流程

Android启动过程:(1)启动时首先启动Linux基础系统,然后引导加载Linux Kernel并启动初始化进程。(2)接着,启动Linux守护进程(deamons),该进程启动内容:    启动USB守护进程(usbd)来管理USB连接,    启动Android Debug Bridge守护进程(adbd)来管理adb连接,    启动Debug守护进程(debugge

2012-09-07 01:27:59 1386

原创 Andriod系统架构

Andriod框架分层:(从高到低)应用程序层(Applications)、应用程序框架层(Application Framework)、系统程序库层(Libraries)、Android运行库( Android Runtime )、Linux内核层(Linux Kernel)(一)应用程序层:包括(SMS/MMS短消息通讯、日历、地图、浏览器、联系人管理程序等)的应用程序,使

2012-09-07 01:26:36 1365

原创 Notification使用

Notification代表一种全局效果的通知,程序通过NotificationManager服务来发送。使用Notification步骤:    (1)调用getSystemService(NOTIFICATION_SERVICE)方法获取系统的notificationManager服务;    (2)通过构造器创建一个Notification对象;    (3)为Notific

2012-09-07 01:19:48 581

原创 SQLite数据库创建与增删查改

什么是 SQLiteDatabase?        一个 SQLiteDatabase 的实例代表中,了一个SQLite 的数据库,通过SQLiteDatabase 实例的一些方法,我们可以执行SQL 语句,对数据库进行增、删、查、改的操作。需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用当中,数据库的名字也是惟一的。因此,在使用时不需要创建数据库,直接创建表就可以进行生成数

2012-09-07 01:14:13 1509

原创 AsyncTask详解

Android UI的操作并不是线程安全的,并且必须要在UI线程了里面执行(主线程)。单线程模型原则:    1、不要阻塞UI线程    2、确保只有UI线程访问Android UI工具包通常我们执行一些操作,为了不要阻塞UI线程,一些其他操作的常规做法是新开一个线程去执行,然后在其他线程里面是不能直接访问主UI成员,例如TextView.setText()等操作不允许访问。a

2012-09-07 01:02:37 777

原创 多媒体应用

音乐播放:    MediaPlay播放音频:(资源占用量较高、延迟时间较长、不支持多个音频同时播放等。这些缺点决定了MediaPlayer在某些场合的使用情况不会很理想)。    prepare():准备播放;    start():开始或者恢复播放;    stop():停止播放;    pause():暂停播放;    static MediaPaly create(

2012-09-07 00:54:25 430

原创 广播接收者(BroadcastReceiver)

实现广播接收者:    (1)继承BroadcastReceiver类,并重写onReceiver方法;     例子:         public class IncomingSMSReceiver extends BroadcastReceiver {             @Override             public void onReceive(Cont

2012-09-07 00:46:18 484

原创 自定义控件

创建新的视图控件:1、如果现有控件满足基本功能,只需要对现有控件的外观或者行为进行修改或者扩展,通过重写事件处理程序和onDraw方法,但是仍然回调超类方法,对视图进行定制,不需要重新实现它的功能。2、通过组合多个视图创建不可分割的、可重用的小组件,从而使他可以综合使用多个相互的视图的功能。3、当需要一个全新的界面,通过修改和组合现有控件不能实现这个目标,就需要创建一个全新的控件。

2012-09-07 00:33:12 402

原创 反编译apk

所需工具:(1)AXMLPrinter2.jar(2)baksmali.jar(3)smali.jar步骤:(1)用解压工具解压apk文件(2)打开终端,进入解压目录(3)用 AXMLPrinter2.jar查看apk中的布局xml文件:    执行命令:java   -jar  AXMLPrinter2.jar  xxx.xml

2012-09-07 00:27:19 405

原创 Android常用命令

(1)android:启动SDK and manager;(2)android list avds:列出全部创建的android模拟器;(3)android list targets:列出所有可用的SDK版本;(4)adb devices:列出所装载启动的设置(包括模拟器和真机);(5)adb shell:进入设备目录‘/’,取得对设备的控制权,可以进行命令操作,如:ls、cd等;

2012-09-07 00:24:47 436

原创 地图服务

(一)选择位置提供器:1、调用getProvider,并传递名称:    LocationManager locationManager = (LocationManager)getSystemService(LocationManager.LOCATION_SERVICE) ;    LocationProvider gpsProvider = locationManager.get

2012-09-06 02:29:56 511

转载 Fragment详解

Fragment概述:Fragment是activity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面并且你可以在多个activity中重用一个Fragment。你可以把Fragment认为模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。    Fragment不

2012-09-06 01:58:38 1002

原创 (一)核心组件详解

Android有4个核心组件,分别是:提供界面显示的Activity、提供后台计算的Service、提供进程间通信的Intent和提供广播接收的BroadcastReceiver。本篇将详细介绍这几个核心组件的使用方法和技巧,以及背后的一些逻辑和原理。(一)Activity组件Activity是Android最重要的组成部分之一,是实际与用户交互的组件。其重要的几个子类有:List

2012-08-25 01:38:20 1256

原创 内存分配策略

新生代GC(Minior GC):指发生在新生代的垃圾收集动作,因为Java对象大多具备朝生夕灭的特性,所以Minor GC非常频繁,一般回收速度也比较快。老年代GC(Major GC/Full GC):指发生在老年代的GC,出现Major GC,经常会伴随至少一次的Minor GC,Major GC的速度一般会比Minor GC慢10倍以上。(一)对象有现在Eden分配大多数

2012-08-11 22:05:33 438

原创 垃圾收集器

(一)判断对象存活方法1、引用计数算法:    给对象中添加一个引用计数器,当有地方引用它,计数器值加1,;当引用失效,计数器值减1,任何计数器值为0的对象就是不可能再被使用的垃圾对象。    引用计数算法实现简单,判断效率高,但Java没有选用,主要是因为它很难解决对象之间相互循环引用的问题。2、根搜索算法:    基本思路是通过一系列名为“GC Roots”的对象为起点

2012-08-11 21:13:26 585

原创 Java内存区域

Java虚拟机所管理的内存将会包括以下几个运行时区域:1、方法区(Method Area)2、虚拟机栈(VM Stack)3、本地方法栈(Native method Stack)4、堆(Heap)5、程序计数器(Program Counter Register)(一)程序计数器程序计数器是一块比较小的内存空间,作用可以看做是当前线程所执行的字节码的行号指示器。在

2012-08-11 21:05:48 475

原创 快速排序

给定无序的数组,进行排序。分析:(1)快速排序是一种快速的分治算法,之所以快是因为非常紧凑而又高度优化的内部循环。(2)最佳情况运行时间O(NlogN),最坏情况运行时间O(N的平方),平均情况运行时间O(NlogN)。(3)通过选择任意元素,称为支点,分割成为两个互不相交的组,然后递归进行分割排序。(4)通常选择中间元素((low+high)/2)作为支点,也可以选择

2012-08-10 14:17:58 339

原创 归并排序

给定无序的数组,进行排序。分析:(1)如果排序项为0或者1,则返回。(2)分别递归的对前半部分和后半部分排序。(3)将两个有序部分归并成一个有序组。算法[时间复杂度O(NlogN)、空间复杂度(N)]:    public void mergeSort( int[] a ) {        int[] tmp = new int[a.length] ;

2012-08-10 14:17:22 277

原创 希尔排序

给定无序的数组,进行排序。分析:(1)希尔德思想是避免大量数据的移动,先比较相距较远的元素,再比较较近的元素。(2)希尔建议gap(间隔)从N/2开始,并一直减半,知道gap等于1。(3)在最坏情况下,希尔增量表现出了二次行为。(4)gap除以2.2在实践中表现出优秀的性能。算法[O(N的3/2次方)]:    public void shellSort( in

2012-08-10 14:16:58 332

原创 二分查找

给定有序数组,从中查找指定的数据项。分析:输入数组有序,二分查找从数组中间而不是端点开始查找,记录low和high,如果被查找项存在,这两个值用来确定被查找数据项在数组的范围;初始范围是0到N-1,low=0,high=N-1;如果low大于high,则查找项不存在。算法[0(logN)]:    public int binarySearch( int[] a , int

2012-08-10 14:16:13 457

原创 最大连续子序列和的问题

给定整数A1、A2、A3....(整数可能为负),求连续整数∑A的最大值。分析:(1)最大连续子序列不可能是负值;(2)所有与最大连续子序列的和一定为负(或0),否则最大连续子序列将包括这类子序列(3)对于任意Ai...Aj有S算法[O(N)]:    public int maxmumSubsequenceSum( int[] a ) {        int

2012-08-10 14:14:57 971

原创 ApacheMina(入门)

Mina概念:Apache的Mina(Multipurpose Infrastructure NetWorked Applications)是一个网路应用框架,可以帮助用户开放高性能和搞扩展的网路应用程序;它提供了一个抽象的、事件驱动的异步API,使用Java NIO在各种传输协议(如TCP/IP、/UDP/IP协议等)下快速高效开发。MINA基本类/接口:接口IoAccept

2012-07-23 23:06:26 548

原创 JQuery语法

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。基础语法是:$(selector).action()美元符号定义 jQuery选择符(selector)“查询”和“查找” HTML 元素jQuery 的 action() 执行对元素的操作示例$(this).hide() - 隐藏当前元素$("p").hide() - 隐藏所有段落

2012-07-20 17:09:50 367

原创 JQuery选择器

jQuery 元素选择器jQuery 使用 CSS 选择器来选取 HTML 元素。$("p") 选取 元素。$("p.intro") 选取所有 class="intro" 的 元素。$("p#demo") 选取 id="demo" 的第一个 元素。jQuery 属性选择器jQuery 使用 XPath 表达式来选择带有给定属性的元素。

2012-07-20 17:08:57 395

原创 文件缓存

要实现文件缓存在客户端,可以使用根节点html元素的manifest属性,引用一个清单文件,使用UTF-8编码,列出了离线访问应用时需要缓存的文件清单。manifest属性定义的值是一个文件路径,所对应的MIME类型应该为text/cache-manifest。Eg:html文件(test.html):

2012-07-19 16:43:14 408

原创 手机网页的HTML

元数据:定义缓存:        content的值:        public:任何地方可以缓存网页;        private:单个用户私有,会在一个私有缓存区缓存网页,缓存的网页仅能发送给单个客户端;        no-cache:不能缓存在任何缓存区域;          no-store:响应和导致该响应的请求不能存储在任何缓存区内;

2012-07-19 16:40:33 969

原创 Web存储

HTML5中,开发者有两种选择:Web Storage和Web SQL DatabaseWeb Storage:web存储机制是通过字符串形式的key/value对来安全的存储和使用数据的方法。Web存储与HTTPCookie的区别:(1)存储的容量:Web存储量大,更安全,更容易使用;对于Cookie的存储量是有限制的。对于IE浏览器,Cookie至多存储4KB信

2012-07-19 16:34:12 585

原创 Communication API

主要探讨用于构建实时跨源通信的两个重要模块:跨文档消息通信和XMLHttpRequest Level2。(一)跨文档消息通信通常出于安全方面考虑,运行于同一个浏览器的框架、标签页、窗口间的通信一直受到严重的限制,然而现实中存在一些合理的让不同站点的内容能在浏览器内进行交互的需求。为满足要求而引进的新功能:跨文档消息通信。可以确保窗口间进行跨源通信。发送消息通过postMessage

2012-07-19 16:29:58 672

原创 Ajax通信步骤

(一)创建XMLHttpRequest对象:重要属性有:status、statusText、    function CreateRequestObject() {        var ajaxObject ;        try{            ajaxObject = new XMLHttpRequest() ;        //Opera 8.0+ , Fi

2012-07-19 16:21:29 1559

原创 HTML5新功能

(一)新的DOCTYPE和字符集DOCTYPE被简化:    html5的DOCTYPE会触发浏览器以标准兼容模式显示页面;Web页面有多种显示模式:怪异模式(Quirks)、近标准模式(Almost Standards)、标准模式(Standards)字符集声明被简化:    (二)新元素和旧元素元素分为7大类:1、内嵌:向文档中添加其他类型的内容;eg:audi

2012-07-19 16:19:23 455

原创 WebSocket API

HTML5 WebSocket是HTML5中最强大的通信功能,定义了一个全双工通信信道,仅通过Web上的一个Socket即可进行通信;是对常规HTTP通信的另一种增量加强。(一)实时和HTTP:WebSocket之前实现都是通过传统的Comet和Ajax轮询、长轮询以及流解决的。1、使用Comet技术可以让服务器主动以异步方式向客户端推送信息,会使针对传输信息到客户端的响应延迟完成。

2012-07-19 16:15:51 2075

原创 Forms API

HTML5 Forms核心概念:规范的核心是功能性动作和语义,而非外观和显示效果。(一)HTML5表单包含了大量新的API和元素类型,分为两类:1、新的输入型控件:    tel                电话号码                               email           电子邮箱地址文本框    url                网页

2012-07-17 11:09:05 713

原创 拖放

(一)Web拖动发展:HTML5之前的拖动功能,是通过HTML和DOM公开的底层鼠标事件,结合CSS和JavaScript实现的近似拖放的系统。通常设计逻辑步骤:1、mousedown:用户按下鼠标开始操作。(拖动还是单击?)2、mousemove:如果鼠标没有松开,就开始移动。(拖动还是选择?)3、mouseover:鼠标移动到某个元素上。(想放置到此元素上?)4、mou

2012-07-17 11:05:55 444

原创 Web Wokers API

JavaScript是单线程,因此可能导致阻塞UI线程。Web Workers可以让Web应用程序具备后台处理能力,对多线程的支持非常好,但不能在Web Workers中执行的脚本访问页面的window对象,即Web Workers不能直接访问DOM API。Web Workers API的使用:1、浏览器支持检查:    if (typeof(Worker) === "undefin

2012-07-17 10:56:17 824

原创 Canvas API

使用Canvas进行图形绘制步骤:1、获取Canvas对象;2、从Canvas对象获取上下文;3、使用上下文方法和属性进行绘制。指定颜色方法:1、以[#RRGGBB]方法指定:ctx.fillStyle = "#FF0000F" ;2、以rbg()指定,0~255范围:ctx.fillStyle = "rbg(255,0,0)" ;    3、同时指定透明度rb

2012-07-17 10:53:02 357

转载 从一个http请求的详细过程---理解计算机网络

一个http请求的详细过程我们来看当我们在浏览器输入http://www.mycompany.com:8080/mydir/index.html,幕后所发生的一切。首先http是一个应用层的协议,在这个层的协议,只是一种通讯规范,也就是因为双方要进行通讯,大家要事先约定一个规范。1.连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口

2012-07-15 14:21:37 1305

转载 负载均衡,会话保持,session同步

一,什么负载均衡一个新网站是不要做负载均衡的,因为访问量不大,流量也不大,所以没有必要搞这些东西。但是随着网站访问量和流量的快速增长,单台服务器受自身硬件条件的限制,很难承受这么大的访问量。在这种情况下,有二种方案可以选择:1,对单台服务器的硬件进行更新,由双核的变成四核的,内存加大等。2,增加服务器的台数,来分担服务器的负担。以实现增加网络带宽,增加服务器的处理能力的目的。

2012-07-15 14:20:01 667

原创 栈和队列

栈的实现有两种:顺序栈和链栈    由于栈不需要实现随机存取功能,只需要从栈顶插入、删除元素,因此顺序就够所提供的高效存取就没有太大的价值,即使采用链式结构的实现,程序同样可以高效的出入栈。    对于链栈而言,底层链式结构只需要保存几个节点,每个节点需要额外添加一个next引用,会引起部分空间浪费;但对于顺序栈来说,程序开始就需要在底层开辟一块连续的内存,这种空间浪费更多。从空间利用率的

2012-07-14 02:40:22 468

原创 线性表

线性表的两种具体实现:顺序实现和链式实现。   空间性能:顺序表的存储空间是静态分布的,需要一个长度固定的数组,因此总有部分数组元素被浪费;链表的存储空间是动态分布的,因此不会空间被浪费,但由于链表需要额外的空间来为每个节点保存指针,因此也需要浪费一些空间。    时间性能:顺序表中元素的逻辑顺序与物理存储顺序保持一致,而且支持随机存取,因此顺讯表在查找、读取时性能很好;链表采用链式结构保

2012-07-14 02:39:55 505

原创 树和二叉树

树代表一种非线性的数据结构,如果一组节点之间存在复杂的一对多关联时,程序就可以考虑使用树来保存这组数据。树的两种表示法:    父节点表示法:每个节点都记录它的父节点。        树中除了根节点之外的每个节点都有一个父节点,为了记录树中节点与节点之间的父子关系,可以为每个节点增加一个parent域,用以记录该节点的父节点。        特点:每个节点可以快速找到他的父

2012-07-14 02:38:10 582

空空如也

空空如也

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

TA关注的人

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