pdf

how the Android IPC system works

  • 1星
  • 日期: 2013-08-12
  • 大小: 92.47KB
  • 所需积分:1分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: AndroidIPCsystem

I will use call IAudioFlinger::setMode API as a sample scenario to show how the Android IPC

system works. AudioFlinger is a service in the media_server program

Service Manager Run

service_manager provide service manager service to other process. It must be started before any

other service gets running.

int main(int argc, char **argv)

{

struct binder_state *bs;

void *svcmgr = BINDER_SERVICE_MANAGER;

bs = binder_open(128*1024);

if (binder_become_context_manager(bs)) {

LOGE("cannot become context manager (%s)\n", strerror(errno));

return -1;

}

svcmgr_handle = svcmgr;

binder_loop(bs, svcmgr_handler);

return 0;

}

It first open “/dev/binder” driver and then call BINDER_SET_CONTEXT_MGR ioctl to let

binder kernel driver know it acts as a manager. Then it enters into a loop to wait for any data from

other process.

void binder_loop(struct binder_state *bs, binder_handler func)

{

int res;

struct binder_write_read bwr;

unsigned readbuf[32];

bwr.write_size = 0;

bwr.write_consumed = 0;

bwr.write_buffer = 0;

readbuf[0] = BC_ENTER_LOOPER;

binder_write(bs, readbuf, sizeof(unsigned));

for (;;) {

bwr.read_size = sizeof(readbuf);

bwr.read_consumed = 0;

bwr.read_buffer = (unsigned) readbuf;

更多简介内容

推荐帖子

MSP430的看门狗常见用法以及中断函数的书写方法
看门狗是为了防止程序跑飞而设定的,但是由于看门狗是一个类似于定时器,因此可以把他当作定时器来使用 示例代码:用看门狗定时器使一个led闪烁 #include void  main( void ) {   // Stop watchdog timer to prevent time out reset   WDTCTL = WDT_MDLY_32;/
Jacktang 【微控制器 MCU】
春风十里不如你,最美的表白送给你~
在今天这个连空气都透着粉色的日子, 本IC小编也决定改改风格, 暂时放一放干干的技术方案, 琢磨着借这个机会, 给一直以来喜爱我们, 支持我们的IC客户们送点什么呢?       5件趁手软件分析利器,解决芯片设计各大环节的关键验证和测试问题(文末有详细资料下载)
eric_wang 综合技术交流
LOTO课2:二极管实践 --- 桥式全波整流
实践用到的资源 4个整流二极管,500R的电阻(做负载),示波器,信号源 备注:阻值并不需要准确,这个电阻是作为负载使用的,阻值不能太大,太大的话会把电流限制到很小,可能让整流二极管截止,二极管焊接的时候注意极性。信号源要能产生正负2v以上频率50HZ的正弦交流信号 视频中使用OSC482S自带信号源模块产生正负2V的正弦波作为二极管桥式电路的输入,通
LOTO2018 移动便携
单片机的图形化编程方法探讨
      单片机可以用汇编语言编程,也可以用高级语言C、Basic编程,也可以用图形化语言编程。工业控制中普遍采用可编程控制器,其CPU模块内的微控制器往往是普通的单片机,而可编程控制器可以梯形图编程,或者用流程图编程。现在的智能教育机器人控制器均用单片机,而这些机器人的编程大多支持流程图编程。普通单片机的开发一定可以采用流程图编程。其实,机器人的流程图编制软件可以反过来作为相应单片机的编程软件
Aguilera 【微控制器 MCU】
CC2630 TIMAC协议栈低功耗问题
项目功能: 采集5s数据发送——休眠5s——采集5s数据发送,循环往复 平台: CC2630 协议栈:timac_1_05_02_43299   问题描述:  在休眠5s的过程中,整体电流在7,8ma,只比数据发送低1ma,这是不科学的。验证没有event在跑的时候   是可以到3,400ua的电流消耗的(主要是板子上的传感器功耗)。   看了TI的
fish001 【无线连接】
运算放大器基础知识:有源电路的直流偏置
在本实验中,我们介绍一种有源电路——运算放大器,其某些特性(高输入电阻、低输出电阻和大差分增益)使其成为接近理想的放大器,并且是很多电路应用中的有用构建模块。在本实验中,您将了解有源电路的直流偏置,并探索若干基本功能运算放大器电路。我们还将利用此实验继续培养使用实验室硬件的技能。 材料 ADALM2000主动学习模块 无焊面包板和跳线套件 一个1 kΩ电阻 两个4.7 kΩ电阻 两个1
火辣西米秀 【模拟与混合信号】

评论

登录/注册

意见反馈

求资源

回顶部

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })