SubscriptionInfo框架解析
本章讨论所涉及到的类
vendor\qcom\proprietary\telephony-fwk\opt\telephony\src\java\com\qti\internal\telephony\UiccCardProvisioner.java
vendor\qcom\proprietary\telephony-fwk\opt\telephony\src\java\com\qti\in
Android M CarrierService框架
本章讨论的所涉及到的文件如下:
packages\apps\CarrierConfig\src\com\android\carrierconfig\DefaultCarrierConfigService.java
frameworks\base\core\java\android\service\carrier\CarrierService.java
frameworks\base\core
SubscriptionInfoUpdater监听卡状态广播的处理
SubscriptionInfoUpdater里面有监听卡状态广播,卡状态广播都是从IccCardProxy中发送的sticky广播。其中ACTION_INTERNAL_SIM_STATE_CHANGED是Android M上新增的用来处理sim locked和sim loaded事件,经过SubscriptionInfoUpdater处理之后才会向外发送ACTION_SIM_STATE_CHAN
SubscriptionInfoUpdater.updateCarrierServices解析
SubscriptionInfoUpdater.updateCarrierServices在卡状态变化之后都会调用。主要是触发系统中运营商相关的配置信息。
private void updateCarrierServices(int slotId, String simState){
CarrierConfigManager configManager = (Carrie
从Phone框架开始学Android框架
出来工作一年了,从事的是Android手机通讯框架的代码的维护与开发。这块代码进过多次修改已经比较成熟,但是涉及到的内容比较多,很多东西不形成一个体系,梳理出一个脉络,很难对他有一个很深的理解,因此我结合工作一年来首先从phone框架的业务出发,学习Android框架的一些知识,并且分析其中遇到的一些问题。下面是我列出的一些提纲,是现在负责和接触到的模块。本系列涉及的代码是高通平台上Android
CatService框架
这块代码分为三层,framework - service - activity,整体写的比较乱,细节处理可能会有问题,可能用的人比较少,所以比较少关注。
CatService监听的其实没有用处的代码
mUiccApplication.registerForReady(this, MSG_ID_SIM_READY, null);
mIccRecords.register
ContentService注册和更新机制
ContentService完成数据内容注册和更新的机制。在N平台上SystemServer通过SystemServiceManager.startService的方式拉起ContentService,并且注册到ServiceManager中。
从图中可以看出ContentService完成注册和更新机制的原理:当客户端注册的时候会将ContentObserver注册到ContentServi
Telephony-Uicc双卡管理
这个部分原稿来自于Android6.0的phone应用源码分析(9)——UICC卡管理
主要讲述双卡中卡信息保存和加载,包括UiccController,UiccCard、SimRecords等双卡相关的信息。
android OpenGL es图书和学习资料
官网 https://www.khronos.org/opengles/
android API指南 OpenGL ES
https://developer.android.com/guide/topics/graphics/opengl.html
官网
android
培训Displaying Graphics with OpenGL ES
https://de
Dialog ParentWindow android.view.WindowManager$BadTokenException源码剖析
08-07 21:26:43.506: ERROR/AndroidRuntime(9390): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
产生问题原因解析:使用getApplicationContext()里面的是不包含t
android重复按键与onKeyLongPress长按事件触发
参考 深入理解Android卷三 - 深入理解Android输入系统
重复按键的产生:在用户持续按下一个按键到抬起之间,应用程序能够收到多个onKeyDown时间,并且getReaptCount的返回值会不断累加,并且当且仅当第二次调用KeyEvent.isLongPress返回true。z这个工作是InputDispatcher来完成。
虽然有些按键输入设备支持按键重复按下事件的回报工作(如
Activity相关点
关于android知识,看了一些源码,过久了就会忘了,还是需要及时总结,方便以后查阅。基础知识1 一般生命周期以及转换,以官方图为例2 源码剖析涉及到进程、关键类3 源码过程中的关键点简要流程第一步查找intent对应的activity,拿到packagemanager中保存的activityinfo,第二步转换成ActivityManagerService中的activityrecord第三步找...
android生命周期总结
关于activity生命周期转换记住一点同时只有一个activity处于onResume状态,可能有多个activity处于onstop状态,因为在activitymanagerservice中有一个成员mResumeActivity,而且只有前一个activity执行onPause之后,下一个activity的onResume流程才会执行1 几个生命周期的特点onCreate和onDestroy...
Delphi中打开网页连接的几种方法
https://blog.csdn.net/zisongjia/article/details/69398143 正好要用,做个记录。Mark下。 使用了第一种 uses shellapi
procedure TForm1.Button2Click(Sender: TObject);
begin
ShellExecut(Application.Handle, nil, 'http://www.sharejs.com', nil, nil, SW_SHOWNORMAL);
end;
linux下NVIDIA GPU驱动安装最简方式
之前一节已经写到了,上次的GPU driver驱动安装并不成功,因此,这次换了一种方式,比较傻瓜,但是很好使。 首先使用命令查看显示器的设备(请将显示器插在显卡上,如果插在集显上可能信息不正常) sudo lshw -numeric -C display 可以发现是GT216 GeForce GT220系列的,其实使用lspci | grep VGA的效果一样 然后可以使用命令查看Ubuntu推荐的驱动版本,进行安装 ubuntu-drivers devices 我这里推荐的是nvidia-3
Mysql笔试题(转载)
Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 是 否 否 Sex 性别 VARCHAR(4) 否 否 否 否 否 Birth 出生年份 YEAR 否 否 否 否 否 Department 院系 VARCHAR(20) 否 否 是 否 否 Address 家庭住址 VARCHAR(50) 否 否 否 否 否 Score表的定义 字段名 字段描述 数据类型 主键 外键
EasyUi的使用方法
EasyUi 我们可以在easyui的官网下载它,下载完成后,将文件导入项目,我么需要引入五个重要的文件 <!--EasyUI的核心样式-->
<link rel="stylesheet" type="text/css" href="js/easyui/themes/default/easyui.css" />
<!--EasyUI的图标样式-->
<link rel="stylesheet" type="text/css" href="j
周排行