美文网首页
[QA]适配测试

[QA]适配测试

作者: yumiii_ | 来源:发表于2019-04-24 18:07 被阅读0次

    一、手机和apk位数相关

    1.检测应用是运行在32位环境还是64位环境

    当你下载安装一个App之后,从Launcher启动该应用,系统会由Zygote分叉出一个子进程来提供App运行的虚拟机和Runtime环境。与32位系统不同的是,在64系统中会同时存在两个Zygote进程——zygote和zygote64,分别对应32位和64位应用。所以,要进行App的32/64位检测,只需要看它的父进程是哪个Zygote即可。
    adb shell ps|grep zygote 列出两个进程的PPID。
    adb shell ps|grep PPID 通过过滤PPID的值查到终端所有的32/64位的应用。

    2.判断手机是32位的手机还是64位的手机
    判断标准:以指令集与cpu为最高优先级,若两者不一致再判断lib,有lib64则认为是64位手机。
    1⃣️查看CPU型号:adb shell cat proc/cpuinfo
    我的:

    Processor   : AArch64 Processor rev 2 (aarch64)
    processor   : 0
    BogoMIPS    : 3.84
    Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant : 0x0
    CPU part    : 0xd03
    CPU revision    : 4
    
    processor   : 1
    BogoMIPS    : 3.84
    Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant : 0x0
    CPU part    : 0xd03
    CPU revision    : 4
    
    processor   : 2
    BogoMIPS    : 3.84
    Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant : 0x0
    CPU part    : 0xd03
    CPU revision    : 4
    
    processor   : 3
    BogoMIPS    : 3.84
    Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant : 0x0
    CPU part    : 0xd03
    CPU revision    : 4
    
    processor   : 4
    BogoMIPS    : 3.84
    Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant : 0x0
    CPU part    : 0xd09
    CPU revision    : 2
    
    processor   : 5
    BogoMIPS    : 3.84
    Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant : 0x0
    CPU part    : 0xd09
    CPU revision    : 2
    
    processor   : 6
    BogoMIPS    : 3.84
    Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant : 0x0
    CPU part    : 0xd09
    CPU revision    : 2
    
    processor   : 7
    BogoMIPS    : 3.84
    Features    : fp asimd evtstrm aes pmull sha1 sha2 crc32
    CPU implementer : 0x41
    CPU architecture: 8
    CPU variant : 0x0
    CPU part    : 0xd09
    CPU revision    : 2
    

    传送门:AArch64 是什么
    划重点:
    AArch64 64 位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持
    AArch32 32 位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持
    2⃣️指令集

    ARM公司目前的指令集有ARMv5、ARMv6、ARMv7、ARMv8...,
    而构架则是很多,目前是Cortex-A5,Cortex-A7,Cortex-A8,Cortex-A9,Cortex-A12,Cortex-A15,Cortex-A53,Cortex-A57。
    但构架年年换,指令集十年(或更久)一换,Cortex-A5,Cortex-A7,Cortex-A8,Cortex-A9,Cortex-A12,Cortex-A15都是基于ARMv7指令集的,32位的.
    而最新的Cortex-A53,Cortex-A57则是基于ARMv8指令集的,这个是就是我们说的64位,代表着未来.

    3.libs存放的是项目中用到的jar包,.so是用户层的动态库,是C++的函数库,ABI定义了.so文件如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。
    当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装
    应该为每个ABI目录提供对应的.so文件,so库要和目录一一对应。
    传送门:android项目框架中libs之**.so

    相关文章

      网友评论

          本文标题:[QA]适配测试

          本文链接:https://www.haomeiwen.com/subject/zutngqtx.html