<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_努力吧_分类_Android学习</title><id>http://feed.cnblogs.com/blog/u/71288/category/248081/rss</id><updated>2012-06-02T15:51:51Z</updated><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/category/248081.html"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/71288/category/248081/rss"/><entry><id>http://www.cnblogs.com/halzhang/archive/2011/07/16/2108470.html</id><title type="text">Android开发——利用Cursor+CursorAdapter实现界面实时更新</title><summary type="text">好久没有更新博客了。不是没时间写，而是太懒。而且感觉有些东西没有时间总结，之之后再想写，就想不起来了。晚上新发现一点东西，所以就及时写下来。最近利用业余时间在看Android的Download模块，看得是2.3之前版本的源码，2.3之后android就开放了一个下载管理器，并提供了一些api。不过想对下载模块有更深入的了解还是必须自己花点时间看看downloadprovider的源码。相信会收获很多。如果有时间想写写文章对downloadprovider进行分析。这篇文章不是分析download的，不过却是我从读download的源码发现的。情景分析：我们有一个Service，这个Servic</summary><published>2011-07-16T15:33:00Z</published><updated>2011-07-16T15:33:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2011/07/16/2108470.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2011/07/16/2108470.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2011/03/10/1980319.html</id><title type="text">Android学习&amp;mdash;&amp;mdash;MediaScanner源码分析</title><summary type="text">神马是MediaScanner呢？在Android的SDK里面是看不到这个类的，因为被google隐藏了。通过Android的源码我们可以看到MediaScanner的类注解多了一个@hide的标注。所以对于一般应用开发者，此文意义不是很大，大家可以绕道。 在前两篇文章中，最后我们都了解了Android的媒体文件的扫描是在MediaScannerService中调用MediaScanner的sca...</summary><published>2011-03-10T15:35:00Z</published><updated>2011-03-10T15:35:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2011/03/10/1980319.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2011/03/10/1980319.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2011/03/08/1977314.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;MediaProvider源码分析（2）</title><summary type="text">转载请注明出处！ 欲读此文，先读上文：MediaProvider源码分析（1） ----------------------START--------------------------- 在上一篇文章中说到系统当接收到扫描请求广播的时候就会调用scan或者scanFile去扫描手机（手机内存和sdcard）中的媒体文件。这两个方法都是启动MediaScannerService这个服务来完成扫描任...</summary><published>2011-03-08T07:25:00Z</published><updated>2011-03-08T07:25:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2011/03/08/1977314.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2011/03/08/1977314.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2011/03/07/1976178.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;MediaProvider源码分析（1）</title><summary type="text">转载请注明出处。 --------------START------------ MediaProvider包括五个类： com.android.providers.media.MediaProvider com.android.providers.media.MediaScannerCursor com.android.providers.media.MediaScannerReceiver c...</summary><published>2011-03-07T12:40:00Z</published><updated>2011-03-07T12:40:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2011/03/07/1976178.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2011/03/07/1976178.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2011/01/18/1938752.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;Android搜索框架（二）</title><summary type="text">上一篇：Android开发——Android搜索框架(一) 距离上一篇文章有段时间了，唉。 接着上一篇文章，现在说说如何在搜索的时候弹出搜索历史提示。 1.创建搜索建议提供者 Android已经为我们创建了一个默认的，我们只需要继承 SearchRecentSuggestionProvider 就稍做修改就可以了。 见代码： 2.配置searchable.xml 参数说明：android:...</summary><published>2011-01-18T15:40:00Z</published><updated>2011-01-18T15:40:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2011/01/18/1938752.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2011/01/18/1938752.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2011/01/05/1926771.html</id><title type="text">[转]activity的启动方式（launch mode）</title><summary type="text">在android里，有4种activity的启动模式，分别为： “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同： 1. 如何决定所属task “standard”和”singleTop”的activity的目标task，和收到的Intent的发送者在同一个task内，除非intent包括参数FLAG_ACT...</summary><published>2011-01-05T12:55:00Z</published><updated>2011-01-05T12:55:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2011/01/05/1926771.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2011/01/05/1926771.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/12/05/1896791.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;09Google I/O之让Android UI性能更高效(1)</title><summary type="text">一、前言 前几天发现09年Google IO大会关于移动应用方面的主题有一些不错的PPT，对移动应用开发很有帮助。自己看了一些，边看边和大家分享。既然是PPT就很简化了，我会根据实际情况写一些Demo供大家参考。 Android在UI优化方面可以从以下五个方面入手： Adapter优化 背景和图片优化 绘图优化 视图和布局优化 内存分配优化 二、Adapter优化 什么是Adapter，可以...</summary><published>2010-12-05T03:14:00Z</published><updated>2010-12-05T03:14:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/12/05/1896791.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/12/05/1896791.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/11/28/1890637.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;说说Adapter那点事</title><summary type="text">Adapter在Android中占据一个重要的角色，它是数据和UI（View）之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。 图1 Adapter、数据、UI三者关系（PS：此图来自Google I/O） 一、Android中Adapter  图2：Andro...</summary><published>2010-11-28T15:47:00Z</published><updated>2010-11-28T15:47:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/11/28/1890637.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/11/28/1890637.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/09/13/1825145.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;Android搜索框架(一)</title><summary type="text">Android是google的产品，所以自然是少不了搜索。先看看Android一些应用中的搜索对话框。 图1 Android中的全局搜索 图2 联系人搜索 图3 音乐搜索 以上都是通过按下实体键盘上的搜索按钮弹出的一个搜索对话框,当然搜索关键词提示是少不了的。如何实现呢？慢慢来！呵呵。 一、配置搜索描述文件 在res中的xml文件加创建sreachable.xml，内容如下： 二、创建Sea...</summary><published>2010-09-13T09:10:00Z</published><updated>2010-09-13T09:10:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/09/13/1825145.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/09/13/1825145.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/08/18/1802611.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;浅谈onInterceptTouchEvent、onTouchEvent与onTouch</title><summary type="text">一、onTouch onTouch是View中OnTouchListener接口中的方法，处理View及其子类被touch是的事件处理。当然，前提是touch时间能够传递到指定的view。Q1：为什么会传递不到呢？ 二、onTouchEventonTouchEvent同样也是在view中定义的一个方法。处理传递到view 的手势事件。手势事件类型包括ACTION_DOWN,ACTION_MOVE...</summary><published>2010-08-18T08:50:00Z</published><updated>2010-08-18T08:50:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/08/18/1802611.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/08/18/1802611.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/08/11/1797097.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;android调试工具集【转】</title><summary type="text">1. 查看当前堆栈 1) 功能：在程序中加入代码，使可以在logcat中看到打印出的当前函数调用关系 2) 方法： new Exception(“print trace”).printStackTrace(); 2. MethodTracing 1) 功能：用于热点分析和性能优化，分析每个函数占用的CPU时间，调用次数，函数调用关系等 2) 方法： a) 在程序代码中加入追踪开关 b)...</summary><published>2010-08-11T01:54:00Z</published><updated>2010-08-11T01:54:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/08/11/1797097.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/08/11/1797097.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/08/07/1794555.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;使用Gallery实现&amp;ldquo;多级联动&amp;rdquo;</title><summary type="text">本文将讲解利用两个Gallery实现类似多级联动的功能。先看图： ，一个Gallery是歌曲专辑图片，另一个Gallery是专辑的歌曲。滑动专辑Gallery，下面的歌曲也会随之发生变动。 一、布局。 主要的布局是有两个相对布局+两个Gallery组成的： 二、Gallery的适配器在android中适配器很好的实现了MVC思想，它很好的为某些组件提供了数据和view的实现。此处我们需要通过继...</summary><published>2010-08-07T01:14:00Z</published><updated>2010-08-07T01:14:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/08/07/1794555.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/08/07/1794555.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/08/05/1792880.html</id><title type="text">Android开发——构建自定义组件【转】</title><summary type="text">来自：http://blog.csdn.net/shiqx429/archive/2009/02/06/3865581.aspxAndroid中，你的应用程序程序与View类组件有着一种固定的联系，例如按钮（Button）、文本框（TextView）,可编辑文本框（EditText）,列表框（ListView）,复选框（CheckBox）,单选框（RadioButton）,滚动条（Gallery）...</summary><published>2010-08-05T02:42:00Z</published><updated>2010-08-05T02:42:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/08/05/1792880.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/08/05/1792880.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/08/03/1791405.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;NDK开发入门</title><summary type="text">注：本文并非原创，参考了几位前辈的文章，本文只是稍作整理。 参考1：Eclipse配置NDK_R4开发环境（集成Cygwin 、CDT） 分别介绍了在window和linux下配置eclipse自动化编译ndk。 参考2：android NDK 开发环境配置 介绍了新版ndk的配置。 参考3：史上最强NDK入门项目实战 详细介绍了ndk HelloWorld的开发过程，不过ndk版本比...</summary><published>2010-08-03T09:13:00Z</published><updated>2010-08-03T09:13:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/08/03/1791405.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/08/03/1791405.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/05/31/1748197.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;Activity(活动)的生命周期(下)</title><summary type="text">接上文：《Android开发——Activity(活动)的生命周期(上)》 四、监听活动状态变化 为了确保对活动状态变化作出正确的响应，Android提供一个系列的事件控制器，监听活动的在整个生命周期的状态变化。活动的生命周期进一步细化，可以分为：全周期（Full Lifetime）&gt;可视期（Visible Lifetime）&gt;激活期（Active Lifetime）,如下图所示：...</summary><published>2010-05-31T06:29:00Z</published><updated>2010-05-31T06:29:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/05/31/1748197.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/05/31/1748197.html"/><content type="text">接上文：《Android开发——Activity(活动)的生命周期(上)》 四、监听活动状态变化 为了确保对活动状态变化作出正确的响应，Android提供一个系列的事件控制器，监听活动的在整个生命周期的状态变化。活动的生命周期进一步细化，可以分为：全周期（Full Lifetime）&gt;可视期（Visible Lifetime）&gt;激活期（Active Lifetime）,如下图所示：...</content></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/05/30/1747319.html</id><title type="text">Android开发&amp;mdash;&amp;mdash;Activity(活动)的生命周期(上)</title><summary type="text">一、前言 正确理解Activity的生命周期是非常重要的，只有正确理解Activity的生命周期，才能确保应用程序提供一个符合逻辑的的用户体验以及正确管理应用程序本身的资源。Android中的应用程序并不能管理自身的生命周期，而是由系统统一管理的，当然Activity也是这样子的。在运行时管理以及是否结束Activity进程，Activity的状态决定了应用程序的优先级。反过来，程序的优先级也影...</summary><published>2010-05-30T00:44:00Z</published><updated>2010-05-30T00:44:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/05/30/1747319.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/05/30/1747319.html"/><content type="text">一、前言 正确理解Activity的生命周期是非常重要的，只有正确理解Activity的生命周期，才能确保应用程序提供一个符合逻辑的的用户体验以及正确管理应用程序本身的资源。Android中的应用程序并不能管理自身的生命周期，而是由系统统一管理的，当然Activity也是这样子的。在运行时管理以及是否结束Activity进程，Activity的状态决定了应用程序的优先级。反过来，程序的优先级也影...</content></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/05/28/1746597.html</id><title type="text">Android开发——嘀咕客户端Demo版</title><summary type="text">由于时间关系，写的断断续续，到现在也只是实现一部分功能。UI方面也没有美化，因为哥不大会美工，哈哈。 图1 登陆 图2 登陆中 图3 嘀咕列表 图4 发布新嘀咕由于使用了自定义的 ArrayAdapter ，ListView在滑动的时候还有点“卡”，尚未优化。整个UI风格还处于“原始社会”，如果有个美工，加上我对Android UI 架构的认识和...</summary><published>2010-05-28T12:11:00Z</published><updated>2010-05-28T12:11:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/05/28/1746597.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/05/28/1746597.html"/><content type="text">由于时间关系，写的断断续续，到现在也只是实现一部分功能。UI方面也没有美化，因为哥不大会美工，哈哈。 图1 登陆 图2 登陆中 图3 嘀咕列表 图4 发布新嘀咕由于使用了自定义的 ArrayAdapter ，ListView在滑动的时候还有点“卡”，尚未优化。整个UI风格还处于“原始社会”，如果有个美工，加上我对Android UI 架构的认识和...</content></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/05/28/1746596.html</id><title type="text">Android开发——多媒体开发之MediaPlayer</title><summary type="text">MediaPlayer可以用来播放视频和音频、流媒体。MediaPlayer的生命周期如下图：从MediaPlayer的生命周期图，可以看出使用MediaPlayer不是很复杂。最简单的流程：初始化-&gt;resrt()-&gt;setDataSource()-&gt;prepare()-&gt;start()-&gt;……只要简单的几步，就可以播放音频文件了。来看看...</summary><published>2010-05-28T12:09:00Z</published><updated>2010-05-28T12:09:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/05/28/1746596.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/05/28/1746596.html"/><content type="text">MediaPlayer可以用来播放视频和音频、流媒体。MediaPlayer的生命周期如下图：从MediaPlayer的生命周期图，可以看出使用MediaPlayer不是很复杂。最简单的流程：初始化-&gt;resrt()-&gt;setDataSource()-&gt;prepare()-&gt;start()-&gt;……只要简单的几步，就可以播放音频文件了。来看看...</content></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/05/28/1746595.html</id><title type="text">Android开发——应用程序生命周期</title><summary type="text">一、前言与大多数传统的操作系统环境不同，Android应用程序并不能控制自己的生命周期。所以应用的各个组件（activity,Service……）就得时刻小心的监听应用的状态变化对它们的影响，防止在不适当的时机被终止掉。（可能会造成数据丢失哦）在Android中每个应用都具有独立的进程运行在独立的Dalvik（Android特有的虚拟机）。各个应用在运行时的进程管理和内...</summary><published>2010-05-28T12:08:00Z</published><updated>2010-05-28T12:08:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/05/28/1746595.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/05/28/1746595.html"/><content type="text">一、前言与大多数传统的操作系统环境不同，Android应用程序并不能控制自己的生命周期。所以应用的各个组件（activity,Service……）就得时刻小心的监听应用的状态变化对它们的影响，防止在不适当的时机被终止掉。（可能会造成数据丢失哦）在Android中每个应用都具有独立的进程运行在独立的Dalvik（Android特有的虚拟机）。各个应用在运行时的进程管理和内...</content></entry><entry><id>http://www.cnblogs.com/halzhang/archive/2010/05/28/1746594.html</id><title type="text">Android开发——通知Notification</title><summary type="text">Android的系统有一个通知栏，这个通知栏很好玩的，可以拉下来，推上去。通知是Android系统跟用户交互的一个重要的部分。比如有新邮件，新短信息，未接来电===信息都会显示在通知栏。我们把通知栏拖下来，点击通知信息，就能显示通知的具体内容。很cool的功能。我们也可以定义通知的样式，有图标，通知的声音，还有LED的颜色，闪烁的频率=== OK，看例子……代码示例一：...</summary><published>2010-05-28T12:07:00Z</published><updated>2010-05-28T12:07:00Z</updated><author><name>HalZhang</name><uri>http://www.cnblogs.com/halzhang/</uri></author><link rel="alternate" href="http://www.cnblogs.com/halzhang/archive/2010/05/28/1746594.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/halzhang/archive/2010/05/28/1746594.html"/><content type="text">Android的系统有一个通知栏，这个通知栏很好玩的，可以拉下来，推上去。通知是Android系统跟用户交互的一个重要的部分。比如有新邮件，新短信息，未接来电===信息都会显示在通知栏。我们把通知栏拖下来，点击通知信息，就能显示通知的具体内容。很cool的功能。我们也可以定义通知的样式，有图标，通知的声音，还有LED的颜色，闪烁的频率=== OK，看例子……代码示例一：...</content></entry></feed>
