背景:
1、打算用 python 直接调用安卓 jar 中的 api,以达到深入测试目的。
方法:
1、利用 jpype 与 jar 交互,发现 apk 的 jar 会依赖安卓系统的类库
2、下载 android-2.3.1.jar,与 apk 的 jar 同时加载
3、发现 android.app.Activity 只有一个五参构造函数,但是其直接 throw 异常 ,同时又需要这个 Activity 的一个实例,作为 apk jar 的入参。
有没有老司机有相关经验的,来指导一下,不胜感激!!!
或者老哥们过来提供下其他思路也行,不胜感激!!!
救救孩子吧,老哥们
不能调用,SDK 内置的 jar 是个空实现的,你需要在安卓上跑你得 Python 脚本
原理上就走不通了。
android.jar 内置的全是接口,里面都是空实现,真实实现只有在 android 操作系统下才会被调用到。而且有可能这个 android.jar 替换为真实实现是依赖 android 系统运行应用使用的 jvm 虚拟机的,所以在 android 下跑 python 也不一定能走得通的。
不知道你想测试什么,为啥要调用系统自带的 api ?如果是想拉起 activity 之类的在应用内的操作,建议直接在 app 项目里写单测?
想用 python 接安卓 SDK,直接测试 SDKjar 中的 api。这些 api 的入参需要一个 activity 的实例
首先为何一定要用 python 呢,为什么要测试系统层的 api,要达到什么目的,其次作为一个工程师不应被语言限制住,需用什么语言就要会什么语言。
你这孩子我们救不了
你做的是 sdk 测试? 那我告诉你这样的没用
测试的对象是个 sdk,供 app 调用的。不想只是通过带有简单 UI 的 demo 测试。打算绕过 UI
用反射,动态执行就可以了
我之前弄过通用的 sdk 测试,把 java 调用封装成 http api 用 postman 测试
非 java 基础数据类型,需要自己写动态构造函数实现传参
你参考一下 @Suneo 的方法,我们也是这么搞的,写个单独的工程,在工程中搞个调用 sdk 的服务,然后外部用 http 调用来测试