当前位置: 首页>>代码示例>>Java>>正文


Java Application.getApplicationInfo方法代码示例

本文整理汇总了Java中android.app.Application.getApplicationInfo方法的典型用法代码示例。如果您正苦于以下问题:Java Application.getApplicationInfo方法的具体用法?Java Application.getApplicationInfo怎么用?Java Application.getApplicationInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.app.Application的用法示例。


在下文中一共展示了Application.getApplicationInfo方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: installExceptDefaultProcess

import android.app.Application; //导入方法依赖的package包/类
/**
 * Install the condom protection for current process if it is not the default process.
 *
 * <p>This method must be called in {@link Application#onCreate()} to eliminate potential leakage.
 */
public static void installExceptDefaultProcess(final Application app, final CondomOptions options) {
	validateCondomOptions(options);
	final String current_process_name = getProcessName(app);
	if (current_process_name == null) return;
	final String default_process_name = app.getApplicationInfo().processName;
	if (! current_process_name.equals(default_process_name)) install(app, current_process_name, options);
}
 
开发者ID:Trumeet,项目名称:MiPushFramework,代码行数:13,代码来源:CondomProcess.java

示例2: installExcept

import android.app.Application; //导入方法依赖的package包/类
/**
 * Install the condom protection for current process if its process name matches. This method should be called in {@link Application#onCreate()}.
 *
 * @param process_names list of processes where Condom process should NOT be installed, in the form exactly as defined
 *                      by <code>"android:process"</code> attribute of components in <code>AndroidManifest.xml</code>.
 *                      <b>BEWARE: Default process must be explicitly listed here if it is expected to be excluded.</b>
 */
public static void installExcept(final Application app, final CondomOptions options, final String... process_names) {
	if (process_names.length == 0) throw new IllegalArgumentException("At lease one process name must be specified");
	validateCondomOptions(options);
	final String current_process_name = getProcessName(app);
	if (current_process_name == null) return;
	for (final String process_name : process_names)
		if (! current_process_name.equals(getFullProcessName(app, process_name))) {
			install(app, current_process_name, options);
			return;
		}

	if ((app.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) validateProcessNames(app, process_names);
}
 
开发者ID:Trumeet,项目名称:MiPushFramework,代码行数:21,代码来源:CondomProcess.java

示例3: checkLoadKernalDebugPatch

import android.app.Application; //导入方法依赖的package包/类
public static boolean checkLoadKernalDebugPatch(Application application){
    if(Build.VERSION.SDK_INT<21) {
        //暂时只支持art设备的debug调试
        return false;
    }

    boolean loadKernalPatch = false;
    try {
        ApplicationInfo app_info = application.getApplicationInfo();
        boolean debug = (app_info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
        if(debug){
            File debugBundleDir = new File(KernalConstants.baseContext.getExternalFilesDir("debug_storage"),KERNAL_BUNDLE_NAME);
            File patchFile = new File(debugBundleDir,"patch.zip");
            if(patchFile.exists()){
                loadKernalPatch = true;
                KernalBundle bundle = new KernalBundle();
                DexFile dexFile = (DexFile)KernalConstants.dexBooster.loadDex(KernalConstants.baseContext,KernalConstants.baseContext.getApplicationInfo().sourceDir,
                                                                              new File(patchFile.getParent(),"base.dex").getAbsolutePath(),0,true) ;

                File internalDebugBundleDir = new File(new File(application.getFilesDir(), "debug_storage"), KERNAL_BUNDLE_NAME);
                internalDebugBundleDir.mkdirs();
                DexFile patchDexFile = (DexFile)KernalConstants.dexBooster.loadDex(KernalConstants.baseContext,patchFile.getAbsolutePath(),
                        new File(internalDebugBundleDir,"patch.dex").getAbsolutePath(),0,true) ;
                bundle.installKernalBundle(KernalConstants.baseContext.getClassLoader(), patchFile, new DexFile[]{patchDexFile,dexFile}, null,
                                           true /*(app_info.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0*/);
                if(bundle.needReplaceClassLoader(application)){
                    NClassLoader loader = new NClassLoader(".",KernalBundle.class.getClassLoader().getParent());
                    try {
                        NClassLoader.replacePathClassLoader(KernalConstants.baseContext,KernalBundle.class.getClassLoader(),loader);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
                bundle.prepareRuntimeVariables(application);
                Class DelegateResourcesClazz = application.getClassLoader().loadClass("android.taobao.atlas.runtime.DelegateResources");
                DelegateResourcesClazz.getDeclaredMethod("addApkpatchResources", String.class)
                        .invoke(DelegateResourcesClazz, patchFile.getAbsolutePath());
                Toast.makeText(KernalConstants.baseContext,"当前处于DEBUG调试状态,不支持动态更新,清除数据可恢复",Toast.LENGTH_LONG).show();
            }
        }
    } finally {
        return loadKernalPatch;
    }
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:45,代码来源:KernalBundle.java

示例4: isDebugMode

import android.app.Application; //导入方法依赖的package包/类
public static boolean isDebugMode(Application application){
    final ApplicationInfo app_info = application.getApplicationInfo();
    return (app_info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:5,代码来源:WrapperUtil.java

示例5: init

import android.app.Application; //导入方法依赖的package包/类
/**
 * Init the framework
 * 
 * @param application
 * @return
 * @throws Exception
 */
public void init(Application application,boolean reset) throws AssertionArrayException, Exception {
    if(application==null){
        throw new RuntimeException("application is null");
    }
    ApplicationInfo app_info = application.getApplicationInfo();
    sAPKSource = app_info.sourceDir;
    boolean DEBUG = (app_info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
    RuntimeVariables.androidApplication = application;
    RuntimeVariables.delegateResources  = application.getResources();
    DelegateResources.walkroundActionMenuTextColor(RuntimeVariables.delegateResources);
    Framework.containerVersion = RuntimeVariables.sInstalledVersionName;
    ClassLoader cl = Atlas.class.getClassLoader();
    Framework.systemClassLoader = cl;
    // defineAndVerify
    String packageName = application.getPackageName();
    // 
    DelegateClassLoader newClassLoader = new DelegateClassLoader(cl);
    // init RuntimeVariables
    RuntimeVariables.delegateClassLoader = newClassLoader;

    AndroidHack.injectClassLoader(packageName, newClassLoader);
    AndroidHack.injectInstrumentationHook(new InstrumentationHook(AndroidHack.getInstrumentation(), application.getBaseContext()));
    // add listeners
    bundleLifecycleHandler = new BundleLifecycleHandler();
    Framework.syncBundleListeners.add(bundleLifecycleHandler);
    frameworkLifecycleHandler = new FrameworkLifecycleHandler();
    Framework.frameworkListeners.add(frameworkLifecycleHandler);

    try {
        ActivityManagerDelegate activityManagerProxy = new ActivityManagerDelegate();

        Object gDefault = null;
        if(Build.VERSION.SDK_INT>25 || (Build.VERSION.SDK_INT==25&&Build.VERSION.PREVIEW_SDK_INT>0)){
            gDefault=AtlasHacks.ActivityManager_IActivityManagerSingleton.get(AtlasHacks.ActivityManager.getmClass());
        }else{
            gDefault=AtlasHacks.ActivityManagerNative_gDefault.get(AtlasHacks.ActivityManagerNative.getmClass());
        }
        AtlasHacks.Singleton_mInstance.hijack(gDefault, activityManagerProxy);
    }catch(Throwable e){}
    AndroidHack.hackH();
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:49,代码来源:Atlas.java


注:本文中的android.app.Application.getApplicationInfo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。