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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

android studio ndk-builld方式开发

發布時間:2025/7/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android studio ndk-builld方式开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
之前都是在Ubuntu開發,項目也是老的,自然也就順理成章的用eclipse做各種android的開發。最近想在android studio 切換下,有點不習慣。android studio 為ndk開發提供了兩種不同的方式,使用cmake自動編譯腳本 和類似eclipse上的ndk-build。這兩者之間使用區別在于,如果想直接開發新的單模塊可以考慮使用cmake,ide有自帶輔助插件,讓程序員使用起來更加舒心。如果想在第三方源碼庫上面做二次開發,或者需要多個源碼庫關聯,感覺還是使用ndk-build會更加靈活,或者說老經驗不用重新踩那么多坑。 關于環境搭建的可以參考android 開發者文檔,里面有詳細的說明 https://developer.android.google.cn/studio/projects/add-native-code.html#link-gradle 下面就在android studio建一個ndk的sample項目。 1、新建一個一般項目,添加jni文件夾以及子目錄include 存放頭文件,src存放源碼 ? 2、在java代碼中,新建 TestJni類調用native方法,并使用javah命令生成頭文件 ? 3創建相應的方法文件 回到main目錄下 ? classpath:類搜索路徑,這里表示從當前的 bin 目錄下查找 ? d:將生成的頭文件放到當前的 jni 目錄下 ? o: 指定生成的頭文件名稱,默認以類全路徑名生成(包名+類名.h) 注意: -d 和-o 只能使用其中一個參數。 刷新下android studio的項目目錄就可以看到 上面javah的指令,為了后面方便使用,可以在external tools中自定義。File->Setting->Tools ->External Tools 點擊添加 這樣就可以在需要包含native方法的的文件中右鍵使用 4 cmake方法會根據腳本提供自動生成的Android.mk腳本,不過ndk-build 方法就需要自己編寫編譯配置腳本Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_C_INCLUDES += $(LOCAL_PATH)/include? \ $(LOCAL_PATH)/src LOCAL_SRC_FILES := src/hello-jni.c LOCAL_MODULE? ? := NativeLib include $(BUILD_SHARED_LIBRARY) Android.mk文檔必須以LOCAL_PATH變量的定義開頭。 LOCAL_PATH := $(call my-dir) Android 構建系統利用LOCAL_PATH來定位源文件。因為將該變量設置為硬編碼值并不合適,所以Android構建系統提供了一個名為?my-dir 的宏功能。通過將該變量設置為my-dir宏功能的返回值,可以將其放在當前目錄下。 Android 構建系統將CLEAR_VARS變量設置為clear_vars.mk片段的位置。包含Makefile片段可以清除除了LOCAL_PATH 以外的LOCAL_<name>變量,例如LOCAL_SRC_FILES,LOCAL_MODULE ? 等。 include $(CLEAR_VARS) 這樣做是因為 Android構建系統在單次執行中解析多個構建文件和模塊定義,而LOCAL_<name>是全局變量。清楚他們可以避免沖突,每一個原生組件被稱為一個模塊。 LOCAL_MODULE ?變量用來給這些模塊設定一個唯一的名稱。下面的代碼將該模塊的名稱設為NativeLib。 LOCAL_MODULE? ? := NativeLib 其實 LOCAL_MODULE? ? := libNativeLib 結果也是可以的,編譯的生成結果,構建系統會自動添加適當的前綴后綴生成動態共享文件 ,如果前面已經添加lib,那么還會是原樣,如:libNativeLib.so。可以在路徑 ?"項目路徑\unit2\app\build\intermediates\ndkBuild\debug\obj\local\架構類型\"看到。 用LOCAL_C_INCLUDES 指定頭文件的搜索路徑,LOCAL_SRC_FILES指定源文件列表,多個文件可以使用空格分開的多個源文件名字。 到這里,就簡單描述了一個原生項目。編譯和生成實際模塊的構建系統還需要包含合適的構建系統片段,具體取決于想要生成的模塊的類型。 include $(BUILD_SHARED_LIBRARY) 其中BUILD_SHARED_LIBRARY是一個指向生成共享文件的腳本。 有下面三種文件生成格式 BUILD_STATIC_LIBRARY:編譯為靜態庫。?
BUILD_SHARED_LIBRARY :編譯為動態庫? BUILD_EXECUTABLE:編譯為Native C可執行程序 這里就不展開了 在android studio編譯原生項目,還需要配置module(app)目錄下的build.gradle。下面是需要添加的內容 android { defaultConfig { ndk{ abiFilters "armeabi","armeabi-v7a","x86" } } externalNativeBuild{ ndkBuild{ path "src/main/jni/Android.mk" } } } apk在不同硬件平臺運行時,要根據cpu架構調用不同的共享文件。 ndk{ abiFilters "armeabi","armeabi-v7a","x86" } 就會生成三種適合不同cpu架構的共享文件, 不配置的話,系統將會默認生成支持的所有架包,如果ndk配置發生改變,要clean project externalNativeBuild{ ndkBuild{ path "src/main/jni/Android.mk" } } 選擇cmake還是ndk-build都需要在這里面寫明腳本路徑 接下來就跑跑項目看效果。

