老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Android開發實踐:Android.mk模板-創新互聯

關于Android NDK開發的文章已經比較多了,我的博客中也分享了很多NDK開發相關經驗和技巧,今天簡單寫了一個 Android.mk 的示例模板,供初學者參考。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬空間、營銷軟件、網站建設、克井網站維護、網站推廣。

 本模板主要給大家示例 Android NDK 開發中的如下幾個問題:

 1. 如何自動添加需要編譯的源文件列表

 2. 如何添加第三方靜態庫、動態庫的依賴

 3. 如何構造一個完整的NDK工程框架

 假設我們的項目依賴 libmath.a, libjson.a, libffmpeg.so 這幾個第三方庫文件,項目包含如下幾個模塊:algorithm,core,network,utils,tests,每個模塊都有若干個.c/.h文件,我們要把整個工程編譯為動態庫,并通過 native_sdk.c 中的函數向Java層提供調用接口。

 那么,我們可以對 Android 工程的 jni 目錄,做如下劃分:

  Android開發實踐:Android.mk模板

 對應的 Android.mk 文件的寫法示例如下(注:工程文件可以到我的Github(@Jhuster/Android)中在線查看,也可以在本博文最后的附件中下載):

LOCAL_PATH := $(call my-dir)
3RD_INC_DIR = $(LOCAL_PATH)/3rd/inc
3RD_LIB_DIR = $(LOCAL_PATH)/3rd/libs

# Prebuild the 3rd libraries 

include $(CLEAR_VARS)
LOCAL_MODULE := math
LOCAL_SRC_FILES := $(3RD_LIB_DIR)/libmath.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := json
LOCAL_SRC_FILES := $(3RD_LIB_DIR)/libjson.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg
LOCAL_SRC_FILES := $(3RD_LIB_DIR)/libffmpeg.so
include $(PREBUILT_SHARED_LIBRARY)

# Build native sdk 

include $(CLEAR_VARS)    

LOCAL_MODULE := native_sdk

LOCAL_SRC_FILES := \
    $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/algorithm/*.c))  \
    $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/core/*.c))  \
    $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/network/*.c)) \
    $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/utils/*.c)) \
    $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/src/*.c))  
    
LOCAL_C_INCLUDES := $(3RD_INC_DIR)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/src 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/algorithm
LOCAL_C_INCLUDES += $(LOCAL_PATH)/src/core
LOCAL_C_INCLUDES += $(LOCAL_PATH)/src/network
LOCAL_C_INCLUDES += $(LOCAL_PATH)/src/utils

LOCAL_CFLAGS := -DANDROID	    								
LOCAL_LDLIBS := -llog 

LOCAL_STATIC_LIBRARIES := math json
LOCAL_SHARED_LIBRARIES := ffmpeg

include $(BUILD_SHARED_LIBRARY)


# Build tests

include $(CLEAR_VARS)    
LOCAL_MODULE := test.out
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/tests/*.c)) 
LOCAL_CFLAGS := -DANDROID 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/src 
LOCAL_LDLIBS := -llog -fPIE -pie
LOCAL_SHARED_LIBRARIES:= native_sdk
include $(BUILD_EXECUTABLE)

 對于 Android.mk 而言,如果要依賴第三方庫文件,則必須添加 PREBUILT_XXXX_LIBRARY 進行預編譯,LOCAL_SRC_FILES 宏給出了需要編譯的源文件列表,這里我通過 subst和wildcard 這兩個函數,實現了自動掃描指定目錄下的源文件,最后,通過 BUILD_EXECUTABLE 編譯出可以運行于adb shell命令行的可執行程序,用于做代碼的單元測試。

 關于Android.mk模板就介紹到這兒了,有任何疑問,歡迎留言或者來信lujun.hust@gmail.com交流,或者關注我的新浪微博 @盧_俊 獲取最新的文章和資訊。

附件:http://down.51cto.com/data/2367276

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


分享題目:Android開發實踐:Android.mk模板-創新互聯
分享網址:http://www.xueling.net.cn/article/csepsi.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 日韩一区欧美二区 | 成年人黄色影片 | 国产伦精品一区二区三区88av | 狠狠躁夜夜躁人人爽天天高潮 | 麻豆伊人| 日本天堂资源 | 未发育成型小奶头毛片av | 国产激情午夜视频在线观看 | 国内精品国产三级国产在线专 | 欧美肉大捧一进一出 | 91亚洲精品久久久久图片蜜桃 | 天天在线干 | 柠檬导航在线 | 飘香影院午夜理论片A片 | 亚洲精品不卡无码福利在线观看 | 亚洲国产无线乱码在线观看 | 国产麻豆一区二区三区在线观看 | 91免费黄色软件 | 中国一级特黄真人毛片免费观看 | 久久国产午夜精品理论片 | 91在线91拍拍在线91 | 色婷婷av一区二区三区久久 | 欧美嫩交一区二区三区 | 日产精品久久久久久久性色91 | 国产成人观看 | 午夜成人片400 | 99精彩视频在线观看 | 国产成人精品a视频 | 日本免费www | 91视频在线观看大全 | 密色影院 | 欧美成人乱码一二三四区 | 黑人40厘米全部进去A片 | 日本中文字幕中出在线 | 奇米导航| 久久观看免费视频 | 麻豆视频免费看了 | 粉嫩在线一区二区三区视频 | 1级片无码高清久久久 | 奇米精品视频一区二区三区 | 天堂在线精品 |