自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 android的智能指针

android引入只能指针是为了解决c++指针使用不当造成的内存泄漏问题。 智能指针可以理解为两个对象A和B,当A引用B的时候,B也引用A,当需要释放对象A所占用的内存的时候,由于B还在引用着A,所以不能释放对象A。同理想释放B的时候,A还引用着B,所以B也不能释放,这就是一个问题。基于这个引入了强指针和弱指针,假设AB是父子关系,A引用B就是强引用,B引用A是弱引用。对象A的生命周期不受对象

2017-04-14 12:12:25 252

原创 codec音频编解码器驱动分析

之前在公司做过cs42l52编解码器的驱动,不过现在已然已经忘记了。目前手中有友善之臂的一款三星4412的开发板,那么就分析这款产品的音频编解码器吧。 如图所示,可以看出该开发板使用的是WM8960的音频编解码器,查找源码android-5.0.2/linux-3.0.86/sound/soc/codecs/wm8960.c存在,查看mach-tiny4412.c可以看到如下图 很显然可以

2017-04-12 19:24:19 4105

原创 LCD驱动分析

由于最近面试需要,特此整理一下LCD驱动的调试,因为之前在公司调试的RK平台下的LCD已经忘记了,所以以我手中现有的友善之臂tiny4412为例。先了解下LCD有关的知识吧。LCD基础知识连接LCD常用接口TTL(RGB)、LVDS、EDP、MIPI,我个人理解就是从ARM中出来的是RGB接口的,本来这个可以直接用于显示到LCD屏,但由于抗干扰等等因素所以需要先将RGB数据通过芯片(转换芯片)转换

2017-04-12 17:25:29 1275

原创 分析改变Brightness的流程

系统修改屏幕亮度只用修改SetttingProvider中的Settings.System.SCREEN_BRIGHTNESS这个值就可以了,那么系统在这个背后都做了些什么呢?通过搜索Settings.System.SCREEN_BRIGHTNESS这个关键字,可以在PowerManagerService.java这个文件中找到,分析代码,截取片段如下//这个是SettingProvider的监听器

2017-04-08 11:07:25 707

原创 分析WifiStateMachine如何启动wifi驱动

WifiStateMachine中通过mWifiNative.loadDriver()来加载驱动,loadDriver对应jni的一个native方法,grep搜索下结果如下 ./opt/net/wifi/service/jni/com_android_server_wifi_WifiNative.cpp:1062: { “loadDriver”, “()Z”, (void *)andr

2017-04-08 00:53:48 1401

原创 由WifiStateMachine来理解StateMachine

前言:前一段时间在公司分析一个由于突然关掉路由器,导致设备wifi崩溃的问题。通过一段时间的摸索和学习,了解到wifi状态机的工作原理。所谓状态机我的理解是,表示一个物体它现在所处的状态,以及所处状态对于不同指令的处理。以下是我本人所持有的开发板所带的android5.0的wifi状态机的所有状态 从图片中的代码可以看出这差不多是个树形结构(由于图片上传大小的限制,我自己画图没办法上传

2017-04-07 23:49:27 1128

空空如也

空空如也

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

TA关注的人

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