當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。