Android之aar依赖篇-2

系列

1、 Android之aar依赖篇-1

一、构建apk和安装apk的区别

  • apk构建出来,会包含所有的abi文件夹。

  • 直接操作ide安装apk到终端上,ide会根据终端CPU支持的abi来决定apk被安装到终端上后会包含的abi文件夹。

    • 比如,终端支持的abi有[arm64-v8a,armeabi-v7a,armeabi],但是apk中只有[armeabi],那么,apk安装到终端上后,是不存在任何abi文件夹的。
      待完善...

    • 手动安装apk到终端上,被安装到终端上后,会保留apk中的[armeabi]
      待完善...

援引:Android 支持的 ABI 的应用(ABI: 设备的CPU类型)

获取Android终端支持的所有abi:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
        //An ordered list of ABIs supported by this device. The most preferred ABI is the first element in the list.
        //此设备支持的ABI的有序列表。最首选的ABI是列表中的第一个元素。
    String[] supportedAbis = Build.SUPPORTED_ABIS;
    Log.d("tag", "CPU_ABIS length = " + supportedAbis.length);
    for (String s:supportedAbis){
        Log.d("tag", "CPU_ABI elem = " + s);
    }
}

输出结果:
2021-08-13 19:33:33.363 20964-20964/com.example.nmcard D/tag: CPU_ABIS length = 3
2021-08-13 19:33:33.363 20964-20964/com.example.nmcard D/tag: CPU_ABI elem = arm64-v8a
2021-08-13 19:33:33.363 20964-20964/com.example.nmcard D/tag: CPU_ABI elem = armeabi-v7a
2021-08-13 19:33:33.363 20964-20964/com.example.nmcard D/tag: CPU_ABI elem = armeabi

获取Android终端默认的指令集名称:

//he name of the instruction set (CPU type + ABI convention) of native code.
//本机代码的指令集名称(CPU类型+ABI约定)。
String CPU_ABI = android.os.Build.CPU_ABI;
Log.d("tag", "CPU_ABI = " + CPU_ABI);

输出结果:
2021-08-13 19:33:33.363 20964-20964/com.example.nmcard D/tag: CPU_ABI = arm64-v8a

获取Android终端第二个指令集名称:

//The name of the second instruction set (CPU type + ABI convention) of native code.
//本机代码的第二个指令集(CPU类型+ABI约定)的名称。
String CPU_ABI2 = android.os.Build.CPU_ABI2;
Log.d("tag", "CPU_ABI2 = " + CPU_ABI2);

输出结果:
//没看错,下面一行没有值
2021-08-13 19:48:16.938 22299-22299/com.example.nmcard D/tag: CPU_ABI2 = 


你可能感兴趣的:(Android之aar依赖篇-2)