您的位置:首页 > 移动开发 > Android开发

android lib下不同的cpu类型 不同的.so文件

2016-01-06 15:13 459 查看
由于android手机和平板的种类繁多,硬件设备不同 ,因此CPU可以分为多种,因此jni库常常不能调用Java方法。 android APK的根目录有一个 libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a等文件夹,我们的c代码编译成的本地库(各种.so)就会放在其中的一个或者多个

通常在lib文件夹下 新建7中文件夹

arm64-v8a,armeabi,armeabi-v7a,mips,mips64,x86,x86_64

在其中放入不同的.so文件

如果是android studio 要在build.gradle文件夹内android{}中设置

sorceSet{

main{ jniLibs.srcDirs = ['libs'] }

}

如下:

android {
    compileSdkVersion 19
    buildToolsVersion "23.0.2"

    defaultConfig {

        applicationId "com.fm.aiyinsitan"
        minSdkVersion 11
        targetSdkVersion 17

        multiDexEnabled true
    }

    buildTypes {

        //debug{
        //   minifyEnabled false
        //   zipAlignEnabled false
        //  shrinkResources false
        //}

        release {
            //minifyEnabled true
            //zipAlignEnabled true
            //shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}


* 有时候在项目中也可以新建备份cpu类型 如最近项目只分了4中类型 便可轻松在红米。5.0系统等坑爹手机上运行了

armeabi-v7a,mips,x86,x86_64

*特别注意的是 如果项目有引用其他第三方sdk 如果再他们的项目中有不同的cpu类型 ,也会影响到整体

*由于CPU不同,对应的硬件驱动不同,因此他们编译的.so文件也是不同的

*或者可以在项目src 文件夹下 直接创建 jniLibs文件夹 这样可以省去 在build.gradle中配置的过程


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: