android
文章平均质量分 75
yaozq的android开发
这个作者很懒,什么都没留下…
展开
-
Hello Views之List View(yaozq翻译,仅供参考)
ListView是创建滚动列表的ViewGroup。列表中的item是通过ListAdapter自动插入的。在这个教程中,你将创建一个从字符串数组读入的国家名称的滚动列表。当一个item被选中的时候,一个表明item在列表中位置的Toast信息将会显示出来。下面是具体步骤:1,新建一个名为HelloListView的项目。2,创建一个名为list_item.xml的XML文件,并将其保翻译 2012-03-07 13:40:09 · 1401 阅读 · 0 评论 -
应用程序中Broadcast Receiver的两种注册方法及比较
当系统或用户应用程序发送了某广播之后,符合条件的广播接收者都将收到该条广播。发送广播一般是通过sendBroadcast(Intent intent)(或者sendStickyBroadcast)或者sendOrderedBroadcast())方法来实现的(这两种发送方式分别对应了两种不同的广播,一种是普通的Broadcast,一种是有序的Broadcast,),其中intent为要广播的Int原创 2012-03-09 18:52:31 · 18353 阅读 · 2 评论 -
Android设计模式系列(7)--SDK源码之命令模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2011/08/13/2135478.html命令模式,在.net,java平台的事件机制用的非常多,几乎每天都与之打交道。android中对我印象最深的就是多线程多进程的环境,所以必然大量使用到Runbable,Thread,其实用的就是最简单的命令模式。命令模式,Comman转载 2012-03-17 20:04:12 · 701 阅读 · 0 评论 -
Android设计模式系列(4)--SDK源码之模板方法模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2011/08/09/2131602.html模板方法,和单例模式是我认为GOF的23中最简单的两种模式。但是我个人对模板方法的经典思想特别推崇,虽然模板方法在大对数情况下并不被推荐使用,但是这种通过父类调用子类的方法,使用继承来改变算法的一部分,是面向对象的一种基本认识。打比方说父转载 2012-03-17 17:29:56 · 731 阅读 · 0 评论 -
Android设计模式系列(9)--SDK源码之适配器模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2012/02/27/2010965.html对于android开发者来说起,适配器模式简直太熟悉不过,有很多应用可以说是天天在直接或者间接的用到适配器模式,比如ListView。ListView用于显示列表数据,但是作为列表数据集合有很多形式,有Array,有Cursor,我们需要对应转载 2012-03-18 17:31:01 · 780 阅读 · 0 评论 -
Android设计模式系列(8)--SDK源码之工厂方法模式
工厂方法模式,往往是设计模式初学者入门的模式,的确,有人称之为最为典型最具启发效果的模式。android中用到了太多的工厂类,其中有用工厂方法模式的,当然也有很多工厂并不是使用工厂方法模式的,只是工具管理类。今天以ThreadFactory举例说明一下简单工厂模式和工厂方法模式。 工厂方法模式,Factory Method,简单的方式,不简单的应用。1.意图定义一个用于创建对象转载 2012-03-18 20:46:18 · 1961 阅读 · 0 评论 -
Android命令行工具(1)——draw9patch
在程序开发中,为了界面更加美观,我们需要设置各种背景,比如布局背景、按钮背景等,但在不同屏幕尺寸的情况下,我们的背景图片可能要进行缩放,已适应新的屏幕显示,但这肯定就带来一个图片失真的问题,而这又将造成用户对产品的统一性体验较差,幸好Android对这方面早有考虑,那就是9Patch图片。本文将结合官方文档,来介绍下这方面的知识,算作自己的笔记。9Patch图片是一种可缩放的位图文件,使用时A原创 2012-03-17 12:12:34 · 2755 阅读 · 0 评论 -
Android设计模式系列(10)--SDK源码之原型模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2012/03/02/2020355.htmlCV一族,应该很容易理解原型模式的原理,复制,粘贴完后看具体情况是否修改,其实这就是原型模式。从java的角度看,一般使用原型模式有个明显的特点,就是实现cloneable的clone()方法。原型模式,能快速克隆出一个与已经存在对象类似转载 2012-03-18 15:25:01 · 696 阅读 · 0 评论 -
Android设计模式系列(3)--SDK源码之单例模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2011/08/07/2130306.html单例模式,可以说是GOF的23种设计模式中最简单的一个。这个模式相对于其他几个模式比较独立,它只负责控制自己的实例化数量单一(而不是考虑为用户产生什么样的实例),很有意思,是一个感觉上很干净的模式,本人很喜欢这个模式。android中很多转载 2012-03-17 17:06:08 · 839 阅读 · 0 评论 -
Android设计模式系列(2)--SDK源码之观察者模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2011/08/07/2129731.html观察者模式,是一种非常常见的设计模式,在很多系统中随处可见,尤其是涉及到数据状态发生变化需要通知的情况下。本文以AbstractCursor为例子,展开分析。观察者模式,Observer Pattern,是一个很实用的转载 2012-03-17 17:01:11 · 921 阅读 · 0 评论 -
Android设计模式系列(6)--SDK源码之享元模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2011/08/10/2133659.html享元模式,给我的感觉就是对象池,缓存单例对象。java中的享元模式最经典的例子就是String类了,还有一个最容易理解的就是word文档字符共享的例子,也是享元模式的经典应用。本文对android中的sql编译类SQLiteCompile转载 2012-03-17 19:39:07 · 600 阅读 · 0 评论 -
Android设计模式系列(5)--SDK源码之备忘录模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2011/08/09/2133049.html备忘录模式,在工作代码中,要么不用,要么经常用到。举个例子,程序员喜欢写代码,coding,coding,这个时候它的状态是很high,但是每隔一段时间总要去上一下厕所,状态是放松relax,上完测试归来后又恢复到high的状态,继续codi转载 2012-03-17 19:02:34 · 634 阅读 · 0 评论 -
Android设计模式系列(1)--SDK源码之组合模式
原文链接:http://www.cnblogs.com/qianxudetianxia/archive/2011/07/29/2121488.htmlAndroid中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用。在android UI设计,几乎所有的widget和布局类都依靠这两个类。组合模式,Composite Pattern,是一个非常巧妙的模转载 2012-03-17 16:19:55 · 917 阅读 · 0 评论 -
64位ubuntu11.10使用git下载android源码
Android是一个开发源码的平台,那就意味着,我们每一个人都可以下载、修改和创建自己的android platform,我们甚至可以帮助Android community完善和改进代码,当然这些离我们还有点远,反正离我还是比较远的,但看看总是可以的哈。本文将结合最新官方文档,使用git来下载android的源码,如有错误,欢迎指出!下面是具体步骤。1.安装git和curl:$ sud原创 2012-03-19 17:47:09 · 2899 阅读 · 0 评论 -
关于异常“The specified child already has a parent. You must call removeView"的解决(举例说明,附源码)
在android开发过程中,有时会在不同情况下遇到同种问题: java.lang.IllegalStateException The specified child already has a parent. You must call removeView() on the child's parent first.也就是非法状态异常,它说这个特定的child已经有一个parent了,你必须原创 2012-03-10 15:27:31 · 174814 阅读 · 16 评论 -
android 开发中遇到的错误及解决方式(更新R.java文件不能自动更新问题)
1、当import一个新的android项目时,项目名称上出现一个红色的感叹号,程序不能运行。原因:工程中classpath中指向的包路径错误。解决方法:在项目名称上点右键选择Properties,然后选择Java Bulid Path中的libraries选项,其中出现红色x号的路径为错误路径,删除之后,通过Add External Jars添加正确路径,点击确定之后,在Package原创 2012-03-07 13:50:42 · 7742 阅读 · 1 评论 -
《Expert Android》关键点摘录之一:Exploring Custom Views
一、In Android you can customize views in three ways:1、Custom views (by extending the View class);2、Compound views/controls(by composing other controls through extending one of existing Layout class原创 2013-10-27 22:31:26 · 1907 阅读 · 0 评论 -
使用Matrix进行图形变换来完成图片在屏幕上的全屏显示(屏幕自适应)
Matrix是Android提供的一个矩形工具类,主要是结合其他的API(如Canvas有个使用到Matrix做参数的drawBitmap()方法)来控制图形或者View组件的平移、旋转、缩放和倾斜变换。这里只对其做一个简要介绍,之所以有此一文,也只为记录在开发过程中曾使用到Matrix解决了一个我曾比较头疼的问题,就是让不同尺寸的图形,如何在不同尺寸的屏幕上全屏且完整的显示,具体的解决方式就是就原创 2012-03-16 15:38:59 · 5693 阅读 · 0 评论 -
google地图密钥申请与将google地图集成到自己的程序中(附源代码)
开发google地图,很重要的一个类就是MpaView,MapView类是一个让你的应用可以和Google Maps融合到一起的类,就是说通过MapView你可以让你的应用来下载、显示、标记和控制Google Maps。但为了得到地图数据,你就必须进行注册来得到一个Maps API key(即google地图API密钥)。当然在程序开发和测试阶段,这个Maps API key还只是临时的,它现在和原创 2012-03-13 12:58:17 · 7860 阅读 · 2 评论 -
Android的测试工具Monkey(yaozq翻译,仅供参考)
Monkey是一个可以在模拟器或者实际设备中运行的命令行程序,它可以向程序中发出一系列的伪随机事件流(比如按键输入、触摸输入、手势输入等的用户事件和一些系统级的事件)。开发者可以通过Monkey工具以一种随机且可以重复的方式来对正在开发的程序进行压力测试。Monkey使用综述Monkey是一个可以在模拟器或者实际设备中运行的命令行程序,可以向程序中发出一系列的伪随机事件流,来对正在开发的程翻译 2012-03-07 13:41:52 · 1278 阅读 · 0 评论 -
Hello Views之Spinner(yaozq翻译,仅供参考)
Spinner是一种类似于下拉列表的widget。在这个教程中,你将创建一个简单的用于展示星球列表的spinner组件。当选择列表中的一项时,将会弹出一个表示所选项的toast信息。下面是具体步骤:1,新建一个名为HelloSpinner的项目。2,打开res/layout/main.xml文件,并将下面的内容插入进去:<LinearLayout xmlns:androi翻译 2012-03-07 13:18:26 · 836 阅读 · 0 评论 -
关于Android Dedub Bridge(adb)的使用
Anroid Debug Bridge,android调试桥,简称ADB,它主要起到调试桥的做用,通过adb我们可以向模拟器或者实际设备上安装软件,可以在电脑与模拟器/实际设备之间进行文件传输,进入模拟器或者设备的shell等等。我们平常用Eclipse开发android程序中用到的DDMS也是通过adb来与模拟器/实际设备进行通信的。所以adb是每一个android开发者必知必会必熟的andro原创 2012-03-07 20:21:51 · 1347 阅读 · 0 评论 -
Android命令行工具(2)——DDMS
DDMS全称Dalvik Debug Monitor Service,功能很是强大,可以用来截取连接的设备或虚拟机屏幕,可以查看正在运行的进程的堆和线程信息,可以模拟电话拨打、短信发送,虚拟设置地理位置,还包括文件浏览器,内存分配跟踪等。本文继续结合官方文档,主要介绍一些关于DDMS的用法。(下图是通过Eclipse启动的DDMS)启动DDMS有两种启动方式:一是在命令原创 2012-03-20 17:40:46 · 7511 阅读 · 0 评论 -
Android程序测试(2)——Activity测试
与Content Provider测试、Service测试相比,Activity测试尤其离不开Android的测试框架(instrumentation framework),这是因为Android中的activities有着复杂的生命周期,而这些生命周期的各个阶段都是基于回调方法的,而这些方法只能由Android的测试框架来直接调用,也就是说,在一个程序中,向UI发送事件的唯一方法就是通过Andr原创 2012-03-22 10:54:11 · 5663 阅读 · 0 评论 -
通过发送广播来向桌面添加一个快捷方式(附源码)
让程序更好更多的被用户使用到,向桌面添加一个程序的快捷方式将是一种快捷方式,正好我在开发阅读器的时候,用到过这个知识点。为了方便,这里还是再新建一个项目来讲解一下是如何做到让用户通过点击一个按钮来实现向桌面添加一个快捷方式的。想学习这方面知识的朋友,可以借鉴一下,文章中最后附源码哈。其实在程序中要向桌面添加程序的快捷方式,只需简单的三步。我们知道要发送一个广播,必须要有一个要广播的In原创 2012-03-09 19:41:30 · 3734 阅读 · 0 评论 -
我的关于Monkey的使用例子
我的关于Monkey的使用例子(这里我主要使用一个实际的设备来对我写的一个阅读器程序进行测试,当然你也可以在模拟器中测试,查看测试效果。我使用的是友善之臂的Mini6410开发板,Mini6410中已经安装好了android系统和要测试的程序):1,将开发板通过usb与电脑相连,可以在命令行下通过adb devices命令来查看开发板是否为电脑所识别,具体:2,当正确识别开发板原创 2012-03-07 13:47:17 · 1065 阅读 · 0 评论 -
Android Application Foundamentals(yaozq翻译,仅供参考)
QuickViewAndroid软件是由一个或多个应用程序组件组成的,这些组件有activities、services、content provider和broadcast receivers。每一个组件在整个程序的behavior中扮演着重要角色,而且每一个组件都可以被单独的激活(activated),甚至可以由其他的程序激活。在manifest文件中必须要声明程序中所有的组件和必要翻译 2012-03-10 21:31:13 · 1434 阅读 · 0 评论 -
Android平台版本大全(注意版本号首字母原来是有规律的)
留个记录,省的对应不上。Android 4.0代号:IceCreamSandwichAPI Level:14Android 2.3代号:Gingerbread API Level:9,对于2.3.3和更高一点的版本API Level为10Android 2.2代号:FroYoAPI Level:8Android原创 2012-03-20 21:01:28 · 3599 阅读 · 0 评论 -
Android设备的电池续航时间优化(Optimizing Battery Life)——(一)监听电池电量和电池的充电状态
当你想通过减少后台更新服务的更新频率来降低程序对电池的影响时,检查电池当前的电量和充电状态将是一个比较好的起点。程序更新对电池造成的影响将取决于当前电池电量和充电状态,比如说,当设备正在充电的时候,这时的更新对电池的影响是微不足道的,所以这时就是你的程序加大更新力度的最佳时刻。与之相对的是,如果当前设备不是处于充电状态的话,降低程序更新力度对延长续航时间是很必要的。与之相类似的,如果设备没原创 2012-03-29 16:14:44 · 4825 阅读 · 0 评论 -
64位ubuntu 11.10下android开发环境的搭建(jdk+Eclipse+adt+android sdk详细)
一直在windows下进行的android开发,但有时感觉Eclipse和模拟器,执行效率不是很高,有时甚至感觉让人难以忍受,遂改在ubuntu下进行android开发,下面是我的android开发环境搭建过程,平台搭建成功,在搭建的过程中,一些注意事项我也做了下简单的介绍。下面是正文。一.安装jdk1.下载jdk,这里下载的是64位的jdk6没下jdk7,网上说有可能兼容性不好,原创 2012-03-12 10:27:09 · 9171 阅读 · 12 评论 -
Android设备的电池续航时间优化(Optimizing Battery Life)
“每当谈及移动智能设备的瓶颈,大家首先想到的总是电池续航能力。电池续航时间不仅与设备的硬件有关,还与运行在设备中的应用程序紧密相关。在电池自身容量无法在短时间内获得大幅提升的情况下,通过优化应用程序以节省电量的做法,也能在一定程序上起到延长电池续航时间的作用。同时,也让移动应用开发者对应用的耗电状况有了全新认识,或许省电也能成为应用的一种竞争力。”为了让你的应用程序更好的存在于用户的设原创 2012-03-29 16:09:27 · 3209 阅读 · 0 评论 -
Android的进程与线程(3)线程安全问题
当一个程序启动的时候,系统会为程序创建一个名为main的线程。这个线程重要性在于它负责把事件分发给适合的用户组件,这些事件包括绘制事件。并且这个线程也是你的程序与Android UI工具包中的组件(比如android.widget和android.view包中的组件)进行交互的线程。正因为如此,这个main线程有时也被称为UI线程。系统并不会为组件的每个实例都创建一个单独的线程。运行在同一个进原创 2012-04-01 17:37:21 · 9858 阅读 · 0 评论 -
Android程序测试(1)——新建一个简单的测试工程来测试已有的工程
因为程序测试方面是程序开发中非常重要的一方面,这里结合官方教程,来了解下Android程序是怎样进行测试的。Android开发环境集成了一个容易使用但同时很强大的程序测试框架,通过这个框架,可以测试程序的各个方面,比如测试程序的Activity、Content Provider、Service等。测试方式也可以根据开发环境而有不同的选择,可以选择在Eclipse中配合使用ADT插件工具进行原创 2012-03-16 11:26:20 · 12327 阅读 · 0 评论 -
Android的进程与线程(1)
当程序的一个组件启动的时候,如果这时程序中没有其他组件正在运行的话,Android系统将会为这个程序启动一个进程和一个线程。默认情况下,同一个程序中的所有组件运行在相同的进程和线程中(该线程被称为main线程)。如果当一个程序的组件启动的时候,该程序已经有一个进程的话(这种情况可能是因为程序的其他的某个组件已经运行了),程序的该组件就会在这个已经存在的进程中被启动,并且运行在同一个线程(即main原创 2012-04-01 09:43:34 · 2556 阅读 · 0 评论 -
Android的进程与线程(2)按重要性划分等级的5种进程
Android系统会尽可能时间长的来维持一个程序的进程,但当系统资源紧张的时候,系统终究会为一些新的或者更重要的进程杀死一些旧的进程来释放内存。系统主要是根据进程中组件的运行状态,来决定每一个进程的重要性,从而决定哪个进程需要杀死,哪个进程需要保持。最不重要的进程最容易先被杀死,其次最不重要的进程会被杀死,以此往复,直到系统恢复了需要的资源。既然系统主要根据进程的重要性来决定一个进程的存亡,下原创 2012-04-01 11:23:43 · 4014 阅读 · 0 评论 -
《Expert Android》关键点摘录之二
The draw traversal is implemented in the View's draw() method. The protocol implemented by this method is: Draw the background Draw view's content by delegating to onDraw() Draw children by dele原创 2013-11-01 14:55:46 · 1962 阅读 · 0 评论