日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Gradle 使用技巧(二) - SO/NDK过滤

發布時間:2023/12/9 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gradle 使用技巧(二) - SO/NDK过滤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

作為一個Android開發人員,so對于我們來講是極其常見的,各種大廠的SDK中都包含著各種各樣的so,而so也是apk瘦身的重要一環,減少so平臺的數量,可以極大限度的減少apk的大小。

Android 中的so

先看一張官方的圖:

ABI

可以將so分為以下幾種:

  • armeabi: ARM v5 這是相當老舊的一個版本,缺少對浮點數計算的硬件支持,在需要大量計算時有性能瓶頸
  • armeabi-v7a: ARM v7 目前主流版本
  • arm64-v8a: 64位支持
  • mips / mips64 極少用于手機,可以直接忽略
  • x86 / x86_64: x86 架構的手機都會包含由 Intel 提供的稱為 Houdini 的指令集動態轉碼工具,實現對 arm .so 的兼容,再考慮 x86 1% 以下的市場占有率,x86 相關的兩個 .so 也是可以忽略的

Android Studio中如何引用so

  • 在main目錄下創建jniLibs文件夾,將相應的so庫存放進去。
  • jinLibs
  • 在相應的module下的gradle中進行配置
  • android{repositories {flatDir {dirs 'libs'}} }

    同步項目即可。

    如何選擇so

    先不說原理,我們可以看看大廠是怎么做的。

    先看看 TIM

    Tim

    再看看淘寶

    淘寶

    從Tim和淘寶的apk包中可以看到,兩個都只是保留了armeabi平臺的lib,所以我們也可以直接參照大廠的做法只保留armeabi平臺,其它的暫時可以不考慮,因為我們也做不到兼容全平臺。

    如何過濾

    直接在gradle中配置即可

    buildTypes{release{...ndk {abiFilters "armeabi" // 保留這種架構的CPU}...} } 過濾so

    一般情況下是在打包的時候指定so,但是也有特殊情況,需要debug模式下過濾,同上,直接在debug中配置即可。

    ndk {abiFilters "armeabi", "armeabi-v7a", "x86", "mips" }

    后續敬請期待!
    免為其難的關注一下公眾號吧!!

    生活實在是太苦啦 FullScreenDeveloper

    總結

    以上是生活随笔為你收集整理的Gradle 使用技巧(二) - SO/NDK过滤的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。