
Android的原生应用分析
文章平均质量分 82
balmy
这个作者很懒,什么都没留下…
展开
-
Android -- browser java 部分
本文主要对browser 的java部分代码一个简单说明,主线基本上围绕着第一次打开 browser加载网页的流程展开, 同时顺便提了下App层几个主要类的关系。以便大家可以更快了解 browser的上层代码,然后腾出时间去关注 webkit部分代码。webkit部分代码可非常多哦。首先根据logcat 的日志信息或 brower应用的Androidmanifest.xml, 打开browser原创 2013-01-08 21:15:54 · 9509 阅读 · 0 评论 -
android -- 蓝牙 bluetooth (三)搜索蓝牙
接上篇打开蓝牙继续,来一起看下蓝牙搜索的流程,触发蓝牙搜索的条件形式上有两种,一是在蓝牙设置界面开启蓝牙会直接开始搜索,另一个是先打开蓝牙开关在进入蓝牙设置界面也会触发搜索,也可能还有其它触发方式,但最后都要来到BluetoothSettngs.java的startScanning(),我们分析的起点也从这里开始,起步代码如下private void updateContent(int b原创 2013-05-31 22:03:05 · 29184 阅读 · 12 评论 -
android -- 蓝牙 bluetooth (四)OPP文件传输
在前面android -- 蓝牙 bluetooth (一) 入门文章结尾中提到了会按四个方面来写这系列的文章,前面已写了蓝牙打开和蓝牙搜索,这次一起来看下蓝牙文件分享的流程,也就是蓝牙应用opp目录下的代码,作为蓝牙最基本的一个功能,这部分的代码在之前的版本中就已经有了,新旧版本代码对比很多类名都是一样的,这一部分新东西不多,写在这里帮助大家梳理下流程吧。 有没有这种感觉,原创 2013-06-22 21:51:51 · 48210 阅读 · 44 评论 -
博客文章目录整理
将之前写过和android相关blog整理出一个目录,数量虽然不是很多,不过有个目录找东西还是能更方便些。当然这个目录会随着博客内容更新而更新的,以往的内容主要涉及信息(mms)、电话(phone)、音乐(Music)、上网、STK和联系人(Contact),还有最近在看的蓝牙(Bluetooth)。除了目前在看的蓝牙是基于android 4.2版本,其它多数是基于android 2.3源码,偶尔原创 2013-05-31 22:03:48 · 5860 阅读 · 2 评论 -
android -- 蓝牙 bluetooth (五)接电话与听音乐
前段时间似乎所有的事情都赶在一起,回家、集体出游、出差,折腾了近一个月,终于算暂时清静了,赶紧把蓝牙这一部分的文章了结下,按之前提到的目录,本文是关于蓝牙接打电话和听音乐的流程分析,对应蓝牙HFP/A2DP的profile,由于这部分也算是蓝牙的经典功能,所以代码流程并不是很复杂,当然不复杂仅是对于代码调用流程而言,对于HFP/A2DP协议相关的东东还没有精力去看,其难易程序也无法评价。下面从两个原创 2013-07-13 20:53:36 · 54097 阅读 · 28 评论 -
面试基础 -- 冒泡算法
一道很常见的面试题,很眼熟也很简单, 手写代码怎么样? 在面试略有压力的环境中,我们会发挥如何呢? 简单记录备忘而已,下面的代码都经过验证可运行的,以下均为java代码。 1. 下面这个是冒泡算法吗? 网上的答案好多都是这个呢。private void firstSort(int[] array) { for (int i = 0; i < array.length;原创 2012-11-28 21:48:37 · 1484 阅读 · 2 评论 -
关于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 · 16765 阅读 · 0 评论 -
android 信息(mms)的故事(三) -- 发短信
当你在编辑界面ComposeMessageActivity.java按下发送按钮的那一刻,就开始信息的发送之路。当然发短信和发彩信并不完全一样,会用两篇文章别说明,不过最后的图是画在一起的。 从ComposeMessageActivity.java的onclick()开始,在这里对联系人的个数是有个判断的,这个函数 isPreparedForSending(),这个判断之后会通过c原创 2012-05-29 23:16:58 · 6372 阅读 · 4 评论 -
android 上网 (一)-- apn切换拨号
android的上网总体上分两种,一种是切换apn或启用数据开关导致网络连接,另一种应用程序主动拨号如彩信。这里要给出的流程是第一种,没有过多的说明,直接出图。图中代码参考android2.3代码,每个方框内有类名,方法和关键TAG,不过这个图没有画完,画图软件一页画不下了只好分开。下图主要说明当手动切换apn时,上网拨号的流程是怎么跑的,从framework到ril再回来,对于回来以后的流程还没原创 2012-05-20 21:12:35 · 5187 阅读 · 0 评论 -
android -- 蓝牙 bluetooth (一) 入门
前段时间在 网上看了一些关于android蓝牙的文章,发现大部分是基于老版本(4.1以前含4.1)的源码,虽然无碍了解蓝牙的基本原理和工作流程,但对着4.2.2的代码看起来总是有些遗憾。所以针对4.2.2版本代码整理下相关知识,当然蓝牙工作的主干流程是没有变的,上电、加载驱动这些动作少不了的,只是这些功能的实现代码位置变了不少。希望本文可以让大家对android4.2的蓝牙部分代码有一个初步的了解原创 2013-05-19 21:44:40 · 69817 阅读 · 43 评论 -
android -- 蓝牙 bluetooth (二) 打开蓝牙
4.2的蓝牙打开流程这一部分还是有些变化的,从界面上看蓝牙开关就是设置settings里那个switch开关,widget开关当然也可以,起点不同而已,后续的流程是一样的。先来看systemServer.java的代码,蓝牙服务开启的地方,最后一个else分支是我们关心的,前两个是模拟器的一个测试模式的。 if (SystemProperties.get("ro.kernel.qemu")原创 2013-05-23 23:57:57 · 60678 阅读 · 32 评论 -
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 · 17377 阅读 · 3 评论 -
android music源码学习
本文是在学习android music源码中所想到一些东东,一直在想对于muisc这个应用应该看点什么?下面只是个人的一点想法,但愿可以抛砖引玉,引起你一点思考。如果有写错的地方,欢迎拍砖!1.音乐播放器代码结构 Android源码的Music应用相关代码不算多,packages/apps/Music是关于UI界面的,\packages\providers\Me原创 2012-11-30 19:46:56 · 11056 阅读 · 2 评论 -
android -- sim/usim卡导联系人
前面有一篇说了导卡上的信息(android 信息(mms)的故事(七)-- sim卡短信),sim卡上还有一类非常重要的信息,就是卡上的联系人。不知道大家注意到没有,android手机,尤其是那些带有运营商标识的手机开机都比较慢,这个和开机导卡上的联系人和信息不无关系,运营商是要求开机必须导卡的,不过要说句公道话,开机慢和导卡有关但也不能完全归咎于它(android手机启动时加载的东西本身也很原创 2012-08-01 20:58:14 · 12335 阅读 · 4 评论 -
android -- phone (一)--概述
看到标题里的-电话(phone)你会想到什么,估计第一反应是打电话和接电话吧,分别对应着去电和来电,这种想法很正常,手机最基本的功能就是用来接打电话的,只是现在的手机更多的担负了休闲娱乐的任务。突然想起来刚入职时的一个故事,通信组的老大在开会时宣布:以后我们的电话模块对外要叫phone模块,免得其他组同事认为电话的工作只是负责接打电话,phone非常重要….. 误会呀!老大说得没错。好吧,后面我们原创 2012-08-13 20:32:28 · 5804 阅读 · 3 评论 -
android -- phone (三)来电流程
上一篇是去电流程,接下来自然是来电流程,按消息的接收顺序,我们关心来电消息最开始是从哪来的,所以先RIL层开始,这里如果有涉及AT命令,均以android源码所使用的AT命令为准(即 3gpp 27.007文档中AT命令)。首先在RIL会先出现类似下面的消息 同时也向RIL.java上报UNSOL_RESPONSE_CALL_STATE_C原创 2012-08-19 21:53:19 · 6633 阅读 · 6 评论 -
android -- phone (四) 其实我只想加个接口
关于这篇文章的名字实在不知道应该怎么写了,标题先用这个代理下。需求本身是这样的:应用层需要一个参数, 这个参数是已经通过某些命令与通信模块交互后得到,但android源码本身并没有相应的方法让应用层直接调用,所以要加个接口(这里接口的含义比较广泛)出来方便上层调用。所涉及的代码主要是在phone相关的代码中。具体点说就是通过RIL获取数据,再把RIL得到的数据通过我们添加的方法传给应用层或让应用层原创 2012-09-12 22:07:48 · 4791 阅读 · 0 评论 -
android -- Contacts 保存联系人
前些日子出于帮忙完成一个小小的需求,折腾下android 4.0 Contact的代码,正好也了解下Contact的业务流程。主要是联系人的增删改查,很眼熟是不,应用大部分的任务都是围绕怎么获取数据获取、如何显示数据和保存修改数据进行的,联系人也不例外,而且把握数据的流向变化也算是分析应用的一个途径吧,同时数据的变化也在一点程度上表现了业务的流程。其实联系人并不是复杂只是作为一个手机的核心级应用(原创 2012-09-25 22:28:02 · 10675 阅读 · 1 评论 -
android 信息(mms)的故事(五)-- 发彩信
发彩信和发短信一样,在ComposeMessageActivity.java界面都是从onclick()、sendMessage()开始,同样的发送前检查收件人是否有效,和短信不一样的是发彩信的时候邮件地址也是可以做为收件人的,接下来也是WorkingMessage.java的send()方法。 if (requiresMms() || addressContainsEmail原创 2012-06-07 22:02:38 · 6680 阅读 · 7 评论 -
android 信息(mms)的故事(四) -- sms解码的实例
这是独立的一节,关于短信sms解码的一些实际例子,包括收到的短信、发送的短信和短信的状态,网络上的例子比较分散,整理在此以备查找。同时关于短信编解码的官方文档当然是 3gpp的相关文档了,关于短信请参考3gpp 23.040这个文档。1. ---有短信中心号发送0891683108705505F0040d91685111975441f900001170726141052305467原创 2012-05-30 22:16:49 · 3220 阅读 · 0 评论 -
android 信息(mms)的故事(二) -- 存储
关于android存储的有三种方式: SharePrference、文件系统和 数据库,这些信息里都用到了,数据库provider存储短信和彩信的基本信息,SharePrference存储关于信息设置的数据,而彩信中每一个媒体文件则是通过文件保存的。 信息的数据库位置 : data/data/com.android.provider.telephonymmssms.db,原创 2012-05-17 22:18:58 · 5637 阅读 · 1 评论