关闭

binderservice

282人阅读 评论(0) 收藏 举报
分类:
一般跨进程的service,我们将其注册为binderservice


xref: /frameworks/base/services/core/java/com/android/server/BatteryService.java
 publishBinderService("battery", new BinderService());


790    private final class BinderService extends Binder {
791        @Override
792        protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
793            if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
794                    != PackageManager.PERMISSION_GRANTED) {
795
796                pw.println("Permission Denial: can't dump Battery service from from pid="
797                        + Binder.getCallingPid()
798                        + ", uid=" + Binder.getCallingUid());
799                return;
800            }
801
802            dumpInternal(pw, args);
803        }
804    }


我们看看publishBinderService的实现
xref: /frameworks/base/services/core/java/com/android/server/SystemService.java
163    protected final void publishBinderService(String name, IBinder service) {
164        publishBinderService(name, service, false);
165    }
继续调用同名的publishBinderService,多了一个参数
170    protected final void publishBinderService(String name, IBinder service,
171            boolean allowIsolated) {
172        ServiceManager.addService(name, service, allowIsolated);
173    }


可见最后还是调用ServiceManager.addService 来实现的,SystemService只是做简单的封装
getBinderService 也是通过调用erviceManager.getService得到,同样只是封装
178    protected final IBinder getBinderService(String name) {
179        return ServiceManager.getService(name);
0
0
查看评论

Android4.1中BinderService的作用

Android4.1 中出现了一个新的类,BinderService,所有的Native Service 都会继承这个类。 class BinderService { public:     static status_t publish(bool allowI...
  • lsdmx2016
  • lsdmx2016
  • 2013-04-08 15:05
  • 4044

android应用层服务——binderService与StartService

android中应用层的服务级别与activity差不多。service都是运行在后台的服务,那么它就是不可见的,没有界面的东西。你可以启动一个服务Service来播放音乐,或者记录你地理信息位置的改变,或者启动一个服务来运行并一直监听某种动作。        ...
  • tfygg
  • tfygg
  • 2016-06-12 00:53
  • 1930

Android Service详解(四)---绑定服务BoundService详解之扩展Binder类

Android Service详解(四)---绑定服务BoundService详解之扩展Binder类 这是第四篇文章主要讲的是BoundService中使用扩展Binder类实现 回顾 Android Service详解(一)---概述和StartService Andro...
  • SuperBigLw
  • SuperBigLw
  • 2016-11-11 10:43
  • 13232

BinderService简单应用

BinderActivity.java package com.czk.testview; import com.czk.testview.BinderService.MyBinder; import android.app.Activity; import android.content.C...
  • Notzuonotdied
  • Notzuonotdied
  • 2016-07-11 17:20
  • 149

Android Binder分析二:Natvie Service的注册

这一章我们通过MediaPlayerService的注册来说明注册Service的过程
  • lilian0118
  • lilian0118
  • 2014-04-22 11:44
  • 2560

Binder源码分析之ServiceManager(原)

ServiceManager作为Native层Service的管理员,有着极其重要的作用,主要表现两个方面:         1、对于服务端来说,系统所有的服务提供者都需要向ServiceManager注册。       ...
  • u010961631
  • u010961631
  • 2014-02-24 20:12
  • 3845

如何创建一个Android Native Binder Service

Binder是Android特有的进程间通信(IPC)机制和远程方法调用系统,整个核心平台的跨进程操作几乎都是通过binder进行的,相对于其他的IPC方式,binder有如下特点: 通过驱动程序来进行进程间通信 通过共享内存来提高性能 每个进程都有处理请求的线程池 引用计数功能,支持跨进程的对象引...
  • wangmxe
  • wangmxe
  • 2016-04-29 16:01
  • 934

SELinux: 为binderservice编写policy

转自:http://dragon.leanote.com/post/SELinux-%E4%B8%BAbinderservice%E7%BC%96%E5%86%99%E8%A7%84%E5%88%99 为了让应用正常访问某个binder service,我们需要编写哪些policy呢?...
  • sosesoA
  • sosesoA
  • 2016-01-30 12:41
  • 942

service的基本用法+远程服务

一、进程回收的优先级 android操作系统会尽可能长期的保留应用程序的进程,系统根据进程的优先级回收进程,释放内存。 优先级顺序: 前台进程,Foreground process,能看到应用程序的界面,并且可以操作这个应用程序。 可视进程Visible process能看到应用程序,但是不...
  • zjnuwsf
  • zjnuwsf
  • 2016-08-20 23:14
  • 836

Android LocalService与RemoteService理解

前段时间被别人问到相关的went
  • diaomao357
  • diaomao357
  • 2014-07-01 16:43
  • 2263
    个人资料
    • 访问:319815次
    • 积分:14183
    • 等级:
    • 排名:第1041名
    • 原创:1136篇
    • 转载:0篇
    • 译文:11篇
    • 评论:9条
    最新评论