Java 类android.content.pm.InstrumentationInfo 实例源码

项目:android-groovy-dagger-espresso-demo    文件:AndroidSpockRunner.java   
/**
 * Load the listeners specified via meta-data name="listener" in the AndroidManifest.
 */
private void addListenersFromManifest(List<RunListener> listeners,
                                      PrintStream writer) {
    PackageManager pm = getContext().getPackageManager();
    try {
        InstrumentationInfo instrInfo = pm.getInstrumentationInfo(getComponentName(),
                PackageManager.GET_META_DATA);
        Bundle b = instrInfo.metaData;
        if (b == null) {
            return;
        }
        String extraListenerList = b.getString(ARGUMENT_LISTENER);
        addListenersFromClassString(extraListenerList, listeners, writer);
    } catch (NameNotFoundException e) {
        // should never happen
        Log.wtf(LOG_TAG, String.format("Could not find component %s", getComponentName()));
    }
}
项目:VirtualAPK    文件:LoadedPlugin.java   
@Override
public InstrumentationInfo getInstrumentationInfo(ComponentName component, int flags) throws NameNotFoundException {
    LoadedPlugin plugin = mPluginManager.getLoadedPlugin(component);
    if (null != plugin) {
        return plugin.mInstrumentationInfos.get(component);
    }

    return this.mHostPackageManager.getInstrumentationInfo(component, flags);
}
项目:VirtualHook    文件:PackageParserEx.java   
public static InstrumentationInfo generateInstrumentationInfo(
        VPackage.InstrumentationComponent i, int flags) {
    if (i == null) return null;
    if ((flags & PackageManager.GET_META_DATA) == 0) {
        return i.info;
    }
    InstrumentationInfo ii = new InstrumentationInfo(i.info);
    ii.metaData = i.metaData;
    return ii;
}
项目:DroidPlugin    文件:PackageParserApi15.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*     public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags) */
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:DroidPlugin    文件:PackageParserApi16.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*    public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:DroidPlugin    文件:PluginPackageParser.java   
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws Exception {
    Object data;
    synchronized (mInstrumentationObjCache) {
        data = mInstrumentationObjCache.get(className);
    }
    if (data != null) {
        return mParser.generateInstrumentationInfo(data, flags);
    }
    return null;
}
项目:DroidPlugin    文件:PackageParserApi21.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*  public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    Method method = MethodUtils.getAccessibleMethod(sPackageParserClass, "generateInstrumentationInfo", sInstrumentationClass, int.class);
    return (InstrumentationInfo) method.invoke(null, instrumentation, flags);
}
项目:TPlayer    文件:PackageParserEx.java   
public static InstrumentationInfo generateInstrumentationInfo(
        VPackage.InstrumentationComponent i, int flags) {
    if (i == null) return null;
    if ((flags & PackageManager.GET_META_DATA) == 0) {
        return i.info;
    }
    InstrumentationInfo ii = new InstrumentationInfo(i.info);
    ii.metaData = i.metaData;
    return ii;
}
项目:DroidPluginLibrary    文件:PackageParserApi15.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*     public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags) */
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:DroidPluginLibrary    文件:PackageParserApi16.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*    public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:DroidPluginLibrary    文件:PluginPackageParser.java   
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws Exception {
    Object data;
    synchronized (mInstrumentationObjCache) {
        data = mInstrumentationObjCache.get(className);
    }
    if (data != null) {
        return mParser.generateInstrumentationInfo(data, flags);
    }
    return null;
}
项目:DroidPluginLibrary    文件:PackageParserApi21.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*  public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    Method method = MethodUtils.getAccessibleMethod(sPackageParserClass, "generateInstrumentationInfo", sInstrumentationClass, int.class);
    return (InstrumentationInfo) method.invoke(null, instrumentation, flags);
}
项目:pet    文件:PackageParserApi15.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*     public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags) */
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:pet    文件:PackageParserApi16.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*    public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:pet    文件:PluginPackageParser.java   
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws Exception {
    Object data;
    synchronized (mInstrumentationObjCache) {
        data = mInstrumentationObjCache.get(className);
    }
    if (data != null) {
        return mParser.generateInstrumentationInfo(data, flags);
    }
    return null;
}
项目:pet    文件:PackageParserApi21.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*  public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    Method method = MethodUtils.getAccessibleMethod(sPackageParserClass, "generateInstrumentationInfo", sInstrumentationClass, int.class);
    return (InstrumentationInfo) method.invoke(null, instrumentation, flags);
}
项目:Android-plugin-support    文件:DynamicApkParser.java   
public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags) {
    if (i == null) return null;
    if ((flags&PackageManager.GET_META_DATA) == 0) {
        return i.info;
    }
    InstrumentationInfo ii = new InstrumentationInfo(i.info);
    ii.metaData = i.metaData;
    return ii;
}
项目:DynamicAppLoader    文件:PackageParserApi15.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*     public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags) */
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:DynamicAppLoader    文件:PackageParserApi16.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*    public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:DynamicAppLoader    文件:PluginPackageParser.java   
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws Exception {
    Object data;
    synchronized (mInstrumentationObjCache) {
        data = mInstrumentationObjCache.get(className);
    }
    if (data != null) {
        return mParser.generateInstrumentationInfo(data, flags);
    }
    return null;
}
项目:DynamicAppLoader    文件:PackageParserApi21.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*  public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    Method method = MethodUtils.getAccessibleMethod(sPackageParserClass, "generateInstrumentationInfo", sInstrumentationClass, int.class);
    return (InstrumentationInfo) method.invoke(null, instrumentation, flags);
}
项目:PluginM    文件:PackageParserApi15.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*     public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags) */
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:PluginM    文件:PackageParserApi16.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*    public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:PluginM    文件:PluginPackageParser.java   
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws Exception {
    Object data;
    synchronized (mInstrumentationObjCache) {
        data = mInstrumentationObjCache.get(className);
    }
    if (data != null) {
        return mParser.generateInstrumentationInfo(data, flags);
    }
    return null;
}
项目:PluginM    文件:PackageParserApi21.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*  public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    Method method = MethodUtils.getAccessibleMethod(sPackageParserClass, "generateInstrumentationInfo", sInstrumentationClass, int.class);
    return (InstrumentationInfo) method.invoke(null, instrumentation, flags);
}
项目:DroidPluginLibrary    文件:PackageParserApi15.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*     public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags) */
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:DroidPluginLibrary    文件:PackageParserApi16.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*    public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:DroidPluginLibrary    文件:PluginPackageParser.java   
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws Exception {
    Object data;
    synchronized (mInstrumentationObjCache) {
        data = mInstrumentationObjCache.get(className);
    }
    if (data != null) {
        return mParser.generateInstrumentationInfo(data, flags);
    }
    return null;
}
项目:DroidPluginLibrary    文件:PackageParserApi21.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*  public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    Method method = MethodUtils.getAccessibleMethod(sPackageParserClass, "generateInstrumentationInfo", sInstrumentationClass, int.class);
    return (InstrumentationInfo) method.invoke(null, instrumentation, flags);
}
项目:wheels    文件:PackageParserApi15.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*     public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags) */
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:wheels    文件:PackageParserApi16.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*    public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    return super.generateInstrumentationInfo(instrumentation, flags);
}
项目:wheels    文件:PluginPackageParser.java   
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws Exception {
    Object data;
    synchronized (mInstrumentationObjCache) {
        data = mInstrumentationObjCache.get(className);
    }
    if (data != null) {
        return mParser.generateInstrumentationInfo(data, flags);
    }
    return null;
}
项目:wheels    文件:PackageParserApi21.java   
@Override
public InstrumentationInfo generateInstrumentationInfo(
        Object instrumentation, int flags) throws Exception {
    /*  public static final InstrumentationInfo generateInstrumentationInfo(
        Instrumentation i, int flags)*/
    Method method = MethodUtils.getAccessibleMethod(sPackageParserClass, "generateInstrumentationInfo", sInstrumentationClass, int.class);
    return (InstrumentationInfo) method.invoke(null, instrumentation, flags);
}
项目:MiPushFramework    文件:PackageManagerWrapper.java   
@Override public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws NameNotFoundException {
    return mBase.getInstrumentationInfo(className, flags);
}
项目:MiPushFramework    文件:PackageManagerWrapper.java   
@Override public List<InstrumentationInfo> queryInstrumentation(String targetPackage, int flags) {
    return mBase.queryInstrumentation(targetPackage, flags);
}
项目:VirtualAPK    文件:LoadedPlugin.java   
LoadedPlugin(PluginManager pluginManager, Context context, File apk) throws PackageParser.PackageParserException {
    this.mPluginManager = pluginManager;
    this.mHostContext = context;
    this.mLocation = apk.getAbsolutePath();
    this.mPackage = PackageParserCompat.parsePackage(context, apk, PackageParser.PARSE_MUST_BE_APK);
    this.mPackage.applicationInfo.metaData = this.mPackage.mAppMetaData;
    this.mPackageInfo = new PackageInfo();
    this.mPackageInfo.applicationInfo = this.mPackage.applicationInfo;
    this.mPackageInfo.applicationInfo.sourceDir = apk.getAbsolutePath();
    this.mPackageInfo.signatures = this.mPackage.mSignatures;
    this.mPackageInfo.packageName = this.mPackage.packageName;
    if (pluginManager.getLoadedPlugin(mPackageInfo.packageName) != null) {
        throw new RuntimeException("plugin has already been loaded : " + mPackageInfo.packageName);
    }
    this.mPackageInfo.versionCode = this.mPackage.mVersionCode;
    this.mPackageInfo.versionName = this.mPackage.mVersionName;
    this.mPackageInfo.permissions = new PermissionInfo[0];
    this.mPackageManager = new PluginPackageManager();
    this.mPluginContext = new PluginContext(this);
    this.mNativeLibDir = context.getDir(Constants.NATIVE_DIR, Context.MODE_PRIVATE);
    this.mResources = createResources(context, apk);
    this.mClassLoader = createClassLoader(context, apk, this.mNativeLibDir, context.getClassLoader());

    tryToCopyNativeLib(apk);

    // Cache instrumentations
    Map<ComponentName, InstrumentationInfo> instrumentations = new HashMap<ComponentName, InstrumentationInfo>();
    for (PackageParser.Instrumentation instrumentation : this.mPackage.instrumentation) {
        instrumentations.put(instrumentation.getComponentName(), instrumentation.info);
    }
    this.mInstrumentationInfos = Collections.unmodifiableMap(instrumentations);
    this.mPackageInfo.instrumentation = instrumentations.values().toArray(new InstrumentationInfo[instrumentations.size()]);

    // Cache activities
    Map<ComponentName, ActivityInfo> activityInfos = new HashMap<ComponentName, ActivityInfo>();
    for (PackageParser.Activity activity : this.mPackage.activities) {
        activityInfos.put(activity.getComponentName(), activity.info);
    }
    this.mActivityInfos = Collections.unmodifiableMap(activityInfos);
    this.mPackageInfo.activities = activityInfos.values().toArray(new ActivityInfo[activityInfos.size()]);

    // Cache services
    Map<ComponentName, ServiceInfo> serviceInfos = new HashMap<ComponentName, ServiceInfo>();
    for (PackageParser.Service service : this.mPackage.services) {
        serviceInfos.put(service.getComponentName(), service.info);
    }
    this.mServiceInfos = Collections.unmodifiableMap(serviceInfos);
    this.mPackageInfo.services = serviceInfos.values().toArray(new ServiceInfo[serviceInfos.size()]);

    // Cache providers
    Map<String, ProviderInfo> providers = new HashMap<String, ProviderInfo>();
    Map<ComponentName, ProviderInfo> providerInfos = new HashMap<ComponentName, ProviderInfo>();
    for (PackageParser.Provider provider : this.mPackage.providers) {
        providers.put(provider.info.authority, provider.info);
        providerInfos.put(provider.getComponentName(), provider.info);
    }
    this.mProviders = Collections.unmodifiableMap(providers);
    this.mProviderInfos = Collections.unmodifiableMap(providerInfos);
    this.mPackageInfo.providers = providerInfos.values().toArray(new ProviderInfo[providerInfos.size()]);

    // Register broadcast receivers dynamically
    Map<ComponentName, ActivityInfo> receivers = new HashMap<ComponentName, ActivityInfo>();
    for (PackageParser.Activity receiver : this.mPackage.receivers) {
        receivers.put(receiver.getComponentName(), receiver.info);

        try {
            BroadcastReceiver br = BroadcastReceiver.class.cast(getClassLoader().loadClass(receiver.getComponentName().getClassName()).newInstance());
            for (PackageParser.ActivityIntentInfo aii : receiver.intents) {
                this.mHostContext.registerReceiver(br, aii);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    this.mReceiverInfos = Collections.unmodifiableMap(receivers);
    this.mPackageInfo.receivers = receivers.values().toArray(new ActivityInfo[receivers.size()]);
}
项目:VirtualAPK    文件:LoadedPlugin.java   
@Override
public List<InstrumentationInfo> queryInstrumentation(String targetPackage, int flags) {
    return this.mHostPackageManager.queryInstrumentation(targetPackage, flags);
}
项目:condom    文件:PackageManagerWrapper.java   
@Override public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws NameNotFoundException {
    return mBase.getInstrumentationInfo(className, flags);
}
项目:condom    文件:PackageManagerWrapper.java   
@Override public List<InstrumentationInfo> queryInstrumentation(String targetPackage, int flags) {
    return mBase.queryInstrumentation(targetPackage, flags);
}
项目:DroidPlugin    文件:PluginPackageParser.java   
public List<InstrumentationInfo> getInstrumentationInfos() {
    return new ArrayList<InstrumentationInfo>(mInstrumentationInfoCache.values());
}