當前位置: 首頁>>代碼示例>>Java>>正文


Java IBinder.getClass方法代碼示例

本文整理匯總了Java中android.os.IBinder.getClass方法的典型用法代碼示例。如果您正苦於以下問題:Java IBinder.getClass方法的具體用法?Java IBinder.getClass怎麽用?Java IBinder.getClass使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.os.IBinder的用法示例。


在下文中一共展示了IBinder.getClass方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: onInstall

import android.os.IBinder; //導入方法依賴的package包/類
@Override
protected void onInstall(ClassLoader classLoader) throws Throwable {
    Object sCacheObj = FieldUtils.readStaticField(ServiceManagerCompat.Class(), "sCache");
    if (sCacheObj instanceof Map) {
        Map sCache = (Map) sCacheObj;
        Object Obj = sCache.get(mServiceName);
        if (Obj != null && false) {
            //FIXME 已經有了怎麽處理?這裏我們隻是把原來的給remove掉,再添加自己的。程序下次取用的時候就變成我們hook過的了。
            //但是這樣有缺陷。
            throw new RuntimeException("Can not install binder hook for " + mServiceName);
        } else {
            sCache.remove(mServiceName);
            IBinder mServiceIBinder = ServiceManagerCompat.getService(mServiceName);
            if (mServiceIBinder != null) {
                MyServiceManager.addOriginService(mServiceName, mServiceIBinder);
                Class clazz = mServiceIBinder.getClass();
                List<Class<?>> interfaces = Utils.getAllInterfaces(clazz);
                Class[] ifs = interfaces != null && interfaces.size() > 0 ? interfaces.toArray(new Class[interfaces.size()]) : new Class[0];
                IBinder mProxyServiceIBinder = (IBinder) MyProxy.newProxyInstance(clazz.getClassLoader(), ifs, this);
                sCache.put(mServiceName, mProxyServiceIBinder);
                MyServiceManager.addProxiedServiceCache(mServiceName, mProxyServiceIBinder);
            }
        }
    }
}
 
開發者ID:amikey,項目名稱:DroidPlugin,代碼行數:26,代碼來源:ServiceManagerCacheBinderHook.java


注:本文中的android.os.IBinder.getClass方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。