自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (7)
  • 收藏
  • 关注

原创 selinux(案例) recovery删除data目录下的文件

在recover升级的时候,我们有个需要从服务器上下载升级包,然后放在data/download,这部分工作是放在一个systemapp中完成的。然后重启进入recoveyr模式,在recovery升级完之后,我们需要在recovery中删除这个文件,这部分是在recovery中完成。功能很简单,但是在android6.0上碰到selinux的问题。我们先来看recovery.te中是

2016-06-24 15:17:01 6820 9

原创 Android Binder ProcessState & IPCThreadState相关介绍

之前几篇博客我们介绍了传统Binder的使用方法,包括c层和java层,这篇博客我们主要介绍下ProcessState和IPCThreadState类的相关方法。一、正常demon binder调用流程在一个传统的demon中,如果我们要使用Binder通信,代码大致如下:int main(int argc, char** argv) { sp proc(P

2016-06-23 17:29:14 3496

原创 Binder通信过程中的用户空间线程池的管理

在Binder通信机制里,客户端与服务端之间的通信是在专门的IPC通信线程中进行的。这些线程构成一个线程池。线程的创建和销毁是在用户空间进行的,而对线程的控制是在驱动层进行的,即驱动控制线程池中线程的生命,而线程本身则是运行在用户空间的。驱动层是通过BR_SPAWN_LOOPER向用户空间发送创建新线程的命令。线程池的大小可以设置, 如果没有主动去设置这个大小,则默认大小为15,如下代

2016-06-23 16:19:10 3085

转载 Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析

 在上一篇文章中,我们分析了Android系统进程间通信机制Binder中的Server在启动过程使用Service Manager的addService接口把自己添加到Service Manager守护过程中接受管理。在这一篇文章中,我们将深入到Binder驱动程序源代码去分析Client是如何通过Service Manager的getService接口中来获得Server远程接口的

2016-06-23 14:55:28 1117

转载 Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析

  在前面一篇文章浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路中,介绍了在Android系统中Binder进程间通信机制中的Server角色是如何获得Service Manager远程接口的,即defaultServiceManager函数的实现。Server获得了Service Manager远程接

2016-06-23 14:49:34 1327

转载 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路

   在前面一篇文章浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路中,介绍了Service Manager是如何成为Binder机制的守护进程的。既然作为守护进程,Service Manager的职责当然就是为Server和Client服务了。那么,Server和Client如何获得Service Manager接口,进而享受它提供

2016-06-23 14:21:15 596

转载 简介android Binder

 在Android系统中,每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的Activity或者Service是如何通信的呢?这就是本文中要介绍的Binder进程间通信机制了。        我们知道,Android系统是基于Linux内核的,而Linux内核继

2016-06-23 14:16:31 702

转载 Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero

1、概论 -- 来自维基的解释/dev/null  : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流

2016-06-21 10:27:26 4467

原创 AlarmManagerService的hal层分析

之前我们分析过AlarmManagerService了,这里我们主要分析下其hal层。我们先来看onStart这段代码: public void onStart() { mNativeData = init();这个init函数是native函数,是用来初始化hal层的。mNativeData数据就是从hal层函数返回。一、有alarm设备我们看下

2016-06-12 17:07:53 2159

原创 android6.0 PowerManagerService Notifier分析

这个类在PowerManagerService中是非常重要的,当PowerManagerService的状态改变时,都是靠这个类通知。比如常用的灭屏和亮屏广播,也是在这个类中发送的。一、Notifier初始化首先我们来看它在PowerManagerService构造函数中的初始化: mNotifier = new Notifier(Looper.getMa

2016-06-07 20:30:54 3087

原创 android6.0 PowerManagerService dream分析

上一篇博客分析了PowerManagerService的各种状态,最后分析到dream相关,讲的不详细。这里我们再分析下。一、Dream关闭首先我们结合打印的log,看看handleSandman函数,log直接加在下面的函数中。当然我们现在说的情况是mWakefulness是dozing状态。 private void handleSandman() { // runs

2016-06-07 11:31:47 5014 1

原创 android6.0 PowerManagerService状态分析

这篇博客我们主要分析下PowerManagerService的各个状态,主要从goToSleep,wakeUp,userActivity,nap函数作为入口分析。一、PowerManagerService的goToSleep函数我们先来看下goToSleep函数:goToSleep函数主要调用了goToSleepInternal函数: private void

2016-06-06 20:04:11 9477 7

原创 android6.0 power按键深入分析

这篇博客主要分析power按键点亮屏幕和灭屏,而且我们主要分析在PhoneWIndowManager的流程。之前的博客我们分析过按键的流程,当有按键会先到PhoneWindowManager的interceptKeyBeforeQueueing函数,然后再去分析到应用,而power按键也是如此,并且其最后不会分发到应用中去,下面我们看下PhoneWindowManager的interceptK

2016-06-02 20:28:20 12770

原创 Android6.0 wakelock深入分析

这篇博客我们分析下Power的持锁,从PowerManager到PowerManagerService再到hal分析。一、PowerManager的持锁接口我们先来看下PowerManager对应用提供的接口: public WakeLock newWakeLock(int levelAndFlags, String tag) { validateWakeLock

2016-06-02 14:30:21 8456 1

android关机时间慢

android关机时间慢

2017-01-05

selinux问题

selinux问题

2017-01-05

Android AlarmManager

Android AlarmManager

2017-01-05

跟我一起写makefile

跟我一起写makefile

2016-07-15

opencv 保存录像

opencv中用来保存摄像头录的录像,c++语言摄像头播放录像

2011-09-24

空空如也

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

TA关注的人

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