自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 问答 (1)
  • 收藏
  • 关注

原创 我的2013这一年 -- 唯一关键词 变化

又一年,又一次年终总结,

2014-01-01 15:22:33 5234 6

原创 这些年一路相伴的书

从校园到职场书是看了不少也很杂,之前的2012年总结中提到了几本个人推荐的书,和那篇不一样的这次是以技术为主,参加活动呀,借用下链接 http://blog.csdn.net/blogdevteam/article/details/9819385,详情大家看链接了。 不说别的了,正文开始:1 C programme

2013-08-27 22:58:46 9084 6

原创 android -- 蓝牙 bluetooth (五)接电话与听音乐

前段时间似乎所有的事情都赶在一起,回家、集体出游、出差,折腾了近一个月,终于算暂时清静了,赶紧把蓝牙这一部分的文章了结下,按之前提到的目录,本文是关于蓝牙接打电话和听音乐的流程分析,对应蓝牙HFP/A2DP的profile,由于这部分也算是蓝牙的经典功能,所以代码流程并不是很复杂,当然不复杂仅是对于代码调用流程而言,对于HFP/A2DP协议相关的东东还没有精力去看,其难易程序也无法评价。下面从两个

2013-07-13 20:53:36 53073 28

原创 android -- 蓝牙 bluetooth (四)OPP文件传输

在前面android -- 蓝牙 bluetooth (一) 入门文章结尾中提到了会按四个方面来写这系列的文章,前面已写了蓝牙打开和蓝牙搜索,这次一起来看下蓝牙文件分享的流程,也就是蓝牙应用opp目录下的代码,作为蓝牙最基本的一个功能,这部分的代码在之前的版本中就已经有了,新旧版本代码对比很多类名都是一样的,这一部分新东西不多,写在这里帮助大家梳理下流程吧。        有没有这种感觉,

2013-06-22 21:51:51 47673 44

原创 博客文章目录整理

将之前写过和android相关blog整理出一个目录,数量虽然不是很多,不过有个目录找东西还是能更方便些。当然这个目录会随着博客内容更新而更新的,以往的内容主要涉及信息(mms)、电话(phone)、音乐(Music)、上网、STK和联系人(Contact),还有最近在看的蓝牙(Bluetooth)。除了目前在看的蓝牙是基于android 4.2版本,其它多数是基于android 2.3源码,偶尔

2013-05-31 22:03:48 5774 2

原创 android -- 蓝牙 bluetooth (三)搜索蓝牙

