自动化零件商城(www.rssme.com)专业PLC,变频器,直线模组,触摸屏,控制器,传感器等自动化商品网上购物商城,为广大中小工业企业提供优质、低价格和种类齐全的自动化零件。
文章目录

前言

反射是很常用的一种方式。

今天就记录一下,反射ServiceManager的addService()和getService()。

如果不反射,需要引入

framework_classes.jar

正常情况下,如果没有系统源码的编译,不太可能拿到framework_classes.jar。

正文

我是一个lib库中需要这个ServiceManager的添加和获取服务方法,不太想导入framework_classes.jar,因此才考虑反射。

addService()

public static void addService(String name, IBinder binder) {
    try {
        Class<?> forName = Class.forName("android.os.ServiceManager");
        Method method = forName.getMethod("addService", String.class, IBinder.class);
        method.invoke(null, name, binder);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

getService()

private static IBinder getService(String name) {
    try {
        Class<?> forName = Class.forName("android.os.ServiceManager");
        Method method = forName.getMethod("getService", String.class);
        return (IBinder) method.invoke(null, name);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

参考文章

  1. Java的反射简介

相关文章

自动化零件商城(www.rssme.com)专业PLC,变频器,直线模组,触摸屏,控制器,传感器等自动化商品网上购物商城,为广大中小工业企业提供优质、低价格和种类齐全的自动化零件。

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

none
暂无评论...