android程序共享activity实现插件化
来源:互联网 发布:mac键盘按键拆卸 编辑:程序博客网 时间:2024/06/18 16:58
上一篇我们演示了如何共享一个没有入口activity的程序,并将其中一个activity共享可被其他程序调用,调用方式如下:
Intent i = new Intent("com.example.plugin.MainActivity", Uri.parse("plugin://调用其他应用程序的Activity"));i.addCategory(Intent.CATEGORY_DEFAULT);startActivity(i);
这一篇我们以此为基础,演示下如何调用此activity。
应用打开后效果如上,当点击install时,我们安装已经放在sd卡上的apk文件,也就是对外提供activity调用的apk文件。点击卸载时,我们卸载这个apk程序。
点击start,将调用这个apk中共享的activity。运行效果如下:
安装,卸载,及调用其他程序共享出来的activity代码演示如下:
@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.install:String plugin = "Plugin.apk";String fileName = Environment.getExternalStorageDirectory() + "/" + plugin;Uri uri = Uri.fromFile(new File(fileName));Intent intent = new Intent(Intent.ACTION_VIEW);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setDataAndType(uri, "application/vnd.android.package-archive");startActivity(intent);break;case R.id.uninstall:Uri packageURI = Uri.parse("package:com.example.plugin");Intent intent2 = new Intent(Intent.ACTION_DELETE, packageURI);startActivity(intent2);break;case R.id.start:Intent i = new Intent("com.example.plugin.MainActivity", Uri.parse("plugin://调用其他应用程序的Activity"));i.addCategory(Intent.CATEGORY_DEFAULT);startActivity(i);break;default:break;}}
其中manifest文件需要声明以下权限:
<permission android:name="android.permission.INSTALL_PACKAGES"></permission> <permission android:name="android.permission.DELETE_PACKAGES"></permission>
如果我们在两个程序的manifest文件节点中声明属性android:sharedUserId="com.example.testuid"为同一个uid,方便在他们之间程序之间共享内存。
最好是使用相同的android:sharedUserId,插件可以方便的获取主应用的资源、数据库等等。
综合以上,我们可以由共享程序,调用程序实现插件化。由宿主程序统一管理(安装,删除,调用)插件。
- android程序共享activity实现插件化
- Android Service和activity实现数据共享
- android 通过代理activity的方式实现插件化
- android 通过代理activity的方式实现插件化
- Android activity 共享权限
- Android 实现跨程序数据共享栗子
- android基于Activity共享元素切换效果的实现
- Android中实现多个Activity共享数据
- Android通过共享用户ID来实现多Activity进程共享
- Android通过共享用户ID来实现多Activity进程共享
- Android通过共享用户ID来实现多Activity进程共享
- Android通过共享用户ID来实现多Activity进程共享
- Android通过共享用户ID来实现多Activity进程共享
- Android通过共享用户ID来实现多Activity进程共享
- Android通过共享用户ID来实现多Activity进程共享
- Android通过共享用户ID来实现多个Activity进程共享
- [转]Android通过共享用户ID来实现多个Activity进程共享
- 【转】Android通过共享用户ID来实现多Activity进程共享
- CentOS6 下面安装Openstack云计算平台 - Essex
- 随笔
- 黑马程序员c#学习6
- stringbuffer capacity()的疑问
- maven官方入门demo,maven in 5 minutes
- android程序共享activity实现插件化
- Group by与having理解
- ZSTU-2331:Knight Moves
- linux常用命令
- mini2440中busybox和yaffs2文件系统的移植
- Windows开发应用(3)页面参数传递
- OpenStack Nova开发与测试环境搭建
- 一个应届计算机毕业生的2012求职之路
- CentOS安装curlftpfs,映射远程ftp到本地目录