Android中将Activity打入jar包供其它app调用的实现方法

Android打jar包通常不会出现将Activity打入jar包的情况,但若确有“工程A要调用工程B的Activity,工程B的代码又不能与A放在一起编译”的需要, Android也还是可以做到的,步骤如下:
1. 确定工程A和工程B是否有同名的Activity文件,若有,则要将其中一个工程的相应文件改名;
2. 确定工程A和工程B的res目录下是否有同名的layout/anim/drawable文件,若有,则要将其中一个工程的相应文件改名;
3. 确定工程A和工程B的values目录下的strings.xml文件中是否有同名的string name,若有,则也要将修改其中一个工程相应的string name。建议将被调用的工程的string name都加一个前缀;
4. 参照第3点,检查values目录下的colors.xml, styles.xml等文件,不要出现同样的color name和style name;
5. 对于工程B,被编译为jar包后,资源ID(比如R.id.xxxxx)不再是常量,所有需要确认工程B中是否有如下代码:
         switch (xxx) {
          case R.id.xxxxx
     若有,需要改为if (R.id.xxxxx == xxx);
6. 将工程B中的libs\armeabi目录下的.so文件转移到工程A的对应目录中,注意,是转移,不是复制;
7. 将工程B中的res目录合并到工程A的res目录:
     a. 对于仅存在于工程B中的文件或目录,则将其复制到工程A;
     b. 对于两边都存在的文件,则需要将工程B中的文件内容添加到工程A的对于文件中;
8. 将工程B的AndroidManifest.xml中的内容添加到工程A的AndroidManifest.xml中,包括uses-permission, activity等;
9. 将工程A和工程B的package name改为一样;
10. 选择工程B,打开属性对话框,在Android页面勾选“Is Library”,然后执行Project菜单中的Build Project操作;
11. 将工程B中的libs目录下的.jar文件复制到工程A的libs目录中,并将工程B的bin目录下新生成的.jar文件也复制到工程A的libs目录中,更新.classpath;
12. 在工程A中实现对工程B的Activity的调用逻辑,编译运行工程A。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值