1. 程式人生 > >環境配置之Android Studio開發NDK

環境配置之Android Studio開發NDK

NDK 開發哪家強?XX XX 找 Blue Fly.

說到 NDK 開發,其實是為了有些時候為了專案需求需要呼叫底層的一些 C/C++ 的一些東西;另外就是為了效率更加高些。

但是很多時候能不用就不用;這個是啥原因?個人感覺有些時候是覺得麻煩,首先要配置 NDK 還要 下載 Cygwin ,配置 Cygwin ,然後需要編譯生成,哎太麻煩了。如果你說使用 Eclipse,的確這樣在編譯上是能簡單很多,但是前期也是需要配置一大堆;哎,配置錯了還傷不起。

現在谷歌主力推動 Android Studio 這個是個不錯的工具,至少現在來看在 Eclipse 上能做到的 這邊都有,這邊有的Eclipse

上不一定有。

下面來說說 在 Android Studio 中怎麼進行 NDK 的開發。

準備工作

Android Studio 環境搭建
NDK 環境搭建

都是可執行檔案,下載後點擊即可解壓到當前資料夾;當然你可以使用命令列來進行跨資料夾解壓的。

建立一個專案 NDKDemo:


建立對應的類,在 MathKit 中我們實現計算 INT 值的平方數。

  1. publicclass MathKit {  
  2.     publicstaticnativeint square(int num);  
  3.     static {  
  4.         System.loadLibrary("JniDemo"
    );  
  5.     }  
  6. }  
StringKit 這個就是充數用的:
  1. publicclass StringKit {  
  2.     publicstaticnativevoid setNull(String str);  
  3.     static {  
  4.         System.loadLibrary("JniDemo");  
  5.     }  
  6. }  

準備 .h 檔案

進入Java目錄;CMD 進入該目錄進行 javah 操作:


這個想必大家並不陌生吧,該檔案就是 java 類對應的 標頭檔案,當然如果你比較厲害的話可以不用這樣生成,自己敲程式碼完成也行;反正我是不行。

如下,建立資料夾:


拷貝之前的檔案進去:


分別實現:

net_qiujuer_ndkdemo_jni_MathKit.cpp

  1. #include <net_qiujuer_ndkdemo_jni_MathKit.h>
  2. JNIEXPORT jint JNICALL Java_net_qiujuer_ndkdemo_jni_MathKit_square  
  3.   (JNIEnv *env, jclass cls, jint num)  
  4.   {  
  5.         return num*num;  
  6.   }  
net_qiujuer_ndkdemo_jni_StringKit.cpp
  1. #include <net_qiujuer_ndkdemo_jni_StringKit.h>
  2. JNIEXPORT void JNICALL Java_net_qiujuer_ndkdemo_jni_StringKit_setNull  
  3.   (JNIEnv *env, jclass obj, jstring str)  
  4.   {  
  5.   }  

設定專案

設定根目錄中的:local.properties


該設定不是必須,如果你設定了環境變數則可不用設定;如果沒有但是又沒有設定將會出現:


設定 APP 專案 build.gradle


該設定是為了設定生成的Jni名稱為:JniDemo

主檔案呼叫:


現在點選執行:


可以看見是非常簡單的;這個呼叫可以說是我操作過最簡單的了;甚至於生成 .H 檔案都可以編輯 .sh 檔案來進行批處理(這個後面有時間再說).

更多

在平時的那些操作中我們不可避免的要建立:

Android.mk

  1. LOCAL_PATH      := $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3. LOCAL_MODULE    := genius  
  4. LOCAL_SRC_FILES := net_qiujuer_imageblurring_jni_ImageBlur.cpp  
  5. LOCAL_LDLIBS    := -lm -llog -ljnigraphics  
  6. include $(BUILD_SHARED_LIBRARY)  
Application.mk
  1. APP_ABI     := all  
  2. APP_PLATFORM:= android-19  
  3. APP_OPTIM   := release  
而這裡這兩個檔案都沒有建立,那麼是怎麼決定的呢?

我們可以在 ndk 的 modelName 上按住 Ctrl 進行點選將會出現這個介面:



這些就是全部能夠設定的引數。分別對應:

  1. ndk{  
  2.     moduleName "JniDemo" // 設定生成的檔名  
  3.     cFlags "-DANDROID_NDK -D_RELEASE" //這個對應的是生成模式  
  4.     ldLibs "m""log""jnigraphics" //這個對應 LOCAL_LDLIBS 但是需要去掉前面的 “l”  
  5.     abiFilters "all" //這個是對應的 APP_ABI  
  6.     stl "stlport_shared" //這個對應的是 APP_STL   
  7. }  

好了,就這些祝大家成功。專案打包上傳。

本次專案點選這裡下載。

相關推薦

[Android] 環境配置Android Studio開發NDK

NDK 開發哪家強?XX XX 找 Blue Fly. 說到 NDK 開發,其實是為了有些時候為了專案需求需要呼叫底層的一些 C/C++ 的一些東西;另外就是為了效率更加高些。 但是很多時候能不用就不用;這個是啥原因?個人感覺有些時候是覺得麻煩,首先要配置 NDK 還要

環境配置Android Studio開發NDK

NDK 開發哪家強?XX XX 找 Blue Fly. 說到 NDK 開發,其實是為了有些時候為了專案需求需要呼叫底層的一些 C/C++ 的一些東西;另外就是為了效率更加高些。 但是很多時候能不用就不用;這個是啥原因?個人感覺有些時候是覺得麻煩,首先要配置 NDK 還要 下載 Cygwin ,配置 C

MacAndroid Studio開發NDK入門

