- 博客(19)
- 资源 (7)
- 收藏
- 关注
原创 深入分析vold、MountService(and5.1)
Vold:Volume Daemon,管理和控制Android平台外部存储设备的后台进程,包括SD卡的插拔时间检测、SD卡挂载、卸载、格式化等等。MountService和Vold交互,比如会发送一些广播,是接受到了vold的信息之后采取的动作。另外也会向vold发送挂载SD卡等命令。Vold中的NetlinkManager模块(NM)接受来自linux内核的uevent消息。例如
2015-05-28 14:53:45 3066 1
原创 android5.1 PowerManagerService和DisplayPowerControler、DisplayPowerState关系
PowerManagerService在updateDisplayPowerStateLocked中与DisplayPowerControler交互,详细看代码: private boolean updateDisplayPowerStateLocked(int dirty) { final boolean oldDisplayReady = mDisplayReady;
2015-05-26 09:48:52 3724
原创 andjroid5.1 BatteryManager深入分析
BatteryManager主要是去主动查看电池状态,主要通过binder通信去healthd中查看电池的各个属性。可以看下BatteryManager的主要代码 private long queryProperty(int id) { long ret; if (mBatteryPropertiesRegistrar == null) {
2015-05-25 14:00:14 3185
原创 Binder java层实现原理
android使用java实现的,因此binder很多是在java中使用。此篇博客是在罗老师那边博客上节选一段,然后自己分析了下。下面是自己写的一个aidl文件package android.os;interface IHelloService{ void setVal(int val); int getVal();} 注意,这是一个aidl文件,编译后会生成
2015-05-22 18:53:24 1572
原创 Binder c++代码
这篇博客主要看一下binder的一些实现,以及自己写一个实例:Binder中service组件和client组件分别使用模板类BnInterface和BpInterface来描述,前者为Binder的本地对象,后者为代理对象。// ----------------------------------------------------------------------templat
2015-05-22 16:54:24 1853
原创 android5.1添加android长按power键重启功能
当用户长按power键的时候,系统会在PhoneWindowManager中调用mGlobalActions.showDialog,来显示关机、飞行、重启等界面选项。而我们需要在GlobalActions.java中创建一个重启的选项。下面我们从GlobalActions中的createDialog节选一段代码: mItems = new ArrayList();
2015-05-20 09:26:42 5794
转载 android Application Component研究之Activity(一)
转载地址:http://blog.csdn.net/windskier/article/details/7096521 终于下定决心写写ActivityManagerService的源码分析的文章了,ActivityManagerService 业务的整个逻辑关系被各种复杂的数据结构包裹着,因此对ActivityManagerService 的分析主要就是对各种数据结构的分析,明白了这些
2015-05-19 19:07:45 748
转载 android Application Component研究之Activity(二)
转载地址:http://blog.csdn.net/windskier/article/details/7172710上篇文章分析完了task的创建或者复用,接下来接着分析activity在启动过程中还有哪些工作需要去完成?首先给出整个activity的过程图。 1. Starting Window 当该activity运行在新的task中或者进程中时,需要在activ
2015-05-19 18:22:59 946
转载 android system.img,ramdisk.img,boot.img 分析
android system.img,ramdisk.img,boot.img 分析 android 源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的 文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据
2015-05-14 17:29:56 1668
转载 Linux 挂载概念 理解
Linux 挂载概念 理解 准备知识: 文件系统中的相关目录:dev //设备文件media //挂载媒体设备,如光驱、U盘等mnt //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media目录。磁盘分区:硬盘包括IDE和SCSI两种接口。其中,
2015-05-14 17:13:33 892
转载 android启动过程及各个镜像间的关系
android启动过程及各个镜像间的关系 Android启动过程 Android在启动的时候,会由UBOOT传入一个init参数,这个init参数指定了开机的时候第一个运行的程序,默认就是init程序,这个程序在ramdisk.img中。可以分析一下它的代码,看看在其中到底做了一些什么样的初始化任务,它的源文件在system/core/init/init.c中。它
2015-05-14 16:52:09 1780
转载 android Intent、pendingIntent机制详解
什么是IntentIntent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACT
2015-05-12 16:43:57 2416
原创 Android5.1AlarmManagerService深入分析(Android4.4补充)
由于在我的博客中Android4.4已经比较详细的分析了AlarmManagerService,因此这里主要分析一下差异,在我看来5.1的在AlarmManagerService的改动还是比较大的。先看AlarmManager新增了一个接口: public void setAlarmClock(AlarmClockInfo info, PendingIntent operat
2015-05-12 10:55:24 5282 1
原创 android5.1BatteryService深入分析
先贴一张类与类之间的关系图:构造函数只是从资源中取一些值。 public BatteryService(Context context) { super(context); mContext = context; mHandler = new Handler(true /*async*/); mLed =
2015-05-11 18:50:09 4226
转载 android4.4 AlarmManagerService深入分析
AlarmManager深入分析转载地址http://blog.csdn.net/codefly/article/details/17058425,自己补充了一些代码分析 1.概述 在Android系统中,闹钟和唤醒功能都是由Alarm Manager Service控制并管理的。我们所熟悉的RTC闹钟以及定时器都和它有莫大的关系。为了
2015-05-08 10:43:35 5673
转载 android 4.4 batteryservice 电池电量显示分析
转载地址:http://blog.csdn.net/daweibalang717/article/details/40615453最近工作接触到这么的东西,这是我对整个电池管理方面Java 层的分析。如果想了解底层的话,请看我的博客:android 4.4 电池电量管理底层分析(C\C++层) (http://blog.csdn.net/daweibalang717/article/d
2015-05-07 18:00:30 13323
原创 android4.4 healthd深入分析
先看healthd,healthd直接查看设备节点中各种电池属性,然后调用BatteryService的update函数,下来先看healthd的代码。int main(int argc, char **argv) { int ch; klog_set_level(KLOG_LEVEL); while ((ch = getopt(argc, arg
2015-05-07 16:42:49 3547
原创 Android5.1 PowerManagerService深入分析
PowerManagerService提供Android系统的电源管理服务,废话不多说,直接看代码。先从构造函数,代码如下: public PowerManagerService(Context context) { super(context); mContext = context; //创建处理消息的线程 mHand
2015-05-06 16:47:46 10197 2
转载 PackageManagerService启动源码分析
了解了Android系统的启动过程的读者应该知道,Android的所有Java服务都是通过SystemServer进程启动的,并且驻留在SystemServer进程中。SystemServer进程在启动时,通过创建一个ServerThread线程来启动所有服务,本文主要介绍Android服务中PackageManagerService服务启动过程。首先介绍一些PackageManagerS
2015-05-06 10:14:09 1494
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人