本文整理匯總了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);
}
示例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);
}
示例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;
}
}
示例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;
}
示例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();
}