NDK(Native Development Kit),是用於在 Android 應用中巢狀原生代碼的工具集,現在 Android 開發最常用的工具就是 Android Studio 了,筆者也是剛剛接觸 NDK 開發,用了一天的時間,踩了很多坑,最終跑通了自己的第一個 ND

Android開發 Android-Studio 開發環境配置

今天給大家帶來一篇Android開發的文章,這也正是督促我自己學習安卓開發的一個方式,本文作為開篇文章,就很簡單的給大家演示下Android-Studio開發環境的配置步驟;目前大家在安卓開發上用的最多的可能就是Android-Studio了,在我讀大學的時候聽

Android開發快速入門(環境配置Android Studio安裝)

Android是一種激動人心的開源移動平臺,它像手機一樣無處不在,得到了Google以及其他一些開放手機聯盟成員(如三星、HTC、中國移動、Verizon和AT&T等)的支援,因而不能不加以學習,否則你承擔不起為此付出的代價。 好在Android開發入門很容易,即使沒有Android手機都沒關係,只

Java環境配置Android Studio的安裝教程

Android Studio是Google官方主推開發Android的IDE,雖然Eclipse開發Android沒有任何問題但是Google已經對Eclipse不進行更新維護了,而且相比在之後的開發中AS的功能是Eclipse所不能比擬的,所以這裡對Android Studio的安裝做個教程。

OpenCV On Android最佳環境配置指南(Android Studio篇)

簡介 本文是《OpenCV On Android最佳環境配置指南》系列教程第二篇,也是配置教程的最後一篇。通過對Android Studio裡OpenCV環境配置講解,快速幫新人解決入門配置問題。 本文內容是本人經過多次踩坑,並參考網上眾多OpenCV

android-studio開發NDK錯誤記錄:bash: ../../build/intermediates/classes/debug: is a directory

技術分享 androi info bash 開發 很多 oid dir int 按照網上很多已有的教程,在用javah生成c的頭文件時候報錯: Error: no classes specified bash: ../../build/intermediates/

NDK 開發 android studio 環境配置

    一、下載NDK 點選File——>Project Structure  。如果你沒有下載NDK ,可以直接點選Download。下載完成後,android studio 會自動配置好 或者直接File ——>Setting

windows下 android studioNDK開發環境配置(1)(2)

參考博主文章連結: 開發環境:  windows10  AS2.1.2 首先安裝NDK,  安裝完後,新建一個空專案。    點選下一步,知道新建一個新專案。 新建好的專案如下:  檢測local.properties 檔案裡面是否有ndk的路徑,沒有加上。

使用Android Studo開發NDKGradle的配置(能debug C代碼)

lose service ng- services lba new import dev android 配置: 用的版本號是AS1.5(也能夠嘗試更高版本號)。 Gradle地址是distributionUrl=https\://services.gradle.org

Android Studio開發環境配置以及相關說明

behavior 三十五 alt port enter img 截圖 common ESS 版權聲明:本文為HaiyuKing原創文章,轉載請註明出處! 前言 這裏簡單記錄下在開發的時候使用的Android Studio開發環境版本以及相關註意事項。 一般來講,每隔一

Android開發Android studio 3.2.1配置androidannotations

androidannotations,Butterknife 元件等大大的提高了開發效率,但在配置androidannotations 的時候卻出現了問題,根據根據網上的資料配置 annotationProcessor “org.androidannotations:androidannot

配置android開發環境、安裝Android studioAndroid sdk(配置react native的Android環境

配置react native的Android環境的步驟比較多,所以單獨提取出來記錄: 提示:如果是想搭建android開發環境安裝Android studio,本記錄貼也適用的 1. 安裝 Android Studio,配置sdk 2.建立一個android專案並執行測試

Android中JNI使用詳解(2)---Android StudioNDK環境配置

Android Studio中的NDK環境配置 1、下載NKD 在Android Studio中選擇File----Settings----Appearance&Behavior---System Settings----Andr

安卓安裝離線搭建Android Studio開發環境

離線搭建Android Studio開發環境 前言: Android Studio開發環境,有兩種方式進行安裝。 ①:線上安裝,需要下載大量的檔案,最好電腦進行翻牆,否則下載速度相當的慢。 ②:離線安裝,電腦完全沒有網路的情況下,需要提前下載好相對應的軟體 離線

Android開發(一)——Android-Studio 開發環境配置

第一步:下載Android-Studio 地址1:https://developer.android.com/studio/index.html?hl=zh-cn第二步:安裝JDK和配置環境變數 由於我下載Android-Studio的版本JDK需要在8.0版本以上,所以如果

實現離線安裝、配置Android Studio開發環境 解決方案

近期專案需要提供AS的離線開發工具安裝 ,沒錯網上的帖子很多 ,但有問題的也很多,因為越往下做 ,一個個問題接踵而至,不同的嘗試,也發現出一條路子,但還是存在一定侷限,但能將就一下,聽我娓娓道來。 1.開發環境的準備 2.相關配置   開發工具準備: A. 

配置cordova的android開發環境(無android studio

趁元旦放假想試一下cordova,不想安裝龐大的android studio,所以想最小化安裝,居然花了一整天的時間才能正常編譯cordova工程,記錄一下過程,備將來參考。 安裝環境:作業系統:windows 10 x64 第一步:安裝nodejs,下載最新版本v10.15.0 第二步:設定npm安裝

[Android] 環境配置正式版Android Studio 1.0

昨天看見 Android Studio 1.0 正式版本釋出了;心裡挺高興的。 算是忠實使用者了吧,從去年開發者大會一開始出現 AS 後就開始使用了;也是從那時開始就基本沒有用過 Eclipse 了;一路走來,遇到過 BUG ,也不斷的去國外找資源 找解決辦法。總的來說挺