自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dylan_Sen的博客

人生太闲,则别念窃生!

  • 博客(32)
  • 收藏
  • 关注

原创 外企工资条目

外企工资条缩写

2022-03-24 10:28:15 1180

原创 Android assistant

Codeframeworks/base/core/java/android/speech/frameworks/base/core/java/android/speech/tts/frameworks/base/core/java/android/service/voice/frameworks/base/services/voiceinteraction/Test codeframeworks/base/tests/SoundTriggerTestAppframeworks/base/

2021-09-26 16:23:49 1863

原创 Ubuntu 搭建OpenGrok

Setup OpenGrok:download the latest version from OpenGrokmkdir opengrokmkdir opengrok/{src,data,dist,etc,log}tar -C opengrok/dist --strip-components=1 -xzf opengrok-X.Y.Z.tar.gz cp /opengrok/dist/doc/logging.properties /opengrok/etc将code放到"opengr

2021-04-20 15:44:54 447

原创 Android Memory management

https://developer.android.com/topic/performance/memory-overviewAndroid Runtime(ART)和Dalvik使用页(paging)和内存(memory-mapping)映射来管理内存。一个app修改过的内存,只能通过释放对象引用的方式让garbage collector回收;唯一的例外是映射的文件如果没有被修改过,那么系...

2020-09-15 19:50:20 460

原创 剖析ContentProvider的query操作

年终(农历年)的一篇任务文档。本篇剖析ContentProvider的query操作,包括了以下内容:获取ContentProvider对象Server端的Cursor对象Client端的Cursor对象CursorWindow1. 获取ContentProvider对象通常,我们会使用下面的方式使用ContentProvider获取数据:mContext.getConten...

2020-01-20 14:06:53 1609

原创 逻辑思维--笔记

五种思维模式MECE/逻辑树矩阵图流程图关系图假说检验MECE–Mutually Exclusive, Collectively Exhaustive 相互独立,完全穷尽想要按逻辑思维得出高精度的结论,就必须着重检查是否有重要因素被遗漏,以及是否存在相同因素的重复。尤其“遗漏”的存在会大幅削弱说服力和解决问题的效果。例子:逻辑树实例:矩阵图矩阵图分为两类:表格型...

2019-12-19 22:17:28 1647

原创 设计模式小结

面临的问题:1.交互对象之间的耦合为后续的维护和扩展带来了不便2.代码复用OO基础:抽象封装多态继承OO原则:将变化分离出来,封装变化多用组合(Has-a),少用继承(Is-a)针对接口编程,不针对实现编程减少交互对象之间的耦合把"行为"想成&

2019-09-21 15:10:18 345 1

原创 ContactsProvider2

Android的数据库体系可以分为三个层次:ContentProvider层;ContentProvider将对数据的增删改查操作进行了抽象,具体实例会注册到AMS中,提供跨进程的服务。ContentProvider可以用于管理各种数据存储源的访问,包括结构化数据(SQLite)和非结构化数据(如图像文件)。SQLiteDatabase/SQLiteOpenHelper;这部分代码位于“/f...

2019-09-13 13:52:44 1117

原创 Service

Service主要在后台执行耗时操作,或者为其他进程提供服务。Service运行在主线程之中,如果要执行耗时操作,还得创建一个线程; 所以如果单单是为了将耗时操作挪出主线程,可以创建线程,如果是想用户不再和app交互时仍可在后台运行可以创建service。1. Service可以分为三类Foreground 前台service是指那些执行可以被用户觉察到操作的service;前台ser...

2019-03-29 23:20:52 404

原创 Protocol buffer

C++、C#、Dart、Go、Java和Python都可以使用Protocol buffer language。https://developers.google.com/protocol-buffers/docs/protohttps://developers.google.com/protocol-buffers/docs/javatutorial为什么要使用Protocol buffe...

2019-01-09 11:24:35 305

原创 Input event -- InputManagerServie

SystemServer启动的时候会在startOtherServices方法中创建InputManagerService对象,并以InputManagerService对象为参数调用main@WindowManagerService方法; 另外还会调用addService@ServiceManager方法将这个对象作为“input”系统服务的server端。main@WindowManager...

2018-11-27 13:59:28 487

原创 Input event --- View hierarchy

输入事件派发第二篇!输入事件在View hierarchy中的派发。

2018-11-27 13:54:17 314

原创 Java language specification 9 笔记

