Android examples for Android OS:OS Build
Check if system libc.so is 32 bit or 64 bit
//package com.java2s; import android.util.Log; import java.io.File; import java.io.FileInputStream; public class Main { private static final int EI_CLASS = 4; private static final int ELFCLASS64 = 2; /** The system libc.so file path */ private static final String SYSTEM_LIB_C_PATH = "/system/lib/libc.so"; private static final String SYSTEM_LIB_C_PATH_64 = "/system/lib64/libc.so"; private static boolean LOGENABLE = false; /**//from ww w .j av a 2 s . c o m * Check if system libc.so is 32 bit or 64 bit */ private static boolean isLibc64() { File libcFile = new File(SYSTEM_LIB_C_PATH); if (libcFile != null && libcFile.exists()) { byte[] header = readELFHeadrIndentArray(libcFile); if (header != null && header[EI_CLASS] == ELFCLASS64) { return true; } } File libcFile64 = new File(SYSTEM_LIB_C_PATH_64); if (libcFile64 != null && libcFile64.exists()) { byte[] header = readELFHeadrIndentArray(libcFile64); if (header != null && header[EI_CLASS] == ELFCLASS64) { return true; } } return false; } private static byte[] readELFHeadrIndentArray(File libFile) { if (libFile != null && libFile.exists()) { FileInputStream inputStream = null; try { inputStream = new FileInputStream(libFile); if (inputStream != null) { byte[] tempBuffer = new byte[16]; int count = inputStream.read(tempBuffer, 0, 16); if (count == 16) { return tempBuffer; } } } catch (Throwable t) { } finally { if (inputStream != null) { try { inputStream.close(); } catch (Exception e) { e.printStackTrace(); } } } } return null; } }