- 博客(0)
- 资源 (12)
- 收藏
- 关注
Java中正则表达式使用方法详解
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。
许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?
本文写作时,一个包含了用正则表达式进行文本处理的Java规范需求(Specification Request)已经得到认可,你可以期待在JDK的下一版本中看到它。
然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从Apache.org下载源代码开放的Jakarta-ORO库。本文接下来的内容先简要地介绍正则表达式的入门知识,然后以Jakarta-ORO API为例介绍如何使用正则表达式。
一、正则表达式基础知识
我们先从简单的开始。假设你要搜索一个包含字符“cat”的字符串,搜索用的正则表达式就是“cat”。如果搜索对大小写不敏感,单词“ctalog”、“Catherine”、“sophisticated”都可以匹配。也就是说:
2013-05-27
GSM手机原理、测试及维修简明教程
目录
一、GSM数字移动通信发展史
1.1 GSM系统历史背景
1.2 GSM系统技术规范
二、GSM通信系统
2.1 GSM通信系统的组成
2.2 基站子系统(BSS)
2.3 网路子系统(NSS)
三、GSM关键技术
3.1保密措施
3.2 BTS和MS间Um接口
3. 3 TDMA技术
3. 4 基站与移动台间的时间调整
3. 5 话音编码
3.6 信道编码
四、GSM蜂窝系统
4.1 频道管理
4.2 GSM 功能
4.3 GSM用户通话过程
4.4 呼叫处理
五、GSM手机
5.1 GSM900/1800双频手机RF部分的主要技术指标
5.2 双频手机RF部分基本工作原理
5.3 几种不同的接收机RF接收方案
5.4 发射单元
5..5 频率合成器
5.6 基带
5.7基带语音信号传输流程
5.8 基带技术实现及芯片的构成
六、GSM手机的测试
七、GSM手机维修的常用方法
2013-05-27
android数据存储
在Android中,提供了三种数据存储的途径,和两种存储方式。
三种途径:
l 系统配置(Shared Preferences):
这类应用主要是系统的配置信息的保存,比如我给程序界面设置了颜色,我想在下一次启动时还是能够保留上次设置的颜色。由于Android系统的界面是采用Activity栈的形式,在系统资源不足时,会收回一些界面,那么,我想有些操作也是需要在不活动时保留下来的,等再次激活时能够显示出来。
l 文件(Files)
Android是一个操作系统,自然而然对存储系统会有一个管理,因为采用提Linux核心,所有在Andorid系统中,文件也是Linux的形式。当然我们的应用程序也就可以把数据以文件的形式记录下来咯。
l 数据库(SQLite Databases)
在Andriod系统中,也少不了一个数据库管理,但考虑到系统资源(内存,硬盘),选择了轻便型的数据库SQLite,这是一个开源的关系型数据库,与普通关系型数据库一样,也具有ACID的特性。
两种存储方式:
主要是根据数据库共享方式来分
l 程序内自用:
通常我们程序中需要的数据一般都是为本程序来用,所以我们用上面三种途径来创建的程序都是默认为本程序使用,其他程序无法获取操作。
2013-05-27
android电话薄contacts操作增_删_改_收藏
电话薄在实际的开发中还是很常见的,在论坛中经常有人问,回答的也是事实而非,今天有空做点记录吧。
电话薄的开发无非就是对联系方式的增、删、改、查四种操作,这里可要注意了,在Android里面给用户的权限更大,可以修改和删除已有的联系人的信息,与J2me PIM不一样哦。在Android系统里面正对联系人的操作是被划分在Content Providers里面,用做好类似的开发,需要了解的知识:Uri(不是Url)、Android的权限控制、Android的联系方是表的字段等等。
有了上面的知识其实就可以开发增删改查的功能了,在网络上面看的基本只有增和查,在这里重点也在更新和删除,注意在做涉及到网系统读写的操作的时候,要在你的AndroidMainfest.xml里面把权限打开:
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
这里读和写的权限都要打开,与我们一般的思路有点不一样,这里读写权限是分开的,要是还想打电话就要也要把其对应的权限打开
<uses-permission android:name="android.permission.CALL_PHONE" />
这些都是一些很细节性的基础东西,对于初学者很有必要注意哦,有的时候这些简单的基础东西没有注意可能会然他你死活找不到bug所在。
废话少说,下面贴点代码:
2013-05-27
Android操作通话记录
呼叫记录有三种类型:
来电:CallLog.Calls.INCOMING_TYPE (常量值:1)
已拨:CallLog.Calls.OUTGOING_TYPE(常量值:2)
未接:CallLog.Calls.MISSED_TYPE(常量值:3)
查看源码中的声明:
<provider android:name="CallLogProvider"
android:authorities="call_log"
android:syncable="false" android:multiprocess="false"
android:readPermission="android.permission.READ_CONTACTS"
android:writePermission="android.permission.WRITE_CONTACTS">
</provider>
需要声明的权限
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
系统的通话记录,是通过 ContentProvider 来对外共享的
Uri
CallLog.Calls.CONTENT_URI : 等价于:Uri.parse("content://call_log/calls");
查询出所有记录
ContentResolver resolver = getContentResolver();
resolver.query(CallLog.Calls.CONTENT_URI, null, null, new String[]{"15101689022"}, null);
2013-05-27
Android_联系人数据库介绍以及对联系人的基本操作
联系人的数据库文件的位置
/data/data/com.android.providers.contacts/databases.contacts2.db
数据库中重要的几张表
1、contacts表
该表保存了所有的手机测联系人,每个联系人占一行,该表保存了联系人的ContactID、联系次数、最后一次联系的时间、是否含有号码、是否被添加到收藏夹等信息。
2、raw_contacts表
该表保存了所有创建过的手机测联系人,每个联系人占一行,表里有一列标识该联系人是否被删除,该表保存了两个ID: RawContactID和ContactID,从而将contacts表和raw_contacts表联系起来。该表保存了联系人的RawContactID 、ContactID、联系次数、最后一次联系的时间、是否被添加到收藏夹、显示的名字、用于排序的汉语拼音等信息。
2013-05-27
Telephony_代码分析
Android源码中,hardware/ril目录中包含着Android的telephony底层源码。这个目录下包含着三个子目录,下面是对三个子目录的具体分析。
一、目录hardware/ril/include分析:
只有一个头文件ril.h包含在此目录下。ril.h中定义了76个如下类型的宏:RIL_REQUEST_XXX ,这些宏代表着客户进程可以向Android telephony发送的命令,包括SIM卡相关的功能,打电话,发短信,网络信号查询等。
二、目录hardware/ril/libril分析:
本目录下代码负责与客户进程进行交互。在接收客户进程命令后,调用相应函数进行处理,然后将命令响应结果传回客户进程。在收到来自网络端的事件后,也传给客户进程。
文件ril_commands.h:列出了telephony可以接收的命令;每个命令对应的处理函数;以及命令响应的处理函数。
文件ril_unsol_commands.h:列出了telephony可以接收的事件类型;对每个事件的处理函数;
文件ril_event.h/cpp:处理与事件源(端口,modem等)相关的功能。ril_event_loop监视所有注册的事件源,当某事件源有数据到来时,相应事件源的回调函数被触发(firePending -> ev->func())
2013-05-27
Android电话系统之GSMCallTracker
GSMCallTracker在本质上是一个Handler。
GSMCallTracker是Android的通话管理层。GSMCallTracker建立了ConnectionList来管理现行的通话连接,并向上层提供电话调用接口。
在 GSMCallTracker中维护着通话列表:connections。顺序记录了正连接上的通话,这些通话包 括:ACTIVE,DIALING,ALERTING,HOLDING,INCOMING,WAITING等状态的连接。GSMCallTracker将 这些连接分为了三类别进行管理:
RingingCall: INCOMING ,WAITING
ForegourndCall: ACTIVE, DIALING ,ALERTING
BackgroundCall: HOLDING
2013-05-27
android_通话处理流程
第一部分:从java端发送at命令的处理流程。
拨出电话流程:
1、contacts的androidmanifest.xml android:process="android.process.acore"说明此应用程序运行在acore进程中。
DialtactsActivity的intent-filter的action属性设置为main,catelog属性设置为launcher,所以此activity能出现
在主菜单中,并且是点击此应用程序的第一个界面。dialtactsactivity包含四个tab,分别由TwelveKeyDialer、
RecentCallsListActivity,两个activity-alias DialtactsContactsEntryActivity和DialtactsFavoritesEntryActivity分别
表示联系人和收藏tab,但是正真的联系人列表和收藏是由ContactsListActivity负责。
2、进入TwelveKeyDialer OnClick方法,按住的按钮id为: R.id.digits,执
placecall()
2013-05-27
Android_phone流程图
一.总览
1.phone应用主界面
2.拨出电话流程
3.接入电话流程
二.phone应用主界面
phone应用程序的主界面包括”phone”,”Call log“,“Contacts”,”Favorites”四个部分组成。
Phone:由12键的拨号盘组成。输入号码后单击电话图标按钮进行拨号
Call log:存放呼入和呼出的历史记录。
Contacts:存放电话联系人。
Favorites:存放常用的电话联系人。
2013-05-27
Android_中添加_AT_命令流程
本文假设读者已经了解RIL的基本知识
从上层出发,在
frameworks/base/telephony/java/com/android/internal/telephony/Phone.java中
添加所要发AT命令的上层函数。
2013-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人