两个Android工程之间的调用
已经有一个 Android工程 A 。现在的工程 B 中 需要集成A工程作为一个模块。
怎么样实现?
首先我想 B工程中能否直接包含 A的apk文件, 发现不可行。
然后 想到 用jar包的方式,
1将A工程 的src文件夹下面所有的内容 导出 jar包。
2保留reg下的图片,xml 等资源文件, 还有 AndroidManifest.xml 的内容。
3将A工程的jiar包导入到B工程中,reg中的文件放到相应的文件夹下面。 AndroidManifest里面的Activity复制到B的对应文件。
这个时候存在两个工程 包名 不相同的情况,容易出错, 最好两个工程保持一致。
这样完成了 B 工程 对 A工程的集成。
另外: 查了一些相关的信息。
如果 AB 两个 APK 独立安装到 手机上。AB之间怎么交互可以通过Intent实现。
如下 是在B 工程中 启动 A工程中指定的 Activity 的方法。
Intent toAnother = new Intent("android.intent.action.MAIN");
toAnother.addCategory("android.intent.category.LAUNCHER");
toAnother.addCategory("android.com.androidjar");
// “android.com.androidjar” 为A工程中Activity属性里配置的 gategory name
List<ResolveInfo> toActivityList=getPackageManager()
.queryIntentActivities(toAnother, 0);
ResolveInfo anotherProgectActivity = toActivityList.get(0);//如果找不到对应的的ActivityName这里会数组越界
toAnother = new Intent().setClassName(anotherProgectActivity.activityInfo.packageName,
anotherProgectActivity.activityInfo.name);
startActivity(toAnother);
完毕 !
另外 还可以 通过 Intent 的 search 找到 指定 的 Activiy
- Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
- intent.putExtra(SearchManager.QUERY,"searchString")
//searchString为要启动的 Activity Name
3. startActivity(intent);
更多相关文章
- 长聚微嵌 DMA-210U Android(安卓)入门第一天------烧写uboot、ke
- Android中导入工程出现Project has no default.properties file!
- Android(安卓)利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- Android学习札记21:Android中App工程结构的搭建
- [置顶] Android(安卓)Studio Lint 自动检查清除冗余资源
- android 开发 socket发送会有部分乱码,串码,伴随着数据接收不完整
- 如何使用android的ndk建立native的开发环境
- Android对View进行截图并保存到本地相册
- 关于.jks和.keystore文件互相转换问题