- 博客(41)
- 资源 (3)
- 收藏
- 关注
原创 倒计时展示
在做项目的时候,经常需要实现调用服务端接口进行发送手机验证码的功能,那么在手机收到验证码之前,需要有一个倒计时的展示以提升用户,网上搜了一下有很多种实现方式,除了自己实现之外,Android已经封装好了一个类CountDownTimer。在一个TextView上进行倒计时10秒,代码如下: private TextView vertifyView; private Co
2015-02-02 16:06:10
756
转载 Android开发中内存管理的注意事项
内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有引用指向的情况下,仍不能被GC正常回收的情况。多数出现在不合理的编码情况下,比如在 Activity中注册了一个广播接收器,但是在页面关闭的时候进行unRegister,就会出现内存溢出的现象。通常情况下,大量的内存泄漏会造成 OOM。OOM:即OutOfMemoery,顾名思义就是指内存溢出了。内存溢出是指APP向
2015-02-02 15:27:43
690
原创 调用notifyDataSetChanged方法失败的常见原因
如果使用ListView、GridView等进行数据展示,当绑定的数据有了更新的时候,需要实时刷新ListView,即调用Adapter的notifyDataSetChanged方法,但是很多人在调用之后会发现ListView是数据并没有刷新,这是什么原因呢?下面将对其进行详细解释。1、数据源没有更新,调用notifyDataSetChanged无效。2、数据源更新了,但是它指向新的引
2015-02-02 15:23:05
5306
转载 Android开发规范(具体项目中的)
Android开发规范 一、Android开发编码规范 1、java代码中不出现中文,最多注释中可以出现中文 2、局部变量命名、静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3、常量命名 只能包含字母和_,字母全部大写,单词之间用_隔开 4、layout中的id命名 命名模式为:view缩写_模块名
2014-04-16 13:05:43
1495
转载 XML解析_PULL
除了可以使用 SAX和DOM解析XML文件,大家也可以使用Android内置的Pull解析器解析XML文件。 Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText
2014-04-04 13:27:03
626
转载 XML解析_DOM
下面是本例子要解析的XML文件,保存在assets文件夹中: 小明 30 小强 25 例子定义了一个javabean用于存放上面解析出来的xml内容:package com.example.xmlparse;public class Person
2014-04-04 13:19:31
666
转载 XML解析_SAX
SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。下面是一些Co
2014-04-04 12:58:22
596
原创 Android笔试题
1. 如何打开resource raw中的数据库:在Android中不能直接打开res raw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。复制的基本方法是使用getResources().openRawResource方法获得res raw目录中资源的 InputStream对象,然后将该InputStream对象中的数据
2013-12-10 21:02:30
1018
转载 sql语句大全
一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNw
2013-07-22 13:57:26
593
转载 软件架构设计
架构的概念架构的是一个演进的过程,没有一成不变的架构,也没有一蹴而就的架构,架构需要根据业务的发展而进行相应的调整,所以我们应该更加关注架构演进的过程和原因,以及在当时背景下的做出的权衡和妥协。没有完美的架构,架构也没有一个标准的解决方案,因为面对不同的业务需求,面对不同的客观因素,有不同的架构设计方案,也就是有不同的设计决策。 架构决策是分层次依次展开的,决策制定的顺序往往是先制定技术无
2013-07-15 11:07:33
1424
原创 开机启动时将log日志写入到SDcard
需求分析:手机开机启动后,开始收集log日志信息并且将日志保存到SDcard。功能实现:(1)Manifest.xml文件<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sony.logdemo" android:versionCode="1"
2013-07-11 10:19:54
4201
原创 图片的异步加载及缓存
当我们需要从网络加载图片时,最好使用异步加载的方法,新开一个线程,在此线程中执行加载图片的操作,以避免阻塞UI线程的情况的发生。可以使用继承Thread类或者实现Runnable接口的方式,也可以利用Android中的AsyncTask来实现。当然,很多时候我们会对同一张图片显示多次,如果每一次都重新从网络加载的话,必将耗费更多的时间和网络流量,也会占用更多的内存空间,所以我们可以使用缓存的方法,
2013-07-05 13:35:34
930
原创 WebView的使用
在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。 什么是webkit WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一
2013-07-05 13:31:36
790
原创 Android图片浏览器
当手机开机、插拔USB连接时,Android系统会启动MediaScanner,扫描SD卡和内存里面的文件,扫描的结果保存在data/data/com.android.providers.media/databases/external.db下。通过DDMS可以找到,数据库中包含了图片、视频、音乐等文件的信息。开发者不用遍历文件,只要使用ContentProvider就可以获取SD卡中不同种类的文
2013-07-05 13:00:21
1650
原创 Android原始资源的使用
除了各种Xml文件、图片文件之外,Android应用可能还需要用到大量其他类型的资源,比如声音资源等,类似的各种文件,只要Android没有为其提供专门的支持,这种资源都叫做原始资源,原始资源可以放在两个地方:(1)/res/raw目录下(2)/assets目录下,该目录下的资源是更彻底的原始资源,通过AssetManager来管理。AssetManager使用两种方式来访问Asset
2013-06-23 22:15:35
834
原创 Android事件处理
Android包括两套事件处理机制:(1)基于监听的事件处理;(2)基于回调的事件处理1.基于监听的事件处理:三要素:事件源(Event Source)、事件(Event)、事件监听器(Event Listener)Android的事件处理机制是一种委派式事件处理方式:事件源把整个事件处理委托给事件监听器。当外部动作在Android组件上进行操作时,系统会自动生成事件对象,这个事件对象
2013-06-23 13:47:10
1826
原创 Category、Data、Type属性与intent-filter配置
Intent的Action、Category属性都是一个普通的字符串,其中Action代表Intent所要完成的一个抽象“动作”,而Category则用于为Action增加额外的附加类别信息,通常Action属性与Category属性结合使用。若创建一个Intent时,会默认启动Category属性值为Intent.CATEGORY_DEFAULT常量(android.intent.categor
2013-06-23 12:50:30
6789
原创 客户端与服务端交互之socket与http协议的比较
webservice是基于http协议的soap协议的封装和补充,为的是提供一个公共稳定的接口。区别:(1 )数据传输方式1.1 socket传输的定义和其特点所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有udp和tcp两个协议。socket处于网络协议的传输层。udp协议:广播式数据传输,不进行数据验证tcp协议:传输控制
2013-06-20 10:36:02
6830
原创 Linux第三章
1.Linux指令格式:[vbird@www ~]$ command [-options] parameter1 parameter2 ...指令 选项 参数(1) 参数(2)说明:0. 一行指令中第一个输入的部分绝对是『指令(command)』或者『可执行文件案』1. command 为指令的名称,例如变换路徂的指令为 cd 等等;2. 中刮号[]并不存在于实际的指
2013-06-18 14:03:26
707
原创 Linux第二章
1. Linux 具有: 1.硬件需求低、 2.架构开放、 3.系统稳定性及保密性功能够强、 4.完全免费使用 Linux 做为我们的主机系统,有如下优势:(1) 稳定的系统(2) 免费(3) 安全性、漏洞的快速修补(4) 多任务、多使用者(5) 使用者与群组的规划(6) 相对比较不耗资源的系统(7) 适合需要小核心程序的嵌入式系统(8) 整合度佳且多样的图形用
2013-06-18 11:14:46
786
原创 Linux第一章
1.频率就是 CPU 每秒钟可以进行的工作次数外频指的是 CPU 不外部组件迚行数据传输时的速度,倍频则是 CPU 内部用来加速工作效能的一个倍数, 两者相乘才是 CPU 的频率速度。2.主存储器和 CPU的沟通速度靠的是外部频率,CPU 的数据都是由主存储器提供3.芯片组通常又分为两个网桥来控制各组件的沟通, 分别是:(1)北桥:负责链接速度较快的 CPU主存储器与显示适配器等组件(
2013-06-18 10:53:21
646
原创 自然用户界面
自然用户界面(英语:Natural user interface, NUI)是指一类无形的用户界面。“自然”一词是相对图形用户界面(GUI)而言的,GUI要求用户必须先学习软件开发者预先设置好的操作,而NUI则只需要人们以最自然的交流方式(如语言和文字)与机器互动。直观的说,使用NUI的计算机不需要键盘或鼠标。特别是触控技术将使人机交互变得更加自然直观,更为人性化。比如Surface、iPho
2013-06-14 13:57:24
1367
1
原创 Android内存管理
Low Memory KillerAndroid的Low Memory Killer是在标准linux kernel的OOM(Out Of Memory)基础上修改而来的一种内存管理机制,当系统内存不足时,杀死Bad进程释放其内存。Bad进程的选择标准有两个:oom_adj和占用内存的大小。oom_adj代表进程的优先级,数值越大,优先级越高,对应每个oom_adj都有一个空闲内存的阈值。An
2013-06-13 17:26:42
1425
原创 android 滑动菜单SlidingMenu的实现
这是在优快云人家实现好的一个Demo,源代码中有点小bug,滑动的时候界面会花掉,残留滑动前的图片,所以我在每次滑动后刷新了ListView。天天动听现在里面就有这么一个滑动菜单。滑动前:滑动后:实现过程如下:main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/a
2013-06-09 14:06:32
1750
1
原创 Android虚拟机
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行, 至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Ja
2013-06-09 10:04:56
928
原创 android的线程安全
android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供了一些列机制。线程安全:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全
2013-06-08 16:34:45
9778
原创 保存活动(Activity)状态
当系统而不是用户关闭一个activity以节省内存,该用户可能希望返回到该activity的时候,它仍处于之前的状态。可以实现一个activity的onSaveInstanceState()方法,从而在该activity被杀死前采集它的状态。Android在activity将被销毁前调用该方法,也就是,在onPause()被调用之前。它传递给该方法一个Bundle对象,那里你可以以键值对(na
2013-06-08 16:08:32
1206
原创 清理堆栈
默认的情况下,当用户长时间没有使用一个运行着的task,系统就会清理掉task里除了root Activity以外的所有的Activity,当用户再次使用这个task时,显示的是root Activity。有一些Activity的属性可以用来控制和修改这些行为:(1) alwaysRetainTaskState属性如果一个task里的root Activity的alwaysReta
2013-06-08 15:07:45
1576
原创 启动模式(Launch modes)
下的launchMode属性可以设置四种启动方式:standard (默认模式)singleTopsingleTasksingleInstance区别:(1) 响应Intent时Activity将被装入哪个task:对于standard和singleTop模式,由产生该Intent(调用startActivity())的task持有该Activity——除非Intent
2013-06-08 15:00:53
928
原创 Android活动和任务(Activities and Tasks)
默认行为:task是一组Activity实例组成的栈,无法设定一个task的属性而不管它的Activity,一个task的所有属性值是在底部的Activity里设置的。一个task里的所有Activity作为一个整体运转。整个task(整个Activity堆栈)可以被送到前台或者被推到后台。假设一个正在运行的task中有四个Activity——正在运行的Activity下面有三个Activit
2013-06-08 14:44:09
1205
原创 求递归式时间复杂度
当一个算法包含对自身的递归调用时,其运行时间通常可以用递归式(recurrence)来表示。解递归式,就是找出解的渐近“Θ”或“O”界的方法,
2013-05-31 16:01:16
1034
原创 推荐引擎(三)
Apache MahoutApache Software Foundation (ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序,并且,在 Mahout 的最近版本中还加入了对 Apache Hadoop 的支持,使这些算法可以更高效的运行在云计算环境中。Apache Mahout 中协同过滤推荐实现的Taste组件
2013-05-30 13:47:45
1162
原创 推荐引擎(一)
信息发现推荐系统,与搜索引擎对应,又称为推荐引擎。随着推荐引擎的出现,用户获取信息的方式从简单的目标明确的数据的搜索转换到更高级更符合人们使用习惯的信息发现。推荐引擎推荐引擎利用特殊的信息过滤技术,将不同的物品或内容推荐给可能对它们感兴趣的用户。元数据:例如关键字,基因描述等; 系统用户的基本信息,例如性别,年龄等 用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户
2013-05-30 11:16:01
1402
原创 渐近记号
渐近记号:用来表示算法的渐近运行时间的记号,用定义域为自然数集N={0,1,2,...}的函数来定义。渐进确界Θ:给出一个函数的上界和下界 Θ(g(n))={f(n):存在正常数c1,c2和n0,使对所有的n>=n0,有0c1g(n)f(n)c2g(n) } (在集合表示法中,“:”应读作“满足......的特性”) Θ(g(n))是一个集合,所以f(n)=Θ(g(
2013-05-29 15:34:46
1307
原创 合并排序
1.分治法 将原问题划分成n个规模较小而结构与原问题相似的子问题;递归的解决这些子问题,然后再合并其结果,得到原问题的解。分治模式在每一层递归上都有三个步骤: 分解(Divide),解决(Conquer),合并(Combine)2.合并排序 合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and
2013-05-28 16:48:35
738
原创 插入排序
1.算法介绍 插入排序,就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,此算法适用于少量数据的排序,时间复杂度为O(n^2)。插入排序包括:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。 该算法属于稳定排序中的一种(通俗地讲,就是两个相等的数不会交换位置)。插入排序使用增量(inc
2013-05-28 14:56:53
701
原创 WebView的使用
对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过, 随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome和Maxthon
2012-08-10 20:21:27
114
Fastjson的jar包
2014-04-16
多点触控技术
2012-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人