Telephony源码分析
文章平均质量分 92
基于Android O版本的Telephony源码分析
Decade_try
不必执着于你想要的,你所需要的是不断提升自己。
展开
-
Android 8.0来电流程分析(一)
来电时底层会上报消息到RIL层,在Android8.0上目前已经做了修改,不再使用Socket进行通信,而是使用ril_service服务进行通信,O的系统上引入了HIDL机制,telephony的framework层引用底层的服务就用到了此机制,这也导致了RIL层的调整,本篇博客在7.0的基础上进一步分析其变化,建议同步对照7.0和8.0的代码阅读。 1.我们从RIL层开始往上追溯,RIL接收原创 2018-01-21 11:19:10 · 11708 阅读 · 2 评论 -
Android 8.0来电流程分析(二)
Telephony-Service1.上篇分析到PstnIncommingCallNotifier 中handleMessage处理来电消息,继续跟进分析 switch (msg.what) { case EVENT_NEW_RINGING_CONNECTION: handleNewRingi原创 2018-02-07 17:39:06 · 4343 阅读 · 1 评论 -
Android 8.0来电流程分析(三)
Telecomm Service 这里我们可以看出CallsManager的管理作用,创建Calls并添加监听,在完成Call的相关初始化后进行进一步处理,其实就是传递消息到别的的地方去。 1.那么继续到CallsManager中跟进 @Override public void onSuccessfulIncomingCall(Call incomingCall) { ...原创 2018-02-08 15:34:11 · 5519 阅读 · 2 评论 -
Android7.0去电流程源码分析(一)
2.去电从拨号盘界面有关拨号的部分由DialpadFragment.java实现,无论是单卡还是双卡,当点击拨号按键时,最后都会调用handleDialButtonPressed方法进行处理,DialogFragmentCall_Action的活动Call_Action的活动 private void handleDialButtonPressed() { if (isDig原创 2017-12-20 22:51:00 · 2348 阅读 · 2 评论 -
Android7.0去电流程源码分析(二)
上篇博客分析到调用broadcastIntent,这里接着分析 1.接着查看NewOutgoingCallIntentBroadcaster.java文件中的broadcastIntent方法: private void broadcastIntent( Intent originalCallIntent, String number,原创 2017-12-21 22:48:08 · 1127 阅读 · 0 评论 -
Android7.0去电流程源码分析(三)
上篇博客分析到调用ServiceConnection,这里接着分析 1.ServiceConnection.java类中实现了该远程服务 private final IBinder mBinder = new IConnectionService.Stub() 并重写了其接口,这里我们主要关注 @Override public void createCo原创 2018-01-17 22:01:43 · 1699 阅读 · 0 评论 -
Android 8.0 Phone对象解析
Phone的追溯 在Android中我们可以查看后台的进程,会发现存在常驻phone进程。进程名一般是该app的包名,搜索package=”com.android.phone” 在/packages/services/Telephony/AndroidManifest.xml发现如下定义"http://schemas.android.com/apk/res/android"原创 2018-01-24 20:26:05 · 3164 阅读 · 1 评论 -
Android 8.0本地挂断电话流程分析
1.InCallFragment显示来电界面,跟踪 挂断电话按钮事件 @Override public void onClick(View view) { if (view == endCallButton) { LogUtil.i("InCallFragment.onClick", "end call button clicked"); inCal原创 2018-02-02 11:15:03 · 3694 阅读 · 0 评论 -
Andrdoid HIDL简介
全称: Hardware Interface Definition Language 目的: 使 Android 可以在不重新编译 HAL 的情况下对 Framework 进行 OTA 升级。 基本用法package android.hardware.audio@2.0; // 当前package包名import android.hardware.audio.common@2原创 2018-02-06 20:32:54 · 2598 阅读 · 0 评论 -
Android Telephony主要模块及功能
Telephony的代码主要由五个模块组成 1.Telephony Frameworks 代码区域: frameworks/opt/telephony/其中主要的文件在如下目录 /frameworks/opt/telephony/src/java/com/android/internal/telephony/ 其中比较常见的有以下几类文件 1.BaseCommands、RIL构成R原创 2018-02-06 22:03:05 · 7296 阅读 · 2 评论 -
Android 8.0 RIL框架分析
前言Android O的版本对RIL的框架的通信功能进行了改动,不在使用sockect进行通讯,而改用HIDL进行通信,这里结合7.0和8.0的源码,分析目前的RIL框架,如有错误还请不吝指正。RIL的入口xref: /hardware/ril/rild/rild.cint main(int argc, char **argv) { //设置服务名,在7.0上是设置...原创 2018-02-23 20:35:09 · 8868 阅读 · 0 评论 -
Android 8.0 RIL源码分析(一)
1.去电流程三中跟踪到最后的时候可以看到其调用了RIL的dail方法 这里继续以此分析其从RIL到Modem的流程 @Override public void dial(String address, int clirMode, UUSInfo uusInfo, Message result) { //获取radio对象 IRadio radioP...原创 2018-02-28 16:14:08 · 5240 阅读 · 1 评论 -
Android 8.0 RIL源码分析(二)
非URC消息处理 之前分析到在at_send_command_full_nolock调用后会先发送消息给modem,然后阻塞当前线程等待modem返回消息。因此也是在readerLoop的消息处理中去唤醒阻塞的线程,而且应该把数据直接返回给阻塞的线程,如之前ndroid 8.0 RIL框架分析,非URC消息会调用processLine方法。1.这里跟进到processLine方法...原创 2018-02-28 16:39:17 · 3315 阅读 · 0 评论 -
Android O版本Call对象解析
在Android8.0中的Call.java有三个地方frameworks\opt\telephony\src\java\com\android\internal\telephonytelephoney frameworks frameworks\base\telecomm\java\android\telecomtelecomm frameworkspackages\serv...原创 2018-03-05 20:26:04 · 3022 阅读 · 0 评论