天天看點

讓Android應用源碼 同時适配 多個android系統版本的一種解決辦法

   如果app是和android系統一起進行編譯,如果想讓app的源碼保持一套,卻能夠同時在android4.1和android4.2下進行編譯。如果app源碼與android系統的版本無關,那麼,不存在問題。

但,如果app的實作代碼與所依賴的framework的版本強相關,譬如,Location相關的API,在android4.1和android4.2上的差異比較大。應用如果是采用4.2的API來實作的,在配合android4.1系統編譯時就會報錯。此時,可以采用在Android.mk檔案中,根據PLATFORM_SDK_VERSION的值,在編譯時決定要編入哪些Java檔案,源碼中同時保留針對android4.1和android4.2的特有實作。

源碼目錄為:

src

src_4_android41

src_4_android42

src下存放公共代碼

src_4_android41下存放配合android4.1系統的實作

src_4_android42下存放配合android4.2系統的實作

然後,Android.mk修改方法如下:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

...

LOCAL_SRC_FILES := $(call all-java-files-under, src)

ifeq ($(PLATFORM_SDK_VERSION), 17)

LOCAL_SRC_FILES += $(call all-java-files-under, src_4_android42)

else

LOCAL_SRC_FILES += $(call all-java-files-under, src_4_android41)

endif

LOCAL_PACKAGE_NAME := ......

......

問題解決。

轉載于:https://blog.51cto.com/memory/1226443