- 博客(31)
- 资源 (8)
- 收藏
- 关注
原创 Android中设计模式无处不在之单例模式
单例模式使用比较常见,用来保证一个类仅有一个实例,并提供一个访问它的全局访问点。在Android application包中有个Bluetooth相关的包就用到了单例模式,实例代码如下: public class BluetoothOppManager { private static BluetoothOppManager INSTANCE; /** Used when obtaining a reference to the singleton instance. */
2011-02-08 19:22:00 5119 1
原创 Android中设计模式无处不在之简单工厂模式和代理模式
<br />最近在研究一些具体的设计模式,结合之前看到很多Android中java代码,发现在Android源码中使用设计模式的地方还真不少啊,好的系统果然要注重好的设计,注重可扩展、可维护。本次就从PhoneService中使用到的一些简单的设计模式类型开始介绍:<br /> <br />1.简单工厂模式:<br /><br />注:个人觉得这个工厂模式和标准的工厂模式有点稍微差别,标准的是有客户端来决定创建哪个实例,例如,要使用GSMPhone的话,一般使用Phone phone = PhoneFact
2011-02-07 19:38:00 7989 1
原创 Android中PIN和PUK码解锁研究
<br /><br />由于目前手头没有真机,只是在模拟器上修改部分telephony代码来调出请求输入PIN码的界面。具体方法:修改external/qemu/telephony/sim_card.c中的asimcard_create()函数,将card->status= A_SIM_STATUS_READY改为card->status= A_SIM_STATUS_PIN,然后重新编译代码生成image,启动模拟器就直接进入PIN码解锁界面。<br /> <br /> PIN码解
2011-01-31 17:09:00 20048 7
原创 UML中几种类图的定义和表示
我们知道,面向对象的特性就是封装、继承和多态,而为了使这些关系呈现的更加清晰,经常采用UML类图的形式来表示。常见的几种关系如下:1. 类(Class): 表示对某种对象的封装。具体表示如下图,其中,最上面一格代表类名,斜体表示该类为抽象类;第二格表示该类的特性,就是常说的字段和属性;第三格表示类的操作,即方法和行为。前面的+号表示public,-表示private,#表示protected。2. 接口(Interface): 是指一系列方法的声明,没有实现,实现该接口的类负责实现该接口的方法。 其中,最上
2011-01-09 13:09:00 7770 1
原创 Android中如何实现高亮显示即选中状态
好久没不做Android的界面就是手生,为了搞下图的效果整了好半天,不过还好最终搞定了。1.声明明你的layout,并将如下的背景xml设置上去:
2011-01-06 16:13:00 10812
原创 Android如何预置数据库或库文件
<br />我们在做Android应用开发的时候经常会用到预置数据库或者使用一个现有的第三方的动态或静态库的方式进行开发,这时候就需要一些修改Makefile文件将预置的数据或库文件拷贝到指定目录中。一个比较简单的方式如下:<br />##copy operation####<br />include $(CLEAR_VARS)<br /> <br />#the data or lib you want to copy<br />LOCAL_MODULE := libxxx.so<br /> <br />L
2011-01-05 17:44:00 7254
原创 基于Android源码开发的来电接通振动功能实现
我们在使用HTC的GXX时,会发现他有一个功能是接通后振动提示,虽然说不是什么大的功能,但是使用比较方便,比如在呼叫过程中的时候就可以放在桌子上等振动了就说明电话被接通了再拿起来说话,就避免了一直放到耳边等待对方。具体的实现如下,当然实现方式可能和它不一样,但是效果一样,呵呵。由于我们是基于源码开发的,所以只讨论在PhoneApp里面添加该功能,独立模块或者基于SDK开发的不讨论。注意修改PhoneApp模块中的CallNotify.java文件。1. 声明Vibrartor相关变量:// Call a
2010-12-11 20:45:00 10941 7
原创 Android Button及TextView动态变换颜色
<br />做android应用程序,为了达到更好的用户交互效果,经常需要改变Button的背景颜色以及TextView的字体颜色来提示用户当前的菜单可操作的状态,对此android提供了一种定义一种selector的方法让程序员提前配置好背景和色值,具体的方法如下:<br />一.Button(ImageButton、ImageView包括一般的view、ViewGroup都可以同样操作):<br />1.首先在你的layout文件中为Button添加background属性,比如android:back
2010-11-12 11:47:00 21671 4
转载 适配不同分辨率&hdpi、mdpi、ldpi&横屏竖屏()
目录1 一:不同的layout 2 二:hdpi、mdpi、ldpi 3 三:横屏竖屏 编辑本段 回目录一:不同的layoutAndroid手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.Java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。 编辑本段 回
2010-11-05 10:55:00 1459
原创 "Could not create java virtual machine"的问题解决
<br />今天到了新的环境,需要重新搭建Android的开发环境,下载eclipse并安装了JDK1.6后,启动eclipse,发现出现了错误“Could not create java virtual machine”,点击就立即关闭了。<br /> <br />解决办法如下,打开eclipse目录下的eclipse.ini文件:<br />-startup<br />plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar<br />--laun
2010-09-29 17:44:00 38225 1
原创 使用for循环代替while循环的场合
<br />1.在循环终止之后,不需要使用循环变量;<br />for (Element e : c) { doSomething(e);} <br />但是跳出for循环之后,变量的作用域就存在了。<br />2.易于较早发现程序中的错误;<br />Iterator<Element> i = c.iterator();while(i.hasNext()) { doSomething(i.next());}...Iterator<Element> i2 = c.it
2010-09-24 10:56:00 2107
原创 Android CTS
首先配置软件环境:1、下载Android-2.1系统,并编译。$ . build/envsetup.sh //配置选项,并编译android源码$ make cts //android源码编译好后,在编译cts2、编译好cts后生成的文件位置如下#mydroid/out/host/linux-x86/在该目录下包含如下测试文件Package CTS: out/host/linux-x86/cts/android-cts.zip
2010-09-15 18:16:00 5859 2
原创 "Unable to get buffer of resource asset file"问题的解决
<br /><br />Problems <br />When building you might run into the Unable to get buffer of resource asset file error. The root cause of this is that the new android resource file resources.arsc is larger than the aapt tool allows. You can exchange the .arsc f
2010-09-07 18:27:00 1438
转载 Android调试的必杀技——反汇编
<br /><br />在移植Android过程中会遇到很多Crash的事情。一般这些问题都可以通过看代码能解决,当然也有一些比较难搞的问题,非常难找到头绪,在 logcat日志也只会打印一些崩溃的堆栈,这些信息很难帮助我们定位问题。根据个人一个实例来介绍一下在Android移植过程中反汇编的用法。<br /> 首先先看一下我遇到的一个logcat关于Crash的打印信息:I/DEBUG ( 1417): *** *** *** *** *** *** *** *** *** *** *** *
2010-08-30 16:58:00 1816
原创 蓝牙调查相关工具使用
<br />1.dbus-send<br />{{{<br />向指定dbus服务发送调用请求。dbus-send [--system | --session] [--dest=NAME] [--print-reply] [--type=TYPE] <destination object path> <message name> 以bluez为例,向hcid发送请求:dbus-send --system --print-reply --dest=org.bluez /
2010-08-23 16:19:00 1087
原创 Android中的Logcat方法查看内核的日志
<br />步骤如下:1.在Android的源码中(目标路径为:system/core/logcat/logcat.cpp),将其此logcat.cpp文件中的static void readLogLines(int logfd)函数作出如下修改:<br />static void readLogLines(int logfd){<br />char buffer[256] = {0};<br />while (1) {<br />unsigned char
2010-08-23 16:19:00 8300
原创 一个小的面试题目
<br />Q:不使用任何中间变量和库函数,计算字符串的长度<br />A:那就使用递归和自操作<br /> <br />代码如下:<br />static int my_strlen(char *str){ if(*str != '/0'){ return (my_strlen(++str)+1); }else{ return 0; }}
2010-06-24 10:23:00 712
转载 Build Android Kernel
1.准备编译环境sudo apt-get install build-essential ncurses-dev 2.Get kernel sourcegit clone git://android.git.kernel.org/kernel/common.gitgit checkout origin/android-goldfish-2.6.29 -b goldfish 3.Get
2010-04-22 17:34:00 1513
原创 Android AlertController的小bug?
上周五在帮一个实习生调试程序的时候发现了这个问题,他当时想实现一个这样的功能:当用户选择删除时,以dialog的方式弹出数据列表,并且每个数据都有一个checkbox,用户选择后可以进行删除过滤。具体的接口是: public AlertDialog.Builder setMultiChoiceItems (Cursor cursor, String
2010-04-03 17:36:00 3470 9
原创 解决Ubuntu上ADB找不到设备的问题
按照google官方的说法,如下步骤操作:If youre developing on Ubuntu Linux, you need to add a rules file: Login as root and create this file: /etc/udev/rules.d/50-android.rules.For Gusty/Hardy, edit the file t
2010-01-23 15:11:00 10491 5
原创 通过BluetoothA2DPService学习AIDL心得
本文想结合BluetoothA2DPService讲述一下实现AIDL功能的方法,说的不对的地方,欢迎批评指正:)1.BluetoothA2DPService的实现: 1)首先在SystemService代码中我们看到 bluetoothA2dp = new BluetoothA2dpService(context); ServiceManager.addService(Blu
2010-01-11 17:19:00 7028 2
原创 Git和Repo扫盲——如何取得Android源代码(转)
Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(repository),许多个工作目录(working copy),而像Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper 、Mercurial 、
2009-11-11 00:20:00 847
原创 Broadcast Receiver使用心得
<br /><!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;}@font-face
2009-06-30 15:58:00 718
转载 Talking about Android Process
[First written by Steve Guo, please keep the mark if forwarding.] In this topic you will learn some information about Android process management. First let’s take a look at the launched processe
2009-06-24 21:50:00 13263
转载 android开发环境建立以及开发工具的使用--怎样使用eclipse来开发android源码
android提供的工具链和开发工具比较完善,因此它的开发环境的搭建比较简单,相信许多朋友都已经搭建好环境,并编写了HelloActivity入门程序了。这里先看几个问题:1、android的文件系统结构是怎样的,我们安装的程序放在那里?编译android源码之后,在out/target/product/generic一些文件:ramdisk.img、system.img、user
2009-06-07 18:44:00 2927
原创 Androiding
在一家导航软件公司呆了不到俩月就出来了,一方面是为了自己的梦想,继续做自己喜欢linux手机开发;另一方面也是报复上家可气的公司。具体什么公司就不多说了,反正对他没有什么好感,所以归属感就更谈不上,出来也是早晚的事情,最后早走早超生。 目前做起了Android手机开发,感觉起步有点晚,但是目前市面上除了HTC出了几款机器,其余的公司都在紧锣密鼓的开发当中,当然软件做的最好的(也不一定是最好
2009-06-07 18:21:00 865 1
原创 Qt的signal/slot机制的原理和使用
使用过qt的人都知道,signal/slot是Qt对象以及其派生类对象之间的一种高效通信接口,它是Qt的核心特性,也是区别与其他工具包的重要地方。它完全独立于标准的C/C++语言,因此用正确的处理好信号和槽,必须借助于一个成为moc(Meta Object Compiler)的qt工具,该工具是一个C++预处理程序,能为高层次的事件处理自动生成所需要的附加代码。 1.与回调函数的不同:
2009-03-09 16:19:00 8848 3
原创 家里蹲
已经失业一个周了,中间也去面试了几家公司,有大的也有小的,有外企也有国企,可是并没有想象中的那么乐观。毕竟外面的形势还是比较严峻,岗位的竞争也比较激烈,僧多粥少啊。本来就招3-4个人还要面试几十甚至上百个才干罢休。本来一周内就能决定是否能让你上班的,现在改成了回家等消息吧,两周内通知你。汗,看来还是要做好最坏的打算了。 当然了,也要我自身的原因。人都有一种惰性,一旦一件事情成了定式之后就会
2009-03-08 21:21:00 905
原创 pidgin移植完了,show一把
主要功能:聊天(包括单人和多人聊天室模式)、传送文件、帐户管理、修改组和好友信息等等效果如下:1.登陆界面: 2.好友列表界面: 3.单人聊天界面: 4.聊天室界面: 5.文件传输界面: 发现libpurple的bug还真不少,可见开源还是要多多加油啊:)
2009-01-14 17:52:00 1475 4
原创 Sqlite DB
前一阵字做项目(嵌入式linux),由于要保存大量的数据,而且最长要保存30天的时间。本来打算保存到文件中,每次启动应用程序的时候重新解析一遍,可是当数据量很大的时候,就出现效率的问题了。所以最后还是放弃了使用文件的打算,决定使用数据库存取数据。linux下的数据库也很多,有开源的,也有收费的。对于我们来说,肯定要使用开源的数据库。以前用过Berkely DB,但是需要licience。所以结合效
2007-11-23 17:01:00 9952 11
原创 成功人士的20个优良习惯!
1、懂得做人 品德高尚是成功之本。会做人,别人喜欢你,愿意和你合作,才容易成事。习惯于能真诚地欣赏他人的优点,对人诚实、正直、公正、和善和宽容,对其他人的生活、工作表示深切的关心与兴趣。 台湾著名企业家张忠谋在黑金横行的社会大环境下依然从来不走后门、不走政商关系,更拒绝钻法律漏洞,赢得企业界和民众的极大尊重,官员也因此从来不敢故意刁难他的企业。 2、善于决策 一个成功的企业领导
2005-12-16 22:08:00 1221
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人