阅读更多

init.rc文件里,可以看到加载下面的服务:

service servicemanager /system/bin/servicemanager

user system

critical

onrestart restart zygote

onrestart restart media

servicemanager服务的代码在目录:

Android-2.0/frameworks/base/cmds/servicemanager

servicemanager服务的作用主要是服务管理,所谓的服务管理其实就是获取服务、检查服务、添加服务、枚举所有服务。服务管理器是一个容器管理器,方便服务添加、调用和删除。在应用层的程序,都向这个服务管理器获取需要使用的服务,而所有提供服务的程序,都向这个服务器管理器注册自己的服务。服务管理器是应用程序与服务沟通的桥梁。

下面来分析一下main函数的代码如下:

int main(int argc, char **argv)

{

struct binder_state *bs;

void *svcmgr = BINDER_SERVICE_MANAGER;

这行代码是设置管理器从0开始。

bs = binder_open(128*1024);

这行代码是调用binder_open函数打开binder设备,并分配内存空间。

if (binder_become_context_manager(bs)) {

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

return -1;

}

调用binder_become_context_manager函数设置本服务作为服务管理器。

svcmgr_handle = svcmgr;

这行代码是设置服务管理器处理函数。

binder_loop(bs, svcmgr_handler);

这行代码是让服务管理器进入循环地处理服务相关的命令。

return 0;

}

QQ: 9073204 蔡军生

更多相关文章

  1. android 代码设置apn
  2. Android 通过代码执行Linux 命令 echo 命令
  3. android 反编译和代码解读
  4. 第一行代码 Android
  5. android对话框代码中设置背景为透明
  6. android取得手机屏幕大小DisplayMetrics的核心代码
  7. Android代码分析
  8. Android Studio 2.0下创建jni应用调用本地C函数

随机推荐

  1. Android自定义Dialog(自定义主题、自定义
  2. Android(安卓)自绘输入框
  3. 仿QQ android 实战(学习 android 先来个QQ
  4. 2011.06.20——— android listview的拖
  5. Android中自定义对话框小结
  6. 简单总结RectF、Rect 和Matrix ,还有Pain
  7. android 执行shell命令代码
  8. android 开发中常用颜色,以及一些颜色的代
  9. 让你的Android彻底裸奔吧!! -- 瘫痪Andro
  10. Android中的硬件加速