两个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工程的集成。   


另外: 查了一些相关的信息。
如果 A  B 两个 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);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值