- 博客(42)
- 资源 (6)
- 收藏
- 关注
原创 android 通话程序结构总结
一 通话界面的显示相关文件的路径在 /packages/apps/Dialer 路径下。 每种界面都是以Fragment 的形式控制。比如拨号界面DialpadFragment.java,应答界面AnswerFragment.java, Hold 界面OnHoldFragment.java. 二 下一层是/packages/services/Telecomm ...
2018-06-17 23:45:46
561
原创 GsmCdmaCallTracker 如何记录Call的状态
GsmCdmaCallTracker 定义了三个GsmCdmaCall, 用于记录Call 的状态。mRingingCallmForegroundCallmBackgroundCall一 这三个GsmCdmaCall 分别用于记录那些状态呢?看一下GsmCdmaConnection 的 以下方法vate GsmCdmaCall parentFromDCState (DriverCall.S...
2018-06-17 22:39:25
844
原创 android 8.0 MO 通话
本文是作为本人学习总结。首先挂一下流程图。 通话相关界面的显示和控制从/packages/apps/Dialer目录下。一 /packages/apps/Dialer 层 dial 从DialpadFragment 开始,DialpadFragment 显示一个12键拨号键盘。这里说明一下, DialpadFragment 是由DialtactsA...
2018-06-16 20:34:53
2480
原创 apk 反编译
一 apktool apktool 用来反编译apk内资源文件。 文件路径:http://download.youkuaiyun.com/download/shizhonghuo19870328/9927123 使用方法:、 将下载文件解压, 生成apktool 文件夹,将需要反编译的apk 放到apktool 文件夹 下。 打开命令行模式, 运行
2017-08-10 09:39:43
530
转载 AudioPolicyService源码分析
AudioPolicy在Android系统中主要负责Audio"策略"相关的问题。它和AudioFlinger一起组成了Android Audio系统的两个服务。一个负责管理audio的“路由”,一个负责管理audio“设备”。在Android M 版本的系统中,这两个服务都是在系统启动的过程中,通过MediaServer来加载的。AudioPolicyService在Android Au
2017-08-09 11:32:37
600
原创 C++ 知识点
一 audo C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。 mapint, mapint,i
2017-08-09 09:01:53
238
原创 AudioService
一 重要字段和对象 1. AudioSystem 定义了三种平台类型:普通平台,phone平台和TV 平台。 这三种类型的不同流之间可能是通用的。 所以在AudioService中定义了三个数组如下 1) 普通平台 private final int[] STREAM_VOLUME_ALIAS_DEFAULT = new int[] {
2017-08-08 16:47:26
1733
原创 AudioTrack.cpp 源码分析
AudioTrack. java 进行音频播放的相关处理, 它对应的JNI 中间层为android_media_AudioTrack.cpp 。这部分根据他们之间的对应关系来分析android_media_AudioTrack.cpp 的源码。
2017-08-08 16:21:18
3847
原创 AudioFlinger 源码解析
一 AudioFlinger 的初始化 AudioFlinger的初始化是从main_audioserver.cpp 初始化。 这是系统启动服务的典型方法。 sp proc(ProcessState::self()); sp sm = defaultServiceManager(); ALOGI("ServiceManag
2017-08-08 16:19:54
1383
原创 sharePreference 的一个使用例子
这篇文章只是一个简单的SharePerferences 的使用例子public class RecorderHelper { public interface SpeakerKey{ public static final String SPEAKER_ID="ecarx.tts.speaker"; public static final int
2017-08-07 14:35:14
637
原创 PriorityBlockingQueue 优先级阻塞队列的介绍和使用
一 队列的基本方法(Queue 接口) 1. boolean add(E e), 元素插入队列, 如果队列没有空间, 返回true, 抛出异常。 2. boolean off(E e) 元素插入队列, 如果队列已满, 则返回false 3. E element(), 获取头元素, 但是不移除头元素。 如果队列为空, 抛出异常 4. peek()
2017-07-24 11:52:45
2017
转载 HTTP 中 GET 与 POST 的区别
转载自:http://www.oschina.net/news/77354/http-get-post-differentGET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总
2017-06-21 16:18:07
222
原创 字符串处理类 TextUtils
一 TextUtils 简介 TextUtils 是android 提供的字符串处理类(android.text.TextUtils)。 二 TextUtils 的重要方法 1) 将字符从此字符串复制到目标字符数组 public static void getChars(CharSequence s, int start, int end
2017-06-07 21:33:41
566
原创 OkHttp 用法解析
一 简介 学习完Volley框架, 开始学习OkHttp 网络框架。 OkHttp 框架是 本文 是基于okhttp-3.2.0.jar 开发。http://download.youkuaiyun.com/detail/shizhonghuo19870328/9861138二 OkHttp 的重要参数和方法 OkHttp 框架大部分是基于build 方式初始化。
2017-06-05 16:25:27
565
原创 volley网络编程
一 简介 android 开发离不开网络编程,通常情况下都是使用HTTP 协议。 谷歌孙然提供了HTTPURLConnection 来进行网络通信。 但是需要编写大量代码进行 缓存和请求调度。 所以2013年, google 提供了一个新的网络框架Volley。 Volley 使用简单 ,非常适用于那些网络流量不大, 但是使用频繁的场景。二 Volley
2017-06-02 17:44:02
354
原创 XML 及其解析
一 XML 介绍 XML(Extensible Markup Language), 可扩展语言。 XML 的设计是为了传输和存储数据,焦点是数据的内容。 XML 的结构如下: 1) XML 声明 XML 总是以一个XML声明来开始,位于文档的第一行。 它指明了XML 的版本和编码方式。 如以下, 版
2017-06-01 17:33:33
279
原创 HttpClient
HttpClient 是Http 协议的一种 包装类。 可以支持HTTPS,COOKIE。HttpClient需要以下6个步骤:1. 创建HttpClient 的实例。2. 创建某种连接方法,对于get方法是HttpGet, 还有HttpPost, HttpPut 等等。3. 用HttpClient 实例去执行execute 方法, 返回HttpResponse。4.
2017-05-31 16:45:35
278
原创 URLConnection 和 HttpURLConnection
HttpURLConnection 是android 系统最基本的网络编程方式。 也是google 推荐的网络编程方式。这篇博客介绍了HttpURLConnection 的使用方法和重要字段。
2017-05-31 16:12:03
704
原创 adb 命令与问题解决
1. adb devices offline 查看你的adb 版本: adb version。 从 android 4.2 版本以上, 需要adb 版本1.0.31 版本。2. 查看终端的线程号 adb shell ps 3. 捕获线程log adb logcat | grep 线程号 4. 安装adb 遇到问题da...
2017-05-30 12:43:19
465
转载 深入理解AudioService
《深入理解Android 卷III》即将发布,作者是张大伟。此书填补了深入理解Android Framework卷中的一个主要空白,即Android Framework中和UI相关的部分。在一个特别讲究颜值的时代,本书分析了Android 4.2中WindowManagerService、ViewRoot、Input系统、StatusBar、Wallpaper等重要“颜值绘制/处理”模块第
2017-05-28 17:22:05
10253
2
原创 跨进程的双向通信
文章http://blog.youkuaiyun.com/shizhonghuo19870328/article/details/53192870 介绍了怎样用aidl 来实现跨进程通信。但是此种架构只能实现从客户端到服务端的传递。 没有服务端向客户端传递的功能。并且直接在服务端实现aidl interface, 不利于程序解耦。下面介绍一种实现进程件双向通信的方法。有两个模块, 模块Voi
2017-05-26 13:26:28
698
原创 百度地图 android 开发
最近学习了android 基于百度地图的开发, 以下是个人的总结和笔记。 百度地图API: 百度地图 API是一套基于Android 2.3及以上版本设备的应用程序接口。 您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。 要想进行百度地图开发
2017-03-21 17:21:23
642
原创 Linux 与window 文件转换
在linux系统中,文件使用LF格式换行,但是在windos下面文件使用CRLF换行,这个在sourceInsight菜单Option->preference下面的files的Tab中可以选择:1. window (CR/LF)2. Linux (LF)3. Mac (CR) 如果文件已经被编辑并保存为windos格式的CRLF的话,这个可以用file命令查看:pa
2017-03-13 08:59:16
1548
原创 android 应用权限设置
在开发android 应用的时候,经常要给应用添加权限。权限的添加是在AndroidManifest.xml 中。下面是总结的一些常用的 权限添加。
2017-03-12 21:10:42
1419
转载 selector
转载自:http://blog.youkuaiyun.com/chark_leo/article/details/20998707一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片 默认时的背景图片--> 没有焦点时的背景图片 --> android:drawable="@drawabl
2017-03-11 18:08:45
211
转载 protected-broadcast的作用
转载自http://www.cnblogs.com/caidi/p/4513825.html “保护性广播”,在一些AndroidManifest.xml中的一级标记,具体有何作用:此处指定一个广播,该广播只能被系统发送。注 意:只有系统appliaction才能在其AndroidManifest.xml中定义Protected Broadcast,系统appl
2017-03-01 16:11:05
4139
1
原创 一种从数据流中按位 读取数据的方法
typedef struct{ const unsigned char *pMemory; unsigned char mask; unsigned char rack;} BIT_STRING_T;static BIT_STRING_T mBitString;定义一个结构体来存储数据状态。//=======================
2017-02-16 14:52:04
2202
1
转载 c语言中的0UL或1UL是什么意思
转载地址:http://blog.youkuaiyun.com/qq1987924/article/details/113690630UL 表示 无符号长整型 01UL 表示 无符号长整型 1如果不写UL后缀,系统默认为:int, 即,有符号整数。1.数值常数有:整型常数、浮点常数;2.只有数值常数才有后缀说明;3.数值常数后缀不区分字母大小写。(1)整型常数的表示形式有:十进
2017-02-16 14:23:22
6859
转载 Makefile 常用函数
1. 比较函数ifeq 和ifneq ifeq是当相等时继续执行,ifneq 当不等是继续执行。 ifneq ($(strip $(TARGET_VENDOR)),) //Target_vendor 不等于空, PRODUCT_LIST += $(TARGET_PRODUCT) endif
2017-01-09 16:40:31
766
原创 添加对话框AlertDialog
对于android 开发来说, AlertDialog 是一个经常用到得小组件。今天用AlertDialog 做了一个小对话框。 所以就顺便总结一下AlertDialog 的用法。一 AlertDialog 与AlertDialog.Builder 如果看过AlertDialog.java 的源码,可以看到AlertDialog 的构造函数是protect.
2016-11-29 21:47:02
324
原创 AIDL 实现跨进程通信(android Studio)
AIDL是android Interface definition language的缩写, 也就是android 接口定义语言。通过 AIDL,android 在java 层很容易实现进程间的通信。以下介绍一下利用AIDL 实现进程间通信的流程。一 建立自定义类 person,public class person implements Parcelable{ Str
2016-11-16 22:58:07
604
转载 PLMN概念和应用设置
链接:http://www.cnblogs.com/bastard/archive/2013/05/09/3068602.html1 PLMN概念PLMN: PLMN(Public Land Mobile Network,公共陆地移动网络)该网路必须与公众交换电话网(PSTN)互连,形成整个地区或国家规模的通信网。 PLMN = M
2016-11-16 11:06:03
2955
原创 malloc 和 realloc 的使用
最近应美国运营商的需求写一个程序,需要从高通log中解析手机语音和数据的注册信息,显示到组件上。 解析出的信息要写入一个字符串中。在给字符串分配内存空间时,遇到一些小问题。1) malloc 函数 void *malloc(unsigned int num_bytes); malloc 函数向内存中申请num_bytes 数量的内存块,并返回一个内存块的首地址。
2016-11-13 23:21:01
1292
原创 Bind 实现进程间通信
上一篇文章介绍了Mediaplayer 框架。 但是, Mediaplayer.cpp 是如何调用Mediaplayerservice.cpp 的方法呢? Mediaplayer.cpp 和Mediaplayerservice.cpp 是运行在不同的进程。 现在就以Mediaplayerservice来简要说明一下binder 时如何在C 层中进行进程间通信的。从main_media
2016-11-11 13:58:59
1235
原创 git 提交代码。
一 提交代码修改, 首先要获得你要修改的代码。1 .获得代码需要使用git clone 命令。git clone + ssh 资源地址2. 这是你将远程代码库的对应代码clone到本地。 但是这时你在本地的文件夹里是看不到代码的, 因为代码库中一般有很多分支。需要用checkout 命令将你需要的分支检出。 $ git branch -a 可以命令列出所有branch。 1
2016-11-01 14:50:06
1046
原创 Android studio 秘钥建立和签名APK
Android studio 秘钥的建立方法 如下:1. build-> generate sigh APK, 此时进入如下界面。这里可以选择你以前建立的秘钥, 也可以重新建立一个秘钥。2. 选择 Create new 建立秘钥相关证书项可以不填, 但是需要添加秘钥库 ,秘钥的密码和秘钥别名。点击OK,返回上一个界面。 点击OK。进入最后界面
2016-10-23 21:26:52
1198
原创 高通工具设置小技巧
一 QXDM 1. QXDM 能够找到的log太多, 所以Qxdm 可以设置过滤器来抓取特定的log。 设置方法:file->Manager Configuration. 用这种方法选择抓取何种log。 2 抓取到的log也可以用类似的方法去过滤有用log 设置方法:打开isf 文件以后, 右键-> Refiltering Config,
2016-10-19 11:38:51
713
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人