系列
一、构建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 =
网友评论