簡稱:怎樣的Android NDK系統進行改造, 「APP_ABI:= armeabi-V7A硬」 到位於「庫最後.so文件/ armeabi-V7A 「?在Android.mk中做同樣的事情的正確方法是什麼?目前,建立獨立的可執行文件,並將其放置在對應不同的ABI我用這個文件夾,這是它看起來是因爲硬編碼「IFEQ($(TARGET_ARCH_ABI),armeabi-V7A硬)」醜:的Android NDK:建立與BUILD_EXECUTABLE和armeabi-V7A硬脂肪二元
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
SAVED_NDK_APP_DST_DIR := $(NDK_APP_DST_DIR)
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a-hard)
NDK_APP_DST_DIR := assets/armeabi-v7a
else
NDK_APP_DST_DIR := assets/$(TARGET_ARCH_ABI)
endif
LOCAL_MODULE := run_pie
LOCAL_SRC_FILES := run_pie.c
include $(BUILD_EXECUTABLE)
NDK_APP_DST_DIR := $(SAVED_NDK_APP_DST_DIR)
長:在我的Android應用程序中,我使用了一組獨立的二進制文件。生成後,它們存儲在APK資源中。在第一次啓動應用程序時,我將它們複製到我的應用程序私有文件夾chmod 777,並將它們用作系統實用程序,如「ls」或「cp」。我想生成「胖二進制」:單個APK具有所有ABI的二進制文件,並在安裝後爲當前設備選擇正確的二進制文件。 .so圖書館Android會自動完成所有這些工作。並且「APP_ABI:= armeabi-v7a-hard」是NDK構建系統的內部,它在文檔中有說明,並且最終的.so文件「armeabi-v7a-hard」被放置在「armeabi-v7a」文件夾中。我可以爲我的二進制文件做同樣的事情,目前我有辦法工作,但它看起來很醜。
將輸出二進制文件放置到以ABI命名的自定義文件夾並將「armeabi-v7a-hard」處理爲「armeabi-v7a」轉換的正確方法是什麼?
非常感謝,那就是我一直在尋找的東西。我試圖在NDK源代碼中找到那個地方,但是'setup-toolchain.mk'卻逃過了我的注意。目前我也在尋找提供者在運行時找到ABI的方法。我知道'Build.CPU_ABI','Build.CPU_ABI2'和'System.getProperty(「os.arch」)',但是我想知道它是如何在Android包安裝程序的源代碼中處理的,現在幾乎找到了。但是,您使用'lib $ {TOOLNAME} .so'的選項也很有趣,再次感謝。 – Dima