Android
文章平均质量分 79
liuhe688
这个作者很懒,什么都没留下…
展开
-
Android中使用HTTP服务
在Android中,除了使用java.net包下的API访问HTTP服务之外,我们还可以换一种途径去完成工作。Android SDK附带了Apache的HttpClient API。Apache HttpClient是一个完善的HTTP客户端,它提供了对HTTP协议的全面支持,可以使用HTTP GET和POST进行访问。下面我们就结合实例,介绍一下HttpClient的使用方法。我们新建一个http项目,项目结构如图:在这个项目中,我们不需要任何的Activity,所有的操作都在单元测试类HttpTest.原创 2011-05-16 19:52:00 · 77626 阅读 · 34 评论 -
详解Android动画之Tween Animation
前面讲了动画中的Frame动画,今天就来详细讲解一下Tween动画的使用。同样,在开始实例演示之前,先引用官方文档中的一段话:Tween动画是操作某个控件让其展现出旋转、渐变、移动、缩放的这么一种转换过程,我们成为补间动画。我们可以以XML形式定义动画,也可以编码实现。如果以XML形式定义一个动画,我们按照动画的定义语法完成XML,并放置于/res/anim目录下,文件名可以作为资源I原创 2011-08-05 18:57:12 · 39071 阅读 · 8 评论 -
基础总结篇之八:创建及调用自己的ContentProvider
鍥而捨之,朽木不折;鍥而不捨,金石可鏤。戰國.荀子《勸學篇》若不能坚持到底,即使是朽木也不能折断;只要坚持不停地用刀刻,就算是金属玉石也可以雕出花饰。用今天的话来说就是:再容易的事情,没有锲而不舍的精神,都不可能做到;再难的事情,只要有坚持不懈的努力,都一定能够做到。希望我们在坚持理想的道路上都能够锲而不舍地雕刻自己的那块“金石”。今天我们来讲解一下如何创建及调用自己的ContentP原创 2011-12-09 19:01:33 · 24561 阅读 · 13 评论 -
Android基础&进阶
基础总结篇之一:Activity生命周期基础总结篇之二:Activity的四种launchMode基础总结篇之三:Activity的task相关原创 2013-07-26 17:19:08 · 41777 阅读 · 26 评论 -
基础总结篇之一:Activity生命周期
子曰:溫故而知新,可以為師矣。《論語》学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精髓。近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下。熟悉javaEE的朋友们都了解servlet技术,原创 2011-09-02 17:37:04 · 574616 阅读 · 110 评论 -
基础总结篇之三:Activity的task相关
古人學問無遺力,少壯工夫老始成。紙上得來終覺淺,絕知此事要躬行。南宋.陸遊《冬夜讀書示子聿(yù)》软件行业也是一样,多少前辈不遗余力的奋斗才出现了软件行业的繁荣的景象,其中已有不少成为大师级人物。今天我们站在伟人的肩膀上,自然会有不少的优势,但不要忘了,要在对技术的认知方面有所提升,仍需我们去实践,去实践。今天我们来讲一下Activity的task相关内容。上次我们讲到Activ原创 2011-09-30 15:36:18 · 54196 阅读 · 41 评论 -
使用AIDL实现进程间的通信之复杂类型传递
上次讲到简单的AIDL进程间通信的操作,客户端向服务端发送一个String类型的参数,服务端也返回一个String类型的结果,看似已经可以完成基本的需要了。不过在有的时候,简单的数据类型并不能满足我们的需求,我们就需要考虑怎样向服务端传递复杂的数据类型。今天就来讲一下如何向服务端传递复杂类型的问题。首先要了解一下AIDL对Java类型的支持。1.AIDL支持Java原始数据类型。2.AIDL支持String和CharSequence。3.AIDL支持传递其他AIDL接口,但你原创 2011-05-10 17:24:00 · 39921 阅读 · 19 评论 -
Android中解析XML
XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法。在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器,下面,我将一一向大家详细介绍。SAX解析器:SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的。当事件源产生事件后,调原创 2011-05-12 19:32:00 · 225449 阅读 · 88 评论 -
Location服务之LocationManager
上次介绍了位置服务中的Geocoder,这次就来介绍一下LocationManager。LocationManager系统服务是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题,包括查询上一个已知位置、注册和注销来自某个LocationProvider的周期性的位置更新、注册和注销接近某个坐标时对一个已定义的Intent的触发等。今天我们就一起探讨一下LocationManager的简原创 2011-06-28 19:47:00 · 29862 阅读 · 3 评论 -
Location服务之Geocoder
提到Android基于位置的服务,就不得不提android.location包,location包提供了很便捷的API来实现基于位置的服务。主要包括Geocoder和LocationManager。今天就先来介绍一下Geocoder。Geocoder可以在街道地址和经纬度地图坐标之间进行转换。它提供了对两种地理编码功能的访问:Forward Geocoding(前向地理编码):查找某个地址原创 2011-06-24 19:59:00 · 30254 阅读 · 8 评论 -
浅谈WebView的使用
WebView是Android中一个非常实用的组件,它和Safai、Chrome一样都是基于Webkit网页渲染引擎,可以通过加载HTML数据的方式便捷地展现软件的界面。使用WebView开发软件有一下几个优点:1.可以打开远程URL页面,也可以加载本地HTML数据;2.可以无缝的在java和javascript之间进行交互操作;3.高度的定制性,可根据开发者的需要进行多样性定制。原创 2011-06-16 18:49:00 · 38177 阅读 · 12 评论 -
详解Android中AsyncTask的使用
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下。原创 2011-06-08 19:00:00 · 389427 阅读 · 138 评论 -
详解Android首选项框架的使用
首选项这个名词对于熟悉Android的朋友们一定不会感到陌生,它经常用来设置软件的运行参数。Android提供了一种健壮并且灵活的框架来处理首选项。它提供了简单的API来隐藏首选项的读取和持久化,并且提供了一个优雅的首选项界面。首先,我们来看下面这款软件的首选项界面:这款软件使用了好几种类型的首选项,每一种首选项都有其独特的用法,下面我们来了解一下几种常见的首选项:CheckBoxPreference:用来打开或关闭某个功能ListPreference:用来从多个选项中选择一个值;EditTextPrefe原创 2011-05-26 20:30:00 · 19973 阅读 · 12 评论 -
Android中配置和使用Google Map服务
Android提供了对地图服务强有力的支持,能开发一款基于地图服务的软件变得容易多了,今天就和大家分享一下如何在Android中配置和使用Google Map服务。首先我们需要找到调试证书,它由Eclipse生成和维护。点击Eclipse中的Window=>Preferences,然后找到Android=>Build项,如图:被鼠标选中的路径就是开发时默认的调试证书文件。我们在下面要用到此路径。然后我们需要使用Android提供的keytool命令获取指定调试证书所对应的MD5指纹码原创 2011-05-18 19:32:00 · 13462 阅读 · 1 评论 -
Android声明和使用权限
Android定义了一种权限方案来保护设备上的资源和功能。例如,在默认情况下,应用程序无法访问联系人列表、拨打电话等。下面就以拨打电话为例介绍一下系统对权限的要求。一般在我们的应用中,如果要用到拨打电话的功能,我们会这样编码: Uri uri = Uri.parse("tel:12345678"); Intent intent = new Intent(Intent.ACTION_CALL, uri); startActivity(intent);默认情况下,我们无权访问拨打电话的Activity,原创 2011-05-13 17:54:00 · 45538 阅读 · 16 评论 -
使用AIDL实现进程间的通信
在Android中,如果我们需要在不同进程间实现通信,就需要用到AIDL技术去完成。AIDL(Android Interface Definition Language)是一种接口定义语言,编译器通过*.aidl文件的描述信息生成符合通信协议的Java代码,我们无需自己去写这段繁杂的代码,只需要在需要的时候调用即可,通过这种方式我们就可以完成进程间的通信工作。关于AIDL的编写规则我在这里就不多介绍了,读者可以到网上查找一下相关资料。接下来,我就演示一个操作AIDL的最基本的流程。首先,我们需要建立一个服务原创 2011-05-06 17:07:00 · 57017 阅读 · 31 评论 -
基础总结篇之七:ContentProvider之读写短消息
古之成大事者,不惟有超世之才,亦有堅韌不拔之志。北宋.蘇軾《晁錯論》我们的前辈中那些成就大事的人,不单单有过人的智慧和才能,也须有坚韧不拔的意志。试问没有坚韧的意志,如何写得出复杂的系统,如何创造出伟大的产品?作为程序员的我们,智慧和才能似乎不太欠缺,我们欠缺的也许是正是坚韧的意志,所以从今天起,锻炼自己的意志吧,在坚持理想的道路上,让这种意志给自己力量。今天我们来讲一下如何利用Conte原创 2011-11-30 19:09:16 · 25469 阅读 · 7 评论 -
基础总结篇之二:Activity的四种launchMode
合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下。《老子》今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的...”,的确,做梦还来的快一些。作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行。成大事者,须从小事做起;万事起于忽微,量变引起质变。我们今天要讲的是Activity的四种launchMode。la原创 2011-09-06 19:17:46 · 271132 阅读 · 171 评论 -
Notification使用详解之二:可更新进度的通知
上次和大家分享了关于Notification的基础应用,包括简单的通知和自定义视图的通知。今天和大家分享一下如何实现一个可更新进度的通知。我们将会模拟一个下载任务,先启动一个线程负责模拟下载工作,在这个过程中更新进度信息,然后下载线程把最新的进度信息以消息的形式,发送到UI线程的原创 2011-07-07 18:50:15 · 13812 阅读 · 11 评论 -
Notification使用详解之一:基础应用
在消息通知时,我们经常用到两个组件Toast和Notification。特别是重要的和需要长时间显示的信息,用Notification就最合适不过了。当有消息通知时,状态栏会显示通知的图标和文字,通过下拉状态栏,就可以看到通知信息了,Android这一创新性的原创 2011-07-05 19:26:17 · 15757 阅读 · 8 评论 -
Notification使用详解之四:由后台服务向Activity发送进度信息
上次讲到了如何在Activity中监听后台服务的进度信息,实现的方式是让Activity与后台服务绑定,通过中间对象Binder的实例操作后台服务。从效果上来讲,这种方式是可行的,不过这种实现有个缺点,那就是Activity的任务太重了,为了监听服务的状态,我们不得不绑定服务,然原创 2011-07-28 19:36:43 · 23310 阅读 · 26 评论 -
详解Android动画之Frame Animation
在开始实例讲解之前,先引用官方文档中的一段话:Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。Frame动画可以被定义在XML文件中,也可以完全编码实现。如果被定义在XML文件中,我们可以放置在/res下的anim或drawab原创 2011-08-03 19:49:11 · 48683 阅读 · 18 评论 -
Android中SQLite应用详解
上次我向大家介绍了SQLite的基本信息和使用过程,相信朋友们对SQLite已经有所了解了,那今天呢,我就和大家分享一下在Android中如何使用SQLite。现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用原创 2011-08-26 18:36:07 · 469058 阅读 · 194 评论 -
使用ANT打包Android应用
大家好,今天来分享一下如何使用ANT打包Android应用。通常我们习惯用eclipse来开发Android程序,它会自动帮我们打包当前的应用程序。如果在Navigator视图下,我们可以看到以下几个文件:在上图中,com包放置的是我们的class文件,class原创 2011-08-15 20:24:40 · 50132 阅读 · 37 评论 -
Notification使用详解之三:通过服务更新进度通知&在Activity中监听服务进度
上次我们讲到如何实现一个可更新的进度通知,实现的方式是启动一个线程模拟一个下载任务,然后根据任务进度向UI线程消息队列发送进度消息,UI线程根据进度消息更新通知的UI界面。可是在实际应用中,我们一般会将上传、下载等比较耗时的后台任务以服务的形式运行,更新进度通知也是交由后台服务来原创 2011-07-22 18:57:31 · 42892 阅读 · 25 评论 -
Android中ListView分页加载数据
熟悉Android的朋友们都知道,不管是微博客户端还是新闻客户端,都离不开列表组件,可以说列表组件是Android数据展现方面最重要的组件,我们今天就要讲一讲列表组件ListView加载数据的相关内容。通常来说,一个应用在展现大量数据时,不会将全部的可用数据都呈现给用户,因为这不原创 2011-10-08 18:25:35 · 77087 阅读 · 36 评论 -
Android中处理崩溃异常
大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开发者应该及时获取在该设备上导致崩溃的信息,这对于下一个版本的bug修复帮助极大,所以今天就来介绍一下如何在程序崩溃的情况下收集相关的设备参数信息和具体的异常信息,并发送这些信息到服务器供开原创 2011-07-04 19:28:57 · 120483 阅读 · 110 评论 -
基础总结篇之四:Service完全解析
富貴必從勤苦得,男兒須讀五車書。唐.杜甫《柏學士茅屋》作为程序员的我们,须知富贵是要通过勤苦努力才能得到的,要想在行业内有所建树,就必须刻苦学习和钻研。今天我们来讲一下Android中Service的相关内容。Service在Android中和Activity是属于同一级别上的组件,我们可以将他们认为是两个好哥们,Activity仪表不凡,迷倒万千少女,经常做一些公众人物角色,而Ser原创 2011-10-28 10:00:50 · 36452 阅读 · 21 评论 -
基础总结篇之五:BroadcastReceiver应用详解
問渠那得清如許?為有源頭活水來。南宋.朱熹《觀書有感》据说程序员是最爱学习的群体,IT男都知道,这个行业日新月异,必须不断地学习新知识,不断地为自己注入新鲜的血液,才能使自己跟上技术的步伐。今天我们来讲一下Android中BroadcastReceiver的相关知识。BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在原创 2011-11-11 17:48:57 · 229389 阅读 · 150 评论 -
基础总结篇之六:ContentProvider之读写联系人
靡不有初,鮮克有終。《詩經》很多事情,绝大多数人都会在开始的时候满怀热情,而能坚持到底的却是寥寥无几。对待自己的目标,虎头蛇尾绝不可取,半途而废只会一无所成,我们必须持之以恒的做下去,坚持到底才能摘取胜利的果实。最近也忙了起来,忙着给自己充电,深知这项任务的艰巨,不是一天两天的事,所以也借用这句警言来告诫自己,坚持不懈的走下去。今天我们来讲解一下如何利用ContentProvider机原创 2011-11-24 18:53:19 · 26742 阅读 · 4 评论 -
基础总结篇之九:Intent应用详解
看似尋常最奇崛,成如容易卻艱辛。北宋.王安石看似普通的事情其实最不同寻常,并不是简简单单就可以做好的;成功看起来似乎很容易,而成功的过程却充满着艰辛。对于我们认为很普通的事情,不屑一顾,就永远不会有长进,脚踏实地,就离成功又近一步;成功并不像看到的那么容易,寻找捷径是不可取的,我们往往要比别人付出更多的辛勤和努力。今天我们来讲一下Android中Intent的原理和应用。前面我们总原创 2011-12-29 18:51:53 · 68255 阅读 · 16 评论 -
浅析Android中的消息机制
Android系统中的Looper负责管理线程的消息队列和消息循环。通过Looper.myLooper()得到当前线程的Looper对象,通过Looper.getMainLooper()得到当前进程的主线程的Looper对象。前面提到,Android的消息队列和消息循环都是针对具体线程的,一个线程可以存在一个消息队列和消息循环,特定线程的消息只能分发给本线程,不能跨线程和跨进程通讯。但是创建的工作线程默认是没有消息队列和消息循环的,如果想让工作线程具有消息队列和消息循环,就需要在线程中先调用Loop原创 2011-05-09 18:12:00 · 64152 阅读 · 57 评论