加载apk,并启动apk中activity
来源:互联网 发布:淘宝延时收货多少天 编辑:程序博客网 时间:2024/05/29 15:14
加载apk,并启动apk中activity
private void loadPlugin() { String pluginFolder = Environment.getExternalStorageDirectory() + "/download/plugin.apk"; File file = new File(pluginFolder); if (file.exists()) { PackageInfo packageInfo = getPackageManager().getPackageArchiveInfo(file.getPath(), PackageManager.GET_ACTIVITIES | PackageManager.GET_SERVICES); if (packageInfo == null) { return; } String launcherActivityName = null; if (packageInfo.activities != null && packageInfo.activities.length > 0) { launcherActivityName = packageInfo.activities[0].name; } Intent intent = new Intent(); intent.setPackage(packageInfo.packageName); intent.setClassName(packageInfo.packageName, launcherActivityName); startActivity(intent);// DexClassLoader dexClassLoader = createDexClassLoader(file.getPath());// AssetManager assetManager = createAssetManager(file.getPath());// Resources resources = createResources(assetManager); } } private DexClassLoader createDexClassLoader(String dexPath) { File dexOutputDir = getDir("dex", Context.MODE_PRIVATE); String dexOutputPath = dexOutputDir.getAbsolutePath(); String libPath = getDir("lib", Context.MODE_PRIVATE).getAbsolutePath(); DexClassLoader loader = new DexClassLoader(dexPath, dexOutputPath, libPath, getClassLoader()); return loader; } private AssetManager createAssetManager(String dexPath) { try { AssetManager assetManager = AssetManager.class.newInstance(); Method addAssetPath = assetManager.getClass().getMethod("addAssetPath", String.class); addAssetPath.invoke(assetManager, dexPath); return assetManager; } catch (Exception e) { e.printStackTrace(); return null; } } private Resources createResources(AssetManager assetManager) { Resources superRes = getResources(); Resources resources = new Resources(assetManager, superRes.getDisplayMetrics(), superRes.getConfiguration()); return resources; }
0 0
- 加载apk,并启动apk中activity
- apk中启动apk
- apk中启动apk
- 启动APK的默认Activity
- 从未安装的APK中获取默认启动的Activity
- apk中启动第三方apk
- Android在init.rc中加入脚本开机安装APK并启动APK的服务
- 一个APK启动别一个APK的Activity
- android 一个apk启动另一个apk的activity
- 启动其他APK的Activity方法
- 启动其他APK的Activity方法
- 获取APK 的启动Activity名称
- Android启动apk时主activity多次调用
- 一个apk中启动另个apk的启动代码
- 在一个apk中调用另外一个apk中的activity
- 在一个apk中调用另外一个apk中的activity
- 在一个apk中调用另外一个apk中的activity
- 在一个apk中调用另外一个apk中的activity
- 产品经理必知
- 如何在Qt中使用自定义数据类型
- Java并发编程:深入剖析ThreadLocal
- 排序
- 有关于高德地图的大头针下落动画。还有就是高德地图的设置
- 加载apk,并启动apk中activity
- 贪心算法—Problem O
- java高级之线程范围内的共享数据
- 关于硬链接和软连接(符号链接)的区别
- rebmuNylgU.263
- 知识的迷宫 网络上的时间是如何度过的
- linux找不到网卡配置文件解决办法
- BZOJ 2001: [Hnoi2010]City 城市建设
- Android中自定义控件View