V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MirageTurtle
V2EX  ›  Android

做 Android 测试,如何搭建模拟不同平台的模拟环境(例如华为、小米、三星等等)?

  •  
  •   MirageTurtle · 15 天前 · 2479 次点击

    本人 Android 小白,课题需要,最近在学习相关知识,想咨询一下环境搭建上的问题。

    Y:

    研究课题可能需要研究某些软件在不同平台上的行为(考虑到软件监测平台然后表现不同的行为),所以可能需要搭建模拟不同平台的测试环境。 另外可能还需要安装不同的 ROM 来进行测试,或者研究 ROM 本身。

    简单的搜索结果看上去似乎并不太现实?

    X:

    具体到现在要做的东西就是,观察到某个华为(型号+版本)的某个行为(可能软件可能系统),现在要复现。

    其他

    老板是愿意买真机的,实验室也有两台机器(非华为),但考虑到如果要做很多平台的测试的话,买真机可能确实是一笔大开销。

    希望各位大佬能提供一些方向和思路,关键词也行,感激不尽!

    期望的实验平台是 Linux ,当然其他的也行,能解决模拟环境的话,这东西感觉不是大问题。

    本人真的小白,可能有些名词使用不当或表达不清,还请各位大佬见谅。(真的尽力在提好问题了

    第 1 条附言  ·  15 天前
    中午开了个会,回来发现好多朋友回复,这里统一感谢各位哈哈 :)

    可能没描述清楚, **测试主要测试安全方面的** ,所以可能涉及到 ROOT 上的一些事情。

    + 关于云真机(或类似的服务),我打算最近测试一下看可不可用吧,可能有一些测试时可以在不 ROOT 的情况下做的,但毕竟有限
    + 各个 vendor 提供的开发/测试环境,这个确实可以调查一下,也感谢各位提供的信息。
    + 真机的话,肯定能用真机还是真机,至于二手还是新机可能得跟老板商量一下,毕竟不是我花钱哈哈哈哈

    1. 想咨询一下,比如华为刷小米之后,会和直接买小米有什么区别吗?如果有具体示例就更好了(不一定是具体案例)。这主要涉及到如果买真机的话,是华为小米三星 pixel 各种各样各买一个还是买一两个跑。
    2. 虚拟机方案有什么推荐吗?或者说虚拟机方案有没有可能达到这个目的啊?
    31 条回复    2024-05-21 22:35:58 +08:00
    phpfpm
        1
    phpfpm  
       15 天前
    买甄姬吧
    lisongeee
        2
    lisongeee  
       15 天前
    可以首先制定详细的测试流程,然后花几百块钱招募几个持有对应手机的测试者

    优点就是不用买手机,缺点是每次都得几百

    咸鱼直接买二手机行不
    AoEiuV020JP
        3
    AoEiuV020JP  
       15 天前
    华为开发工具有官方免费的云手机,虽然镜像少还不一定可用,但有就不错了,
    MirageTurtle
        4
    MirageTurtle  
    OP
       15 天前
    @phpfpm 真机的话,我担心不同平台硬件也会有影响(就比如华为机子刷了小米这种然后表现可能不一致),换句话说,如果有影响,模拟器也有影响,那么我倾向于模拟器(因为组里不是所有课题都逆向,我担心 root 了之后对别的同学有影响)。

    所以,我想确定一下,我是否可以通过买一个比较好的测试机,然后通过刷不同系统来做到比较高还原度的测试嘞?
    MirageTurtle
        5
    MirageTurtle  
    OP
       15 天前
    @lisongeee 可能不太行,这个测试偏安全测试,不像开发,所以可能得 root 啊之类的。二手机器倒是不错的选择,到时候跟老板聊聊,不过不知道走报销流程好不好走。
    MirageTurtle
        6
    MirageTurtle  
    OP
       15 天前
    @AoEiuV020JP 对,我搜的时候也注意到了来着,但还没仔细调研,这两天看看能不能用。但感觉做安全测试可能不太方便。
    lm930129
        7
    lm930129  
       15 天前
    一般是写测试脚本,然后跑云真机,云真机按次付费的,所以还行,然后你也可以选择版本,手机型号等,可以测试兼容性。测试脚本也可以使用混沌测试,关于这块,最早是雪球的测试大佬搞了一个测试脚本,可以登录页自定义脚本,其他页面完全由脚本自行判断层级关系,自动测试,并截图。然后可以用截图对比等功能,判断是否有错误。

    然后如果是客户上报的那种指定机型错误的,也可以用云真机的在线操作功能,等于你租用云真机,进行在线调试,云真机是你上传 apk 后,他自动帮你安装好,然后启动,你远程操作 app 。
    idonttellyou
        8
    idonttellyou  
       15 天前
    买买买
    iOCZS
        9
    iOCZS  
       15 天前
    有那种云测试平台,可以提供各种机型,但是要花钱租时长
    davin
        10
    davin  
       15 天前
    一堆真机的话,充电维护都费事费力,各种云测平台是首选
    wwxwlw
        11
    wwxwlw  
       15 天前
    pckillers
        12
    pckillers  
       15 天前
    曾经用过云测平台,bug 浮现率低,后来再次打开网站发现不是转型就是倒闭了。

    主要是特定机型+老系统版本的 Bug 多,以及各种依赖微信登录,第三方跳转的 bug 五花八门。

    还是做好远程日志采集自动上报吧,想换手机复现 Bug 太难了。
    paopjian
        13
    paopjian  
       15 天前
    还研究 ROM 研究 Root 研究华为装 MIUI,这已经不是一般的开发者了
    kimzn33251
        14
    kimzn33251  
       15 天前
    手机不想买还可以租
    flyqie
        15
    flyqie  
       15 天前 via Android
    华为刷小米?

    我没听错? 你自己好好学习下 aosp 吧,aosp 这边并不像你想的各厂商之间这么开放。

    你刷进去大概率就是可逆性砖块
    MirageTurtle
        16
    MirageTurtle  
    OP
       15 天前
    @flyqie 首先哥们,没别要攻击性这么强,我承认我是小白,我也提前表态了,您建议我学习某个东西我也一定会虚心接受,但我希望您下次建议新手学习某项知识时不是这种方式。

    回到问题,我也确实了解到如今的环境不想快十年前我自己玩安卓刷机子那么容易了,所以我一直在问虚拟机类似的方案能否实现,因为实现不了我就只能每个厂商买个机子。
    qianxaingmoli
        17
    qianxaingmoli  
       15 天前
    支付宝租
    653513754
        18
    653513754  
       15 天前
    @MirageTurtle 虚拟机类似的方案都是模拟接口返回数据,和真机还是有很大区别的
    okakuyang
        19
    okakuyang  
       15 天前 via iPhone
    做 app 开发一般是去淘宝租真机 一周 一个月 ,或者咸鱼买二手 ,财大气粗公司会直接买新机 ,出一台买一台 ,一般是做手机相关硬件的厂。乱刷机当然是不行的,一个是没有 rom 包 ,rom 包收费 ,rom 包被魔改,刷进去变砖头总总。
    sevenyangcc
        20
    sevenyangcc  
       15 天前
    买一堆二手机,之后你还会发现,还要买不同的型号,再之后发现,还要买同型号不同的 android 版本才能基本覆盖测试需求。
    Forgo7ten
        21
    Forgo7ten  
       15 天前
    国内现在就小米和一加方便 root 呀,另外如果是 android 安全测试的话,op 可以留个联系方式,交流一下
    yyws2012
        22
    yyws2012  
       14 天前 via Android
    @Forgo7ten 小米已经不方便了,国行就剩一加和 Motorola 了
    angrylid
        23
    angrylid  
       14 天前 via Android
    非主流厂商先按下不表,国产手机提供 BootLoader 解锁的只有部分 OPPO 系和从前的小米。华为,荣耀与 vivo 均不提供这个功能。
    darkengine
        24
    darkengine  
       14 天前
    那可真有得搞了,先不考虑不同厂家的不同机型。即使是同一机型,不同版本(甚至是小版本)厂家的系统都可能有行为上的差异。
    JensenQian
        25
    JensenQian  
       14 天前
    三星国内用户很少的
    刷机的话,现在刷机很少刷,那部分人也很少
    你几个主流的品牌就行
    现在国内主流品牌就华米 ov ,这四个,剩下的没啥必要了
    Yadomin
        26
    Yadomin  
       14 天前 via Android
    GSI 配合 DSU 实现系统切换?
    不过虽然有华米 ov 的 gsi 镜像,但是不一定能启动
    BernieDu
        27
    BernieDu  
       14 天前   ❤️ 1
    @JensenQian 确实,三星少就不测试,这就是当年知乎在三星闪退了大半年的原因
    flyqie
        28
    flyqie  
       14 天前 via Android
    @MirageTurtle #16

    不好意思,我风格就这样,很抱歉让你误以为有攻击性,发的时候确实没想到这么多,谢谢建议,以后一定会改。

    回到问题,虚拟机是模拟不了的,这也是为什么市面上会有真机云测平台,hw 这边的东西有很多都是闭源的,这也是为什么 android 有 hal 层的原因,这种情况下肯定是不可能模拟的。

    如果安全研究的话,很遗憾,只能买真机,因为云测平台实现不了这种需求。

    各个厂商差异确实挺多,aosp 本身的生态就是很碎片化的,相互之间兼容性并不完善。
    MirageTurtle
        29
    MirageTurtle  
    OP
       14 天前
    @flyqie 感谢,大概知道了,之后跟团队和老板聊聊看怎么解决吧,可能还是得买真机了😂hw 那边我知道因为为了摆脱 google 那一套所以很多东西不一样了,下周跟华为那边谈一下看能不能曲线救国,不太行了就真机吧。


    @flyqie
    @Forgo7ten 大佬愿意交流的话可以直接加我,就我 id (不太知道站里有没有什么违规词检测,应该能懂,多的词就不说了😂
    wsseo
        30
    wsseo  
       13 天前
    只能买二手真机
    phpfpm
        31
    phpfpm  
       10 天前
    @MirageTurtle 绝无这种可能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2432 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:29 · PVG 20:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.