Python python 测试安卓 jar 的疑问,有没有大佬来救救孩子

phoenix · 2021年01月18日 · 最后由 剪烛 回复于 2021年02月02日 · 9268 次阅读

背景:
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 的入参。
有没有老司机有相关经验的,来指导一下,不胜感激!!!
或者老哥们过来提供下其他思路也行,不胜感激!!!

共收到 15 条回复 时间 点赞

救救孩子吧,老哥们😭

不能调用,SDK 内置的 jar 是个空实现的,你需要在安卓上跑你得 Python 脚本

17楼 已删除

原理上就走不通了。

android.jar 内置的全是接口,里面都是空实现,真实实现只有在 android 操作系统下才会被调用到。而且有可能这个 android.jar 替换为真实实现是依赖 android 系统运行应用使用的 jvm 虚拟机的,所以在 android 下跑 python 也不一定能走得通的。

不知道你想测试什么,为啥要调用系统自带的 api ?如果是想拉起 activity 之类的在应用内的操作,建议直接在 app 项目里写单测?

对 陈恒捷 回复

想用 python 接安卓 SDK,直接测试 SDKjar 中的 api。这些 api 的入参需要一个 activity 的实例

首先为何一定要用 python 呢,为什么要测试系统层的 api,要达到什么目的,其次作为一个工程师不应被语言限制住,需用什么语言就要会什么语言。

你这孩子我们救不了

你做的是 sdk 测试? 那我告诉你这样的没用

对 blues_mli 回复

测试的对象是个 sdk,供 app 调用的。不想只是通过带有简单 UI 的 demo 测试。打算绕过 UI😂

对 王_test 回复

的确想测试 SDK,老哥有没有更好的思路分享下😀

对 phoenix 回复

写个壳,去安卓系统去运行,sdk 测试不都这样吗?

用反射,动态执行就可以了

我之前弄过通用的 sdk 测试,把 java 调用封装成 http api 用 postman 测试

非 java 基础数据类型,需要自己写动态构造函数实现传参

对 剪烛 回复

会说就多说一点呢😮

你参考一下 @Suneo 的方法,我们也是这么搞的,写个单独的工程,在工程中搞个调用 sdk 的服务,然后外部用 http 调用来测试

phoenix 关闭了讨论 09月26日 09:55
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册。