【Android Native Code開發系列】四 編譯自己的Native Code
注意:
1。 系列六裡也有一些編譯相關的技巧
2。 編譯過程中,如果出現需要類似缺少libxxx.so這樣的出錯資訊,請到原始碼主目錄編譯此庫: make libxxx
#######################################
編譯自己的Native Code
#######################################
# 在有Android原始碼的條件下,編譯自己的native程式碼
1. 寫好自己的c/c++工程程式碼,放在mymodule目錄,並設定好同目錄下的Android.mk
比如要編譯一個動態庫,程式碼為ZPService.h和ZPService.cpp,則這樣配置:
----------------------------------------------
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=ZPService.cpp // 原始碼
LOCAL_SHARED_LIBRARIES:=libutils libbinder // 依賴庫
LOCAL_MODULE_TAGS:=optional // 不要忘了這行
LOCAL_MODULE:=ZPService // 生成庫名,前面不需要加lib
LOCAL_PRELINK_MODULE:=false
// 編譯成庫, 若編譯成可執行檔案,則為
// include $(BUILD_EXECUTABLE)
include $(BUILD_SHARED_LIBRARY)
---------------------------------------------
2. 把原始碼目錄mymodule放在android/development/下
3. (1)進入android根目錄,執行
source build/envsetup.sh
(2)或者,先執行source build/envsetup.sh,再進入mymodule目錄,執行
mm
4. make libZPService
5. 生成的檔案將放在android/out/target/product/generic/system下的bin
或lib目錄,這要視你要編成庫還是可執行檔案而定
# 使用下載的ndk編譯自己的native程式碼
1. 建立工程目錄ndktest, 再建立子目錄jni, 在jni下放置native程式碼和Android.mk, 如下所示:
../ndktest
`-- jni
|-- Android.mk
`-- test.cpp
2. 進入工程主目錄下, 呼叫ndk-build編譯
Compile++ thumb : zptest <= test.cpp
StaticLibrary : libstdc++.a
Executable : zptest
Install : zptest => libs/armeabi/zptest
3. 如2所示, 生成的zptest位於ndktest/libs/armeabi目錄. 編譯後的目錄結構如下:
../ndktest
|-- jni
| |-- Android.mk
| `-- test.cpp
|-- libs
| `-- armeabi
| `-- zptest
`-- obj
`-- local
`-- armeabi
|-- libstdc++.a
|-- objs
| `-- zptest
| |-- test.o
| `-- test.o.d
`-- zptest
相關推薦
【Android Native Code開發系列】四 編譯自己的Native Code
注意: 1。 系列六裡也有一些編譯相關的技巧 2。 編譯過程中,如果出現需要類似缺少libxxx.so這樣的出錯資訊,請到原始碼主目錄編譯此庫: make libxxx #######################################
【Android Studio安裝部署系列】四十一、Android Studio安裝Alibaba Java Coding Guidelines插件(檢查代碼規範)
實現 gui 參考 阿裏巴巴 style oid lips 基本上 setting 版權聲明:本文為HaiyuKing原創文章,轉載請註明出處! 前言 該插件主要是對今年發布的《阿裏巴巴 Java 開發規約》的一個延伸,它以一個 IDE 的插件存在,可以自動對手冊中的
【Android Studio安裝部署系列】三十四、將Eclipse項目導入到Android Studio中
png 規範 報錯 dsv 代碼 struct const 程序包 方法 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 概述 我采用的是笨方法:新創建Android Studio項目,然後將Eclipse項目中的目錄一一復制到Android Studio項目中。
【Android Studio安裝部署系列】二、Android Studio開發環境搭建
alt nand inf ima str php span 開發環境搭建 index.php 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 概述 Android Studio開發環境安裝步驟 下載Android Studio 下載地址: http://ww
【Windows10 IoT開發系列】API 移植工具
計算機 develop 資料 pip sin normal 分隔 win32 命令行 原文:【Windows10 IoT開發系列】API 移植工具 Windows 10 IoT Core 中是否提供你的當前 Win32 應用程序或庫所依賴的
【Windows10 IoT開發系列】Powershell命令行實用程序
啟動應用 solution 人員 sina rac oot 表示 art 顯示 原文:【Windows10 IoT開發系列】Powershell命令行實用程序 更新帳戶密碼: 強烈建議你更新默認的管理員帳戶密碼。若要更新帳戶密碼,你可以發出以
[置頂]【實用 .NET Core開發系列】- 導航篇
ati res pos dock 持續集成 cat swa bapi vue 前言 此系列從出發點來看,是 上個系列的續篇, 上個系列因為後面工作的原因,後面幾篇沒有寫完,後來.NET Core出來之後,註意力就轉移到了.NET Core上,所以再也就沒有繼續下去,此是原因
【Android Studio安裝部署系列】十八、Android studio更換APP應用圖標
tail map 安全區 大小 next detail 有時 ash blog 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 概述 Android Studio新建項目後會有一個默認圖標,那麽如何更換圖標呢? 替換圖標 這個方案不建議直接在已有項目上更換
【Android Studio安裝部署系列】二十二、Android studio自動生成set、get方法
setter 自動生成 全選 style 原創文章 back .com 安裝部署 dash 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 操作步驟 將光標放置我們所要生成get,set方法的實體類空白處——然後右鍵—&mdas
【Android Studio安裝部署系列】九、Android Studio常用配置以及快捷鍵
har 常用配置 int intel 你在 tom ron androi use 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 概述 整理Android Studio的常用配置和快捷鍵。 常用配置 顯示行號 臨時顯示 永久顯示 File&md
【Android Studio安裝部署系列】三十三、windows系統中通過SourceTree使用git
wan 彈出 隱藏 ins 顯示 創建倉庫 cal 代碼 參考 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 概述 前期準備 選擇代碼托管服務器:gitlab、github、開源中國等。 註冊賬號 創建項目 安裝git 參考《【Android
【Android Studio安裝部署系列】二十七、Android studio修改項目名稱和包名
detail 如何 裏的 繼續 想要 example 發現 and 版權 版權聲明:本文為HaiyuKing原創文章,轉載請註明出處! 概述 實際項目開發中可能碰到項目名稱寫錯了或者需要修改,而且包名可能也想要修改,那麽如何操作呢。 本文是在Android Studi
【Android Studio安裝部署系列】三十六、從Android Studio3.1.4升級到Android studio3.2【以及創建android p模擬器(未成功)】
tps min 比較 安裝 bsp mda 下載 initial uil 版權聲明:本文為HaiyuKing原創文章,轉載請註明出處! 概述 因為想要使用Android P模擬器,所以需要將Android Studio升級到3.2版本以上。 按照官網的說法:參考《ht
在VS2015中匯入/建立靜態庫並使用靜態庫【VS+Qt專案開發系列】
本專案示例原始碼已經上傳,歡迎點選下載~注:靜態庫——在連結步驟中,聯結器將從庫檔案取得所需的程式碼,複製到生成的可執行檔案中,這種庫稱為靜態庫,其特點是可執行檔案中包含了庫程式碼的一份完整拷貝;缺點就是被多次使用就會有多份冗餘拷貝。即靜態庫中的指令都全部被直接包含在最終生成
在VS2015中建立Qt專案【VS+Qt專案開發系列】(二)
在上一篇【VS+Qt專案開發】(一)在VS2015中安裝Qt環境中,我們完成了開發環境的安裝,現在我們正式建立我們的專案。專案原始碼已經上傳,歡迎下載專案原始碼~(1)選擇:檔案 -> 新建 -> 專案,然後選擇:模板 -> Visual C
【微信小程式開發•系列文章四】模組化
微信小程式的MINA框架,其實是許多前端開發技術的組合。這篇文章中,我們來簡單地討論一下模組化。 1、模組化標準 玩前端的同學大部分都知道模組化的幾個標準,CommonJs / AMD / CMD。這裡花費一些篇幅簡單的介紹一下,比較熟悉的同學可以跳過這一部分的介紹。(1)
【iOS開發系列】九宮格布局
使用 objc with div self. orm i++ back hab /** * 這個盡管非常easy,算是一個小技巧,可是碰到了就記錄下來吧.積跬步,致千裏嘛. */ - (void)scratchableLatex { for (int i=
【iOS開發系列】NSObject方法介紹
ati ber oid ring cto rgb dst -s 推斷 NSObject是OC中的基類,全部類都繼承於此,這裏面也給我們提供了非常多與“類”和“方法”相關的方法,本文將解說幾個非常有用的方法。 正文: Per
【JAVA零基礎入門系列】Day1 開發環境搭建
oracle 零基礎 ati 成功 官方 運行 根目錄 文件目錄 sys 一、安裝JDK java的sdk簡稱JDK ,去其官方網站下載最近的JDK即可。 http://www.oracle.com/technetwork/java/javase/downloads/jdk
【JAVA零基礎入門系列】Day2 Java集成開發環境IDEA
log rgs string 文件夾 ges jetbrains 技術 http clip 開發環境搭建好之後,還需要一個集成開發環境也就是IDE來進行編程。這裏推薦的IDE是IDEA,那個老掉牙的Eclipse還是先放一邊吧,(手動滑稽)。 IDEA的下載地址:http: