当前位置:编程学习 > wap >>

Android 如何调用一个已经安装的apk中的方法

    在项目实做中我碰到这样一个问题,我从晚上下载了一个apk然后安装到模拟器上,假设这已安装的apk为A.apk,我在我的程序里想调用A.apk中的类B.class中的非静态方法C,如何调用? --------------------编程问答-------------------- 如果只是调apk的话
ComponentName comp = new ComponentName("xxxx", "xxxx");//第一个参数是app包名,第二个是你要掉的activity的包名
Intent intent = new Intent(action);
intent.setComponent(comp);
startActivity(intent);

如果你要调用某个方法的话建议你使用aidl --------------------编程问答-------------------- 在JAVA中要调用一个类的非静态方法,你首先要实例化此类,然后用实例化的对象去调用其方法。
如:

B b = new B();
b.c(); --------------------编程问答-------------------- 楼主说调用另一个apk类的静态方法,另一个apk不是aidl的话,好像不太现实吧 --------------------编程问答-------------------- --------------------编程问答-------------------- 好像没法实现 --------------------编程问答-------------------- 1楼给以的代码好像只能调用另外一个apk中的类,这个我已经实现了,现在需要调用那个类里面的非静态方法。  你说建议使用aidl  能不能说的更清楚一点,比如说给我个例子 --------------------编程问答-------------------- 应该不能调用具体的方法,但是可以具体到某个activity,你可以专门写个activity用来调用那个方法的呀 --------------------编程问答-------------------- 呵呵 虽然问题还是没有解决 但是还是要谢谢大家  我现在遇到的关键问题是那个要调用的apk是第三方开发的,我没有源码 也不可能改到源码  --------------------编程问答--------------------
引用 8 楼 panyongjie2577 的回复:
呵呵 虽然问题还是没有解决 但是还是要谢谢大家  我现在遇到的关键问题是那个要调用的apk是第三方开发的,我没有源码 也不可能改到源码
那你怎么能调用?你知道人家是怎么写的呢? --------------------编程问答-------------------- 可以去反编译,一些so里的方法还是可以调用的,只要知道so对应的jni接口名称和参数,返回值,就能用了。
如果是主程序里自己写的static方法,那不行 --------------------编程问答-------------------- 今天无意看到的文章 --------------------编程问答-------------------- 楼上的,你看到的这个,不行,楼主说要调用方法,不是调用activity,调用方法,那就是提供一个接口暴露给调用者,就是一个AIDL服务啊 --------------------编程问答--------------------
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,