接上篇打开蓝牙继续,来一起看下蓝牙搜索的流程,触发蓝牙搜索的条件形式上有两种,一是在蓝牙设置界面开启蓝牙会直接开始搜索,另一个是先打开蓝牙开关在进入蓝牙设置界面也会触发搜索,也可能还有其它触发方式,但最后都要来到BluetoothSettngs.java的startScanning(),我们分析的起点也从这里开始,起步代码如下private void updateContent(int b

2013-05-31 22:03:05 28973 12

原创 android -- 蓝牙 bluetooth (二) 打开蓝牙

4.2的蓝牙打开流程这一部分还是有些变化的,从界面上看蓝牙开关就是设置settings里那个switch开关,widget开关当然也可以,起点不同而已,后续的流程是一样的。先来看systemServer.java的代码,蓝牙服务开启的地方,最后一个else分支是我们关心的,前两个是模拟器的一个测试模式的。 if (SystemProperties.get("ro.kernel.qemu")

2013-05-23 23:57:57 60283 32

原创 android -- 蓝牙 bluetooth (一) 入门

前段时间在 网上看了一些关于android蓝牙的文章,发现大部分是基于老版本(4.1以前含4.1)的源码,虽然无碍了解蓝牙的基本原理和工作流程,但对着4.2.2的代码看起来总是有些遗憾。所以针对4.2.2版本代码整理下相关知识,当然蓝牙工作的主干流程是没有变的,上电、加载驱动这些动作少不了的,只是这些功能的实现代码位置变了不少。希望本文可以让大家对android4.2的蓝牙部分代码有一个初步的了解

2013-05-19 21:44:40 69479 43

转载 你是想读书,还是想读完书?

从左岸转过来一篇文章,原文地址 http://www.zreading.cn/archives/3621.html,有趣的是原文前半部分最早出自豆瓣,后半部分出自知乎上一个问题精彩回答。一起来看看吧,至于标题的问题,看完你会有自己的答案。以下是左岸原文以前,读书前会很想读一本书,但实际读书时,经常是“想读完书”,而不是“想读书”。这种想法经常会让我的生活变得很痛苦,当你做一件事

2013-02-20 23:18:10 2460 2

原创 面试基础 -- 单例模式

设计模式相关知识在面试中经常被问到,其中的单例模式几乎是每次必问,同时还会要求手写单例模式的代码。至于为什么也不难理解,它的实现代码简短,用较短的时间就能完成,同时代码中也不乏一些细节可以考察面试者的基本功。简单啰嗦一下单例模式的基本知识,借用下网络搜索的结果:      概念上可理解成一个类只有一个实例,实现上是要注意以下三点:      单例模式的类只提供私有的构造函数,

2013-01-29 19:19:03 6544 1

原创 Android -- browser java 部分

本文主要对browser 的java部分代码一个简单说明,主线基本上围绕着第一次打开 browser加载网页的流程展开, 同时顺便提了下App层几个主要类的关系。以便大家可以更快了解 browser的上层代码,然后腾出时间去关注 webkit部分代码。webkit部分代码可非常多哦。首先根据logcat 的日志信息或 brower应用的Androidmanifest.xml, 打开browser

2013-01-08 21:15:54 9407

原创 迟到的2012总结 -- 选择、放弃和坚持

这个总结来得有点晚了,开始写的时候己经是2013年了,不过该做的事还是要做的。不知道什么原因,每当拼假想多休息一天的时候总会莫名奇妙来点小病,假期结束前病必好,真是的,这算是命运?开个玩笑,不过在2012年里确实如此。突然想到还在大学时候一次台湾知名公司(名字忘记是哪个了,华硕或台电)的联合创始人来学校演讲,有人问他成功的原因,答案很简练只有6个字:“时也、命也、运也”,也许只有经历过很多的事情之

2013-01-04 23:29:56 1935 1

原创 面试基础 -- 二分查找

2012年的最后一天,轻松一点,写个简单点的程序,同样也是面试与被面试经常考查的一个题,不要以为真的容易哦, 拒说有90 % 的程序员不能完全写对二分算法呢,好吧,这话可不是我说的,有兴趣的可以上网查查。主要还是细节问题,思路大家都知道,在这里就不重复了。看下面的代码吧。          1. 这个写得对吗,真的没问题吗?  public class BinaryQuery {

2012-12-31 14:58:23 2152

原创 关于sim/usim的一些概念

1 SIM卡存储数据类型:   (1)固化数据:SIM卡卡号、国际移动用户识别码(IMSI)、用户加密密钥(Ki)、加密算法(A3、A8)、个人解锁PUK码等。   (2)静态数据:用户接人等级、短消息中心(SMSC)号码、各类业务接人号等。   (3)动态数据:临时移动用户识别(TMSI)码、区域识别(LAI)码、密匙(Kc)、RAND、MS所处基站小区、PIN码和PUN码出错计数、

2012-12-29 22:34:12 16388

原创 android 联系人 --- 读取usim卡的邮箱

本文主要关于usim卡上邮箱地址分析实例的,同时也附带了一个联系人号码的例子,之前分别写过读取sim/usim卡上短信息和联系人信息的文章,偏向代码调用流程,这次把重点放在具体解析过程。本文可以结合下面的链接一起看。     1.android -- sim/usim卡导联系人      2.android 信息(mms)的故事(七)-- sim卡短信   3.关于sim/

2012-12-28 21:36:22 8256

原创 com.android.musicFx设置音效流程 -- 从app到AudioFlinger

本文主要内容如标题所示,主要描述下针对com.android.musicFx这个应用打开音效设置时的音效的函数调用流程。先简单说com.android.musicFx(后面简写成MusicFx)的相关知识,MusicFx第一次出现是在android2.3版本,默认入口在Music播放界面menu菜单,菜单里有一个音效选项拉起MusicFx应用,进入应用后界面比较简单,一个spinner和几个see

2012-12-28 21:24:22 16931 3

原创 android music源码学习

本文是在学习android music源码中所想到一些东东,一直在想对于muisc这个应用应该看点什么?下面只是个人的一点想法,但愿可以抛砖引玉,引起你一点思考。如果有写错的地方,欢迎拍砖!1.音乐播放器代码结构       Android源码的Music应用相关代码不算多,packages/apps/Music是关于UI界面的,\packages\providers\Me

2012-11-30 19:46:56 10764 2

原创 面试基础 -- 冒泡算法

一道很常见的面试题,很眼熟也很简单,  手写代码怎么样?  在面试略有压力的环境中,我们会发挥如何呢? 简单记录备忘而已,下面的代码都经过验证可运行的,以下均为java代码。        1. 下面这个是冒泡算法吗? 网上的答案好多都是这个呢。private void firstSort(int[] array) { for (int i = 0; i < array.length;

2012-11-28 21:48:37 1453 2

原创 android开发中代码片段集合 (二)

和上一篇一样,一些常用的功能代码。原本想写在一篇里面,突然发现有时文章太长,看久了也许就走神了,所以还是简洁点,每篇记录10个左右case,慢慢积累。1.精确区配联系人 11位 or 7位      android源码的号码匹配默认是从后向前匹配7位,这个可以应付大多数情况了,但是这东西放在天朝有时就不灵了,11位号码 13500000000和 00000000 android

2012-11-26 22:07:00 2298

原创 android开发中代码片段集合 (一)

本文中所提及的代码往往只有一行或短短几行就可能完成某种效果和功能,当我们不知道答案的时候,通常会花费了我们很多时间去google或baidu来寻找。这里对遇到的问题作个记录整理下,方便以后的查找,同时也希望能帮到你,当然更多的可能是你已经知道答案了,下面的对你来说 so easy 1.   如何设置通知栏下拉不可用        有时候在一个界面不想让通知栏下拉的消息就是这个代码了

2012-11-11 22:42:54 10724 3

原创 学习android的一点体会

以下只是个人在android学习工作过程中一点点体会,算不上所谓的方法准则,其中可能还有些老生常谈,仅供参考吧。如果我们要学习的是一个应用程序,下面提到一些信息和方式对我们是有帮助的1. AndroidManifest.xml       AndroidManifest.xml,对于应用程序,我们首先看这个文件是有必要,这里会告诉我们应用有哪些activity和service,哪个ac

2012-09-30 12:13:38 2897

原创 android -- Contacts 保存联系人

前些日子出于帮忙完成一个小小的需求,折腾下android 4.0 Contact的代码,正好也了解下Contact的业务流程。主要是联系人的增删改查,很眼熟是不,应用大部分的任务都是围绕怎么获取数据获取、如何显示数据和保存修改数据进行的,联系人也不例外,而且把握数据的流向变化也算是分析应用的一个途径吧,同时数据的变化也在一点程度上表现了业务的流程。其实联系人并不是复杂只是作为一个手机的核心级应用(

2012-09-25 22:28:02 10476 1

原创 android -- phone(五)相关的功能

这是一篇关于phone的杂文,主要涉及了和phone相关的一些周边功能,内容比较琐碎,所以也就不像之前文章有明确的主线(比如前面关于phone的来电,去电流程)可依循,估计看起来会比较凌乱,请见谅,我会尽量区分不同的小节内容。1. 关于来电防火墙或黑名单       这个功能好像需求还挺大的,至于实现原理无非是根据号码在数据库中查找有无匹配的号码,如果是黑名单中的号码,则挂断该号码的来

2012-09-24 22:48:02 2374

原创 android -- phone (四) 其实我只想加个接口

关于这篇文章的名字实在不知道应该怎么写了,标题先用这个代理下。需求本身是这样的:应用层需要一个参数, 这个参数是已经通过某些命令与通信模块交互后得到,但android源码本身并没有相应的方法让应用层直接调用,所以要加个接口(这里接口的含义比较广泛)出来方便上层调用。所涉及的代码主要是在phone相关的代码中。具体点说就是通过RIL获取数据,再把RIL得到的数据通过我们添加的方法传给应用层或让应用层

2012-09-12 22:07:48 4729

原创 android -- phone (三)来电流程

上一篇是去电流程,接下来自然是来电流程,按消息的接收顺序,我们关心来电消息最开始是从哪来的,所以先RIL层开始,这里如果有涉及AT命令,均以android源码所使用的AT命令为准(即 3gpp 27.007文档中AT命令)。首先在RIL会先出现类似下面的消息                      同时也向RIL.java上报UNSOL_RESPONSE_CALL_STATE_C

2012-08-19 21:53:19 6546 6

原创 android -- phone (二) 去电流程

这篇是关于外拨电话的具体流程,也就是去电流程,虽然网上的资料很多(重复的也很多),但作为电话的主要操作之一,为了保证phone系列的完整性,还是要把它写一下的。开始看代码。TwelveKeyDialer.java,既然要打电话,总要先输入号码才拨出,这个类就是拨号盘的界面,只是这个phone用到的类却是放在com.android.contacts包下,应该是出于代码结构的考虑吧。毕竟联系人、拨

2012-08-19 21:39:39 5391

原创 android -- phone (一)--概述

看到标题里的-电话(phone)你会想到什么,估计第一反应是打电话和接电话吧,分别对应着去电和来电,这种想法很正常,手机最基本的功能就是用来接打电话的,只是现在的手机更多的担负了休闲娱乐的任务。突然想起来刚入职时的一个故事,通信组的老大在开会时宣布:以后我们的电话模块对外要叫phone模块,免得其他组同事认为电话的工作只是负责接打电话,phone非常重要….. 误会呀!老大说得没错。好吧,后面我们

2012-08-13 20:32:28 5632 3

原创 android -- sim/usim卡导联系人

前面有一篇说了导卡上的信息(android 信息(mms)的故事(七)-- sim卡短信),sim卡上还有一类非常重要的信息,就是卡上的联系人。不知道大家注意到没有,android手机,尤其是那些带有运营商标识的手机开机都比较慢,这个和开机导卡上的联系人和信息不无关系,运营商是要求开机必须导卡的,不过要说句公道话,开机慢和导卡有关但也不能完全归咎于它(android手机启动时加载的东西本身也很

2012-08-01 20:58:14 12119 4

原创 android -- STK

SIM卡应用开发工具箱(STK)亦称SIM卡应用程序开发包,估计大家对它最直观的印象就是插入sim卡或usim卡开机时,会出现中国移动动感地带,神州行,中国联通这一类的提示信息,展示的方式可能字符串或一个对话框,这个就是STK的功劳了。简单说明一下,STK是sim/usim卡上的程序,含有STK功能的sim卡/usim卡就是一个单片机。在android手机上,在众多图标中会有一个sim卡应用图标,

2012-07-31 21:27:40 9256 2

原创 android 通信开发要用的文档

前面的文章多次提到了3gpp文档或OMA文档,如关于sim卡 3gpp 11.14、3gpp 23040 -910和WAP-205-MMSArchOverview-20010425-a等。作为通信的开发人员,不可避免的要和这些东东打交道,这里做个整理对用到的文档给出简要说明,也方便网友们查找。     3gpp:     1. TS 27.007      AT command set f

2012-07-30 23:58:21 3503 1

原创 android 上网 (三)-- 数据开关变化和应用主动拨号

这篇给出是数据开关状态变化引起网络状态的改变的代码流程,数据开关是指设置  -->无线网络设置 -->移动设置 -->是否启用数据的那个选项,选中表示启用,当然不同手机的中文翻译可能不同,不过不影响理解。先贴张图,图中就是设置数据开关所走的代码流程了。          这张图并不是完整的,其实在上图最后的 MobileDataStateTracker.java的reconnect()

2012-07-23 21:43:41 6203 3

原创 android 信息(mms)的故事(八)-- 彩信的解析

前面的文章(故事六)说过收彩信是先收彩信通知,再根据彩信通知里的地址去下载彩信,所以按这个流程彩信可以说要解析两次,第一次解到通知,第二次解到真正的彩信内容,本文要讲述是第二次解析--解析彩信正文,先贴张图见识下我们要解析的东东是个什么样子,见下图,初次见面和看天书差不了多少。     这个就是我们要面对的数据了,至于怎么拿到这些数据,方法很多,话说不是可以抓网络数据包吗,把完整的网络

2012-06-30 21:51:17 5788 8

原创 android 信息(mms)的故事(七)-- sim卡短信

这篇关于android源码是如何操作sim卡上的信息说明,sim\usim卡的信息说起来这算是比较特别的一部分,由于android源码的信息是没有开机自动导卡信息和联系人的,所以有时会忘掉它的存在应该说关于卡信息操作源码只是实现大部分功能:可以读和删除卡上信息,把信息复制到手机上,但是不能把信息写入卡,这个功能是要我们自己实现的,当然仅仅是实现就好了,毕竟基本的框架google已经写好了。先看看已

2012-06-24 21:44:35 6872

原创 android 信息(mms)的故事(六)-- 收信息

发送过程是分短信和彩信写的,接收过程就写到一起了。至于原因还是从收彩信的流程说起,收彩信时要先收彩信通知,然后再根据通知里的地址再去获取彩信内容,而彩信通知是通过RIL传过来的,其实彩信通知就是一条短信,特别之处这个短信是带端口的。所以收短信和收彩信在最开始时候走的代码是一样的,还是开始看代码吧,        从RIL.java开始,收到从模块报上来的消息,这里还不知道是短信还是彩信,new

2012-06-11 23:15:53 3879 1

原创 android 信息(mms)的故事(五)-- 发彩信

发彩信和发短信一样,在ComposeMessageActivity.java界面都是从onclick()、sendMessage()开始,同样的发送前检查收件人是否有效,和短信不一样的是发彩信的时候邮件地址也是可以做为收件人的,接下来也是WorkingMessage.java的send()方法。         if (requiresMms() || addressContainsEmail

2012-06-07 22:02:38 6582 7

原创 android 信息(mms)的故事(四) -- sms解码的实例

这是独立的一节,关于短信sms解码的一些实际例子,包括收到的短信、发送的短信和短信的状态,网络上的例子比较分散,整理在此以备查找。同时关于短信编解码的官方文档当然是 3gpp的相关文档了,关于短信请参考3gpp 23.040这个文档。1. ---有短信中心号发送0891683108705505F0040d91685111975441f900001170726141052305467

2012-05-30 22:16:49 3136

原创 android 信息(mms)的故事(三) -- 发短信

当你在编辑界面ComposeMessageActivity.java按下发送按钮的那一刻,就开始信息的发送之路。当然发短信和发彩信并不完全一样,会用两篇文章别说明,不过最后的图是画在一起的。       从ComposeMessageActivity.java的onclick()开始,在这里对联系人的个数是有个判断的,这个函数 isPreparedForSending(),这个判断之后会通过c

2012-05-29 23:16:58 6286 4

原创 android 上网 (二)-- apn切换拨号

接上篇,这个是从RIL返回后的代码流程,两张图和在一起是完整apn切换拨号的流程。如果是主动拨号或开启数据开关的拨号核心流程差不多,只是开始的代码有些区别,这两种会在后面文章里贴出。

2012-05-21 22:10:59 3224 1

原创 android 上网 (一)-- apn切换拨号

android的上网总体上分两种,一种是切换apn或启用数据开关导致网络连接,另一种应用程序主动拨号如彩信。这里要给出的流程是第一种,没有过多的说明,直接出图。图中代码参考android2.3代码,每个方框内有类名,方法和关键TAG,不过这个图没有画完,画图软件一页画不下了只好分开。下图主要说明当手动切换apn时,上网拨号的流程是怎么跑的,从framework到ril再回来,对于回来以后的流程还没

2012-05-20 21:12:35 5022

原创 android 信息(mms)的故事(二) -- 存储

关于android存储的有三种方式: SharePrference、文件系统和 数据库,这些信息里都用到了,数据库provider存储短信和彩信的基本信息,SharePrference存储关于信息设置的数据,而彩信中每一个媒体文件则是通过文件保存的。        信息的数据库位置 : data/data/com.android.provider.telephonymmssms.db,

2012-05-17 22:18:58 5519 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除