Java编程语言是强类型的,静态类型的语言; 每个变量或表达式都要在编译时有一个已知的类型。类型限制了变量所能代表的值,限制了表达式所能产生的值,限制了值所能支持的操作,也决定了操作的意义。强类型,静态类型有助于在编译时帮忙检测错误。Compile time:将程序转化为独立于机器的二进制码。 Rum time:包括加载、链接程序执行需要的类,生成机器语言(可选),程序的动态优化以及执行程序...

2018-09-27 14:39:58 692

原创 Activity

Activity就是界面,用来和用户交互。 想使用一个Activity,就必须在AndroidManifest.xml文件中对其进行声明, 如果不想把Activity暴露给其他应用可以不添加intent filter。Activity的状态会随着用户操作/系统回收而发生变化,这些状态由系统控制,但是开发者可以通过一系列的callback 来决定activity状态变化时的操作。正常生...

2018-09-26 15:24:45 564

原创 Binder

进程是操作系统层面的概念,进程的好处有很多,最显著的一点就是进程有了自己私有的内存空间,从而保证了进程内数据的安全,但是却为进程间的通信带来了不便。为了解决这个问题,不同的操作系统采用了很多不同的方案,Binder便是Android特有的方案,当然Android是以Linux为内核的操作系统,所以UNIX类型的进程间通信方式( file-system, local sockets或者signals...

2018-09-21 11:41:01 1939

原创 SIM-based call process

目前没有时间和精力来分析总结细节,本篇主要内容是讲一些理解性的东西,先写一些,以后慢慢更新维护。回顾自己的学习过程,我发现这些理解性的东西,对学习掌握这部分知识还是非常重要的,因为很多初学者很容易淹没在略显复杂的流程和无尽的细节中。 我个人认为,搞清楚代码的包、关键类的继承关系以及运行时的进程是重中之重,可以加快学习过程,对掌握细节也很有帮助,下面的图也是按照这个思路基于Android O源...

2018-05-07 14:41:29 608 2

原创 SystemUI---RAT

System UI的内容很多,包括状态栏、通知栏、锁屏、Navigation bar和Recent等;本篇主要分析状态栏中的RAT图标、数据图标以及信号格的更新。每一个新版本,Google都会对这一块进行修改,所以不同版本之间会有些差异,本篇内容是基于Android O。 本文分成三部分: 1. System UI的启动 2. System UI的布局 3. 图标的更新1. S...

2018-04-03 10:31:36 1715 2

原创 ConnectivityManager and ConnectivityService --- Telephony data Part III

ConnectivityManager and ConnectivityServiceConnectivityManager 和ConnectivityService的作用主要有五点: 1. 监听网络连接(WiFi, GPRS, UMTS等)。 通过NetworkAgent监听网络连接的变化。NetworkAgent是bearer和ConnectivityService沟通的桥梁, ...

2018-03-26 11:28:23 2382 4

原创 APN---Telephony data Part I

关于Telephony data 准备写三篇,本文是第一部分APN,根据Android O源码,简单总结了Android上APN相关的知识点。分以下三部分: 1. 预置APN数据加载 2. APN字段 3. APN的显示和编辑APN(access point name)决定了我们手机接入网络的方式,一般我们手机都做了默认配置,也可以根据需要进行手动配置。APN存储在手机的“/data...

2018-03-09 14:34:06 2844

原创 DcTracker and DataConnection --- Telephony data Part II

本篇主要讲DataConnection的建立过程以及涉及到的一些知识点,主要分成下面几部分: 1. DcTracker的初始化 2. ApnContext的初始化 3. 开机Data connection的建立3.1 DataConnection建立流程图3.2 DcTracker.isDataAllowed方法3.3 waiting apn3.4 modem反馈结果的处理4...

2018-03-09 14:32:42 2690

原创 Java virtual machine

工作中不直接和Java 虚拟机打交道,没有进行过调优等工作,所以对虚拟机体会不深,这里简单总结下Java虚拟机的基础知识,对更好的理解Java语言有帮助。 章节如下: 1. 数据类型 2. 运行时数据区 3. 垃圾收集机制和内存分配策略 4. Class 文件的结构 5. 虚拟机的类加载机制1.数据类型数据类型 ├── 原始类型 │ ├── bo...

2018-01-22 18:08:07 2157

原创 Telephony--PhoneAccount

对PhoneAccount的使用体会并不深,所以很多知识点漏了或者写的不清晰,后续get到新体会时再完善吧。内容显的杂乱,简单分了五部分: 1. PhoneAccount的作用 2. PhoneAccount包含的信息 3. PhoneAccount相关的属性 4. SIMs based phone accounts 5. 题外篇ConnectionService1. Pho

2017-12-26 10:52:15 3217

原创 Android overlay简单总结

本文简单总结Android 的overlay机制, 分为下面两部分:1. SRO–Static resource overly(静态替换) 2. RRO–Runtime resource overlay (运行时替换)1.SRO–Static resource overlay(静态替换)SRO是在编译时完成的,我们可以根据不同的产品,为app/framework加载不同的资源...

2017-12-23 10:44:18 12925 5

原创 Android Property

本文将从下面三方面简单分析总结android property: 1. 使用方式 2. Property文件的加载 3. Property的存储1. 使用方式在工作中经常通过下面三种方式使用property: 1.code里面使用SystemProperties.java和property_service.cpp SystemProperties.java为Jave层

2017-12-16 11:06:32 3811

原创 android log

Android log的重要性不言而喻,是我们分析问题的依据,理解代码的好助手。 本文从以下两方面对log做一些简单总结: 1. Log分类 2. Log打印控制1. Log分类Android 打印的log分以下几类: 1. main log 2. sytem log 3. radio log 4. event log 5. kernel log 6. crash......

2017-12-02 15:37:53 3021 1

原创 Android Init language

Android Init Language对于大多数的Android开发者来说,Init语言使用频率应该不高; 但是阅读.rc文件对理解开机过程很有帮助,所以还是要学习下Init语言。下面的内容来自于/system/core/init目录下的readme文件,readme算是官方文档了,当作手册来用。语法Android Init 语言比较简单,只有五种类别的声明/语句:Actio

2017-11-28 11:47:49 1181

原创 RIL

对于熟悉Android O之前RIL的开发者来说,Android O上RIL最大的改变就是将socket通信换成了binder通信,只不过是/dev/hwbinder,而不是/dev/binder。Binder IPC的开发模式是注册service, 获取service,然后调用相关API。Server端RILD不再是socket监听,而是注册service; RILJ也不再是连接socket,而...

2017-11-28 11:47:25 9229

原创 Voice mail

前几天,在项目重要节点的时候,突然有个VVM(visual voice mail)的问题被列为重点对象; 由于之前一直疏于查看voice mail相关的代码,所以有些手忙脚乱,虽然问题得到解决,但是对于这种比较少用的功能,还是做个记录,以备不时之需。这里只是梳理了一个粗漏的代码流程,由于平时很少处理voice mail相关的问题,暂时不对voice mail做深入的学习,所以这里的内容对于不熟...

2017-11-11 14:56:47 3226

翻译 State machine

在看state machine代码(StateMachine.java)的时候,发现源码的注释写的很好; 前半部分是讲解,后半部分是示例代码,读过之后state machine的要点也就基本掌握了。今天就做下翻译。当然翻译的意义并不大,能看英文的还是直接看英文的好,这里只是给自己练练手。言归正传,原文如下:这里定义的是一个分层次的状态机,可以处理消息,并且拥有预制的分层状态。状态是一个State对象

2017-11-07 19:29:17 1347

原创 PLMN & SPN

工作中会经常遇到PLMN和SPN显示的问题, 这部分和协议关系密切,所以仔细读协议对掌握这部分的知识是很好的; 下面只是将工作中常用的部分做简单总结, 以便快速处理问题。下图是协议TS 51.011 10.3.11部分对Display condition 的定义。 b1=0:如果registered PLMN是HPLMN或者在Service Provider PLMN List中, 那么r

2017-11-04 16:47:26 4890

原创 Subscription--Android O

Subscription关于subscription,主要从下面两个方面学习:1.Subscription的获取和更新。2.Subscription的存储。Subscription的获取和更新Subscription的获取和更新主要依靠SubscriptionInfoUpdater类。在PhoneApp启动的过程中会创建SubscriptionInfoUpdater类的对象,从下面的构造函数里可以看

2017-10-30 09:39:56 3389

原创 UICC--Android O

Uicc card关于这部分的流程,UiccController.java中的注释写的很清楚,先把这部分注释拿出来,如下: * Once created UiccController registers with RIL for "on" and &a

2017-10-28 09:54:33 1420

空空如也

空空如也

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

TA关注的人

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