前言
反射是很常用的一种方式。
今天就记录一下,反射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; }
参考文章
-
《
历史上的今天
暂无评论...
随机推荐
[NDK开发]Android JNI 中新增JNI层日志打印
前言在上一篇的基础上《[NDK开发]Android JNI 开发之第一个 JNI 实例》,进行新增log打印正文Android.mk添加LOCAL_LDLIBS := -llog完整代码如下LOCAL_PATH := $(call my-dir)include $(CLEAR...
修改Framework画中画(pip)中默认UI和逻辑定制
前言记录一下自己修改Android画中画UI界面和定制化逻辑。记录一下,方便自己查阅。正文如上图,一个六个按钮。对于自定义界面的话,会改如下删除[设置]按钮去除双击进入全屏播放(容易误操作),只有点击[]后才进入全屏播放优化X退出PIP时声音和画面不同步暂停问题隐藏内容!付...
Service的Context介绍
前言对于Application,Activity和Service这几个类,我们是很[熟悉]的。确实[熟悉],作为App开发这基本都要面对这几个类。几天记录一下Service的Context创建,其实也就是简单的说说。正文Context的使用场景使用Context调用方法,比如启动A...
Android MediaButton监听再次记录
前言再次记录一下Android 中MediaButton的注册,注销代码片段,以及遇到的问题,记录于此,方便自己查阅和回顾。正文一般会出现监听了,但是没收到。下面记录一下自己处理的方式。隐藏内容!付费阅读后才能查看!¥4 ¥5多个隐藏块只需支付一次付费阅读参考文章老文章了,但还是这里重...
[摘]View的基础知识
前言这边文章总结得不错,对View的总结很到位。因此摘抄于此,方便自己学习。View的基础知识了解View,可以有效的使用ViewmTop mLeft mRight mBottomView的位置主要通过它的四个顶点来决定,对应View的四个属性。mTop 左上角纵坐标mLeft ...
付志勇:故乡
魂牵梦绕的故乡常被我瘦弱的文字描绘成梦中的新娘 带着他简单的行囊夜夜步入我的心房与我一诉衷肠 而今我走在陌生的路上故乡成为我真实的阳光恬静地照耀我的天空让我不再感到山高水远不在犹豫彷徨幸福春天一样抵达身旁