轉載于:https://www.cnblogs.com/greenteapi/p/7302190.html

總結

以上是生活随笔為你收集整理的android studio ndk-builld方式开发的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲精品9999 | 丝袜人妻一区二区三区 | 四虎网站在线播放 | av片在线播放 | 欧美精品色婷婷五月综合 | 超碰97在线资源站 | 一区二区福利电影 | 国产不卡精品视频 | 动漫涩涩免费网站在线看 | 精品国产免费一区二区三区 | 懂色av蜜臀av粉嫩av分享 | 欧美一级激情 | 草久在线观看视频 | 在线观看www. | 国产福利视频一区 | 男女毛片视频 | 婷婷六月丁 | 欧美全黄| 午夜激情网站 | 老头老夫妇自拍性tv | 国产中文字幕亚洲 | 成人免费精品 | 1级性生活片 | 色婷婷激情av | 四虎影院www | 日本作爱视频 | 91啪在线| 色88久久久久高潮综合影院 | 国产男男网站 | 久草视频免费在线观看 | 国产高清成人久久 | 日韩精品在线一区 | 久久99精品国产麻豆婷婷洗澡 | 国产一及毛片 | 男生裸体视频网站 | 日韩av一区在线观看 | 特级一级片 | 巨胸大乳www视频免费观看 | 日本三级播放 | 日韩精品一二三四 | 中文成人在线 | 狠狠操夜夜 | 成年人免费观看视频网站 | 中文字幕欧美另类精品亚洲 | 日本免费视频 | 欧美13p| 超碰999| 亚洲 在线| 日韩久久综合 | 亚洲影视在线观看 | 18做爰免费视频网站 | 免费看欧美片 | 日韩国产精品久久 | 欧亚成人av | av在线影片 | 日韩激情啪啪 | 欧美日韩激情 | 欧美日韩经典 | 国产无遮挡又黄又爽免费视频 | 免费日韩 | 天天亚洲| av手机观看 | 特级西西444www高清大视频 | 久久综合九九 | 国产精品久久久久久久裸模 | 老司机精品在线 | 日韩av一区在线播放 | 国产网友自拍视频 | www.日韩视频 | 少妇太紧太爽又黄又硬又爽 | 好看的黄色网址 | 亚洲欧美精品久久 | 蜜臀久久99精品久久久久宅男 | 午夜影视免费 | 亚洲偷偷自拍 | 国产专区视频 | 中文字幕第27页 | 国产午夜电影 | 久久久久黄 | 伊人论坛 | 激情xxx| 97超碰中文字幕 | 日韩高清精品免费观看 | 日本高清视频一区二区三区 | 星空大象在线观看免费播放 | 国产精品欧美激情 | 青青青视频免费观看 | 国产伦精品一区二区三区视频女 | 亚洲自拍偷拍一区二区 | 少妇一级淫片免费放播放 | 亚洲一区二区在线电影 | 国产精品一区二区精品 | 中文国产在线观看 | 亚洲电影在线看 | 色婷婷久久综合中文久久蜜桃av | 亚洲成人激情av | 99久久精品免费看国产 | 一区二区三区免费在线 | 日韩播放|