2011-07-16 23:33 by HalZhang, 1872 visits, 网摘, 收藏, 编辑
摘要:好久没有更新博客了。不是没时间写,而是太懒。而且感觉有些东西没有时间总结,之之后再想写,就想不起来了。晚上新发现一点东西,所以就及时写下来。最近利用业余时间在看Android的Download模块,看得是2.3之前版本的源码,2.3之后android就开放了一个下载管理器,并提供了一些api。不过想对下载模块有更深入的了解还是必须自己花点时间看看downloadprovider的源码。相信会收获很多。如果有时间想写写文章对downloadprovider进行分析。这篇文章不是分析download的,不过却是我从读download的源码发现的。情景分析:我们有一个Service,这个Servic
阅读全文
2011-03-10 23:35 by HalZhang, 2447 visits, 网摘, 收藏, 编辑
摘要:神马是MediaScanner呢?在Android的SDK里面是看不到这个类的,因为被google隐藏了。通过Android的源码我们可以看到MediaScanner的类注解多了一个@hide的标注。所以对于一般应用开发者,此文意义不是很大,大家可以绕道。 在前两篇文章中,最后我们都了解了Android的媒体文件的扫描是在MediaScannerService中调用MediaScanner的sca...
阅读全文
2011-03-08 15:25 by HalZhang, 2418 visits, 网摘, 收藏, 编辑
摘要:转载请注明出处! 欲读此文,先读上文:MediaProvider源码分析(1) ----------------------START--------------------------- 在上一篇文章中说到系统当接收到扫描请求广播的时候就会调用scan或者scanFile去扫描手机(手机内存和sdcard)中的媒体文件。这两个方法都是启动MediaScannerService这个服务来完成扫描任...
阅读全文
2011-03-07 20:40 by HalZhang, 3922 visits, 网摘, 收藏, 编辑
摘要:转载请注明出处。 --------------START------------ MediaProvider包括五个类: com.android.providers.media.MediaProvider com.android.providers.media.MediaScannerCursor com.android.providers.media.MediaScannerReceiver c...
阅读全文
2011-01-18 23:40 by HalZhang, 2789 visits, 网摘, 收藏, 编辑
摘要:上一篇:Android开发——Android搜索框架(一) 距离上一篇文章有段时间了,唉。 接着上一篇文章,现在说说如何在搜索的时候弹出搜索历史提示。 1.创建搜索建议提供者 Android已经为我们创建了一个默认的,我们只需要继承 SearchRecentSuggestionProvider 就稍做修改就可以了。 见代码: 2.配置searchable.xml 参数说明:android:...
阅读全文
2011-01-05 20:55 by HalZhang, 2198 visits, 网摘, 收藏, 编辑
摘要:在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: 1. 如何决定所属task “standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACT...
阅读全文
2010-12-05 11:14 by HalZhang, 5095 visits, 网摘, 收藏, 编辑
摘要:一、前言 前几天发现09年Google IO大会关于移动应用方面的主题有一些不错的PPT,对移动应用开发很有帮助。自己看了一些,边看边和大家分享。既然是PPT就很简化了,我会根据实际情况写一些Demo供大家参考。 Android在UI优化方面可以从以下五个方面入手: Adapter优化 背景和图片优化 绘图优化 视图和布局优化 内存分配优化 二、Adapter优化 什么是Adapter,可以...
阅读全文
2010-11-28 23:47 by HalZhang, 13190 visits, 网摘, 收藏, 编辑
摘要:Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。 图1 Adapter、数据、UI三者关系(PS:此图来自Google I/O) 一、Android中Adapter 图2:Andro...
阅读全文
2010-09-13 17:10 by HalZhang, 5281 visits, 网摘, 收藏, 编辑
摘要:Android是google的产品,所以自然是少不了搜索。先看看Android一些应用中的搜索对话框。 图1 Android中的全局搜索 图2 联系人搜索 图3 音乐搜索 以上都是通过按下实体键盘上的搜索按钮弹出的一个搜索对话框,当然搜索关键词提示是少不了的。如何实现呢?慢慢来!呵呵。 一、配置搜索描述文件 在res中的xml文件加创建sreachable.xml,内容如下: 二、创建Sea...
阅读全文
2010-08-18 16:50 by HalZhang, 5112 visits, 网摘, 收藏, 编辑
摘要:一、onTouch onTouch是View中OnTouchListener接口中的方法,处理View及其子类被touch是的事件处理。当然,前提是touch时间能够传递到指定的view。Q1:为什么会传递不到呢? 二、onTouchEventonTouchEvent同样也是在view中定义的一个方法。处理传递到view 的手势事件。手势事件类型包括ACTION_DOWN,ACTION_MOVE...
阅读全文
2010-08-11 09:54 by HalZhang, 1742 visits, 网摘, 收藏, 编辑
摘要:1. 查看当前堆栈 1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系 2) 方法: new Exception(“print trace”).printStackTrace(); 2. MethodTracing 1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等 2) 方法: a) 在程序代码中加入追踪开关 b)...
阅读全文
2010-08-07 09:14 by HalZhang, 3150 visits, 网摘, 收藏, 编辑
摘要:本文将讲解利用两个Gallery实现类似多级联动的功能。先看图: ,一个Gallery是歌曲专辑图片,另一个Gallery是专辑的歌曲。滑动专辑Gallery,下面的歌曲也会随之发生变动。 一、布局。 主要的布局是有两个相对布局+两个Gallery组成的: 二、Gallery的适配器在android中适配器很好的实现了MVC思想,它很好的为某些组件提供了数据和view的实现。此处我们需要通过继...
阅读全文
2010-08-05 10:42 by HalZhang, 1552 visits, 网摘, 收藏, 编辑
摘要:来自:http://blog.csdn.net/shiqx429/archive/2009/02/06/3865581.aspxAndroid中,你的应用程序程序与View类组件有着一种固定的联系,例如按钮(Button)、文本框(TextView),可编辑文本框(EditText),列表框(ListView),复选框(CheckBox),单选框(RadioButton),滚动条(Gallery)...
阅读全文
2010-08-03 17:13 by HalZhang, 7935 visits, 网摘, 收藏, 编辑
摘要:注:本文并非原创,参考了几位前辈的文章,本文只是稍作整理。 参考1:Eclipse配置NDK_R4开发环境(集成Cygwin 、CDT) 分别介绍了在window和linux下配置eclipse自动化编译ndk。 参考2:android NDK 开发环境配置 介绍了新版ndk的配置。 参考3:史上最强NDK入门项目实战 详细介绍了ndk HelloWorld的开发过程,不过ndk版本比...
阅读全文
2010-05-31 14:29 by HalZhang, 1603 visits, 网摘, 收藏, 编辑
摘要:接上文:《Android开发——Activity(活动)的生命周期(上)》 四、监听活动状态变化 为了确保对活动状态变化作出正确的响应,Android提供一个系列的事件控制器,监听活动的在整个生命周期的状态变化。活动的生命周期进一步细化,可以分为:全周期(Full Lifetime)>可视期(Visible Lifetime)>激活期(Active Lifetime),如下图所示:...
阅读全文
2010-05-30 08:44 by HalZhang, 671 visits, 网摘, 收藏, 编辑
摘要:一、前言 正确理解Activity的生命周期是非常重要的,只有正确理解Activity的生命周期,才能确保应用程序提供一个符合逻辑的的用户体验以及正确管理应用程序本身的资源。Android中的应用程序并不能管理自身的生命周期,而是由系统统一管理的,当然Activity也是这样子的。在运行时管理以及是否结束Activity进程,Activity的状态决定了应用程序的优先级。反过来,程序的优先级也影...
阅读全文
2010-05-28 20:11 by HalZhang, 751 visits, 网摘, 收藏, 编辑
摘要:由于时间关系,写的断断续续,到现在也只是实现一部分功能。UI方面也没有美化,因为哥不大会美工,哈哈。 图1 登陆 图2 登陆中 图3 嘀咕列表 图4 发布新嘀咕由于使用了自定义的 ArrayAdapter ,ListView在滑动的时候还有点“卡”,尚未优化。整个UI风格还处于“原始社会”,如果有个美工,加上我对Android UI 架构的认识和...
阅读全文
2010-05-28 20:09 by HalZhang, 1345 visits, 网摘, 收藏, 编辑
摘要:MediaPlayer可以用来播放视频和音频、流媒体。MediaPlayer的生命周期如下图:从MediaPlayer的生命周期图,可以看出使用MediaPlayer不是很复杂。最简单的流程:初始化->resrt()->setDataSource()->prepare()->start()->……只要简单的几步,就可以播放音频文件了。来看看...
阅读全文
2010-05-28 20:08 by HalZhang, 360 visits, 网摘, 收藏, 编辑
摘要:一、前言与大多数传统的操作系统环境不同,Android应用程序并不能控制自己的生命周期。所以应用的各个组件(activity,Service……)就得时刻小心的监听应用的状态变化对它们的影响,防止在不适当的时机被终止掉。(可能会造成数据丢失哦)在Android中每个应用都具有独立的进程运行在独立的Dalvik(Android特有的虚拟机)。各个应用在运行时的进程管理和内...
阅读全文
2010-05-28 20:07 by HalZhang, 953 visits, 网摘, 收藏, 编辑
摘要:Android的系统有一个通知栏,这个通知栏很好玩的,可以拉下来,推上去。通知是Android系统跟用户交互的一个重要的部分。比如有新邮件,新短信息,未接来电===信息都会显示在通知栏。我们把通知栏拖下来,点击通知信息,就能显示通知的具体内容。很cool的功能。我们也可以定义通知的样式,有图标,通知的声音,还有LED的颜色,闪烁的频率=== OK,看例子……代码示例一:...
阅读全文
2010-05-28 20:05 by HalZhang, 722 visits, 网摘, 收藏, 编辑
摘要:一、什么是Intent?Intent的中文意思是目的。在Android中也是“目的”的意思。就是我们要去哪里,从这个activity要前往另一个Activity就需要用到Intent。示例代码一:以上示例代码的作用是从IntentDemo这个activity切换到AnotherActivity2。这是Intent其中一种构造方法,指定两个Activity。为什么需要指定两个...
阅读全文
2010-05-28 20:03 by HalZhang, 4279 visits, 网摘, 收藏, 编辑
摘要:说Android是一款互联网手机操作系统一点也不过为过。打开G2的"大抽屉”,一大堆的软件,大部分都是需要网络支持才能正常运行的。曾经和同学说:没有网络支持,G2跟Nokia 1200没啥区别!既然Android定位为“网络操作系统”,自然提供了很威水的网络访问接口。既有java.net.*,又有org.apache.http.*,在数据处理方面支持json,x...
阅读全文
2010-05-28 19:59 by HalZhang, 4137 visits, 网摘, 收藏, 编辑
摘要:其实就是普通的文件操作,不过还是有些地方需要注意。比如:1.加入sdcard操作权限;2.确认sdcard的存在;3.不能直接在非sdcard的根目录创建文件,而是需要先创建目录,再创建文件;实例:(1)在AndroidManifest.xml添加sdcard操作权限(2)变量声明:(3)向sdcard写文件完毕,呵呵……以上只是一个非常十分小的实例,发挥我们的创造力吧...
阅读全文
2010-05-28 19:56 by HalZhang, 566 visits, 网摘, 收藏, 编辑
摘要:----------------接上文---------------------2、创建自定义ContentProvider创建内容供应器,需要继承ContentProvider示例代码三:至此我们就创建了一个ContentProvider了3、Provider的配置,在AndroidMainfest.xml配置示例代码三:OK,至此我们就创建了一个ContentProvider了。
阅读全文
2010-05-28 19:53 by HalZhang, 680 visits, 网摘, 收藏, 编辑
摘要:一、Android中四种数据存储方式1、SharePreferences: 一种轻量级的数据存储方式,采用键值对的方式存储。最终还是以文件的方式存储。主要用了应用的配置,类型window中常见的*.ini文件。数据不共享,只能提供给一个应用使用。2、SQLite:一个用于移动设备,小而强大的数据库。数据可以共享。3、文件存储:就是文件操作咯。一般用了体积较大的文件,比如图片。4、ContentPr...
阅读全文