精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android Studio jni開發(fā)入門——看我就夠了!

移動開發(fā) Android
本文記錄一下Android Studio 進行jni開發(fā)的基礎(chǔ)配置以及入門教程,想當初使用eclipse配置ndk環(huán)境都難,現(xiàn)在基本都向AS轉(zhuǎn)型,特此給需要幫助的新手村的同學(xué)們少走彎路。

本文記錄一下Android Studio 進行jni開發(fā)的基礎(chǔ)配置以及入門教程,想當初使用eclipse配置ndk環(huán)境都難,現(xiàn)在基本都向AS轉(zhuǎn)型,特此給需要幫助的新手村的同學(xué)們少走彎路☺

一、環(huán)境配置

主要需要配置的就是NDK(Native Development Kit),現(xiàn)在Android studio很便利,可以一鍵下載: file → setting → 按截圖找到如下路徑 → 選擇NDK → 確定應(yīng)用下載  

 

安裝完成以后就可以開擼了

二、jni hello world!

1. 新建一個項目

新建一個app,測試jni開發(fā)   

 

2.設(shè)置支持jni

打開gradle.properties,添加:

  1. android.useDeprecatedNdk=true 

打開local.properties,添加:

  1. ndk.dir=NDK的路徑 

最后打開app內(nèi)build.gradle,在android/defaultConfig下面添加ndk配置

  1. apply plugin: 'com.android.application' 
  2.  
  3. android { 
  4.  
  5.     compileSdkVersion 25 
  6.  
  7.     buildToolsVersion "25.0.0" 
  8.  
  9.     defaultConfig { 
  10.  
  11.         applicationId "com.lilei.testjni" 
  12.  
  13.         minSdkVersion 15 
  14.  
  15.         targetSdkVersion 25 
  16.  
  17.         versionCode 1 
  18.  
  19.         versionName "1.0" 
  20.  
  21.         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
  22.  
  23.         ndk { 
  24.  
  25.             moduleName "JNISample" 
  26.  
  27.         } 
  28.  
  29.     } 
  30.  
  31.     buildTypes { 
  32.  
  33.         release { 
  34.  
  35.             minifyEnabled false 
  36.  
  37.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
  38.  
  39.         } 
  40.  
  41.     } 
  42.  
  43.  
  44. dependencies { 
  45.  
  46.     compile fileTree(dir: 'libs', include: ['*.jar']) 
  47.  
  48.     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
  49.  
  50.         exclude group'com.android.support', module: 'support-annotations' 
  51.  
  52.     }) 
  53.  
  54.     compile 'com.android.support:appcompat-v7:25.3.1' 
  55.  
  56.     compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha8' 
  57.  
  58.     testCompile 'junit:junit:4.12' 
  59.  

moduleName 表示編譯出的so文件的名字

3.新建java訪問c層的接口類

創(chuàng)建一個Jni的工具類,并定義接口函數(shù),函數(shù)關(guān)鍵字用native(static用不用均可)

  1. package com.lilei.testjni; 
  2.  
  3. /** 
  4.  
  5.  * Created by lilei on 2017/3/29. 
  6.  
  7.  */ 
  8.  
  9. public class JniUtils { 
  10.  
  11.     public static native String getJniString(); 
  12.  

getJniString()方法即要與C層的交互的函數(shù)

4.生成頭文件

"make-project"編譯完成

打開終端,運行

運行成功之后打開app/build/intermediates/classes/debug/ 即可找到編譯出的頭文件"com_lilei_testjni_JniUtils.h",不難發(fā)現(xiàn)頭文件名是有原報名+類名組成   

  

  1. cd app/build/intermediates/classes/debug/ 
  2.  
  3. javah com.lilei.testjni.JniUtils 

 5.創(chuàng)建jni開發(fā)的文件夾

點擊app文件夾,New → Folder → JNI Folder, 選擇在main文件夾下即可,生成成功后main目錄下會出現(xiàn)一個jni的文件夾

找到剛才生成到頭文件,復(fù)制到j(luò)ni文件夾下(記得關(guān)閉剛才使用的終端,否則無法復(fù)制)

頭文件有了,現(xiàn)在在jni目錄下創(chuàng)建一個C++文件用于開發(fā)使用,命名與頭文件相同

編寫C++文件中定義函數(shù)的代碼

  1. #include "com_lilei_testjni_JniUtils.h" 
  2.  
  3. JNIEXPORT jstring JNICALL Java_com_lilei_testjni_JniUtils_getJniString 
  4.  
  5.         (JNIEnv *env, jclass) { 
  6.  
  7.     // new 一個字符串,返回Hello World 
  8.  
  9.     return env -> NewStringUTF("Hello World"); 
  10.  

6.java層加載so

回到JniUtils,加上  

  

  1. static { 
  2.  
  3. System.loadLibrary("JNISample"); 
  4.  

 7.運行Run

調(diào)用jni的函數(shù)

  1. package com.lilei.testjni; 
  2.  
  3. import android.support.v7.app.AppCompatActivity; 
  4.  
  5. import android.os.Bundle; 
  6.  
  7. import android.util.Log; 
  8.  
  9. public class MainActivity extends AppCompatActivity { 
  10.  
  11.     @Override 
  12.  
  13.     protected void onCreate(Bundle savedInstanceState) { 
  14.  
  15.         super.onCreate(savedInstanceState); 
  16.  
  17.         setContentView(R.layout.activity_main); 
  18.  
  19.         Log.i("Jni", JniUtils.getJniString()); 
  20.  
  21.     } 
  22.  

至此就成功運行出jni的Hello World了  

 

三、生成so文件

前文介紹如何運行C++程序,但是實際開發(fā)中大多是封裝編譯出so文件后進行開發(fā),就類似java里面的jar包

1.配置NDK環(huán)境變量

找到Android Studio安裝的NDK包的文件目錄(E:AndroidStudioSDKSDKndk-bundle),添加到系統(tǒng)的環(huán)境變量中

2.新建mk文件

在jni目錄下新建Android.mk

  1. LOCAL_PATH := $(call my-dir) 
  2.  
  3. include $(CLEAR_VARS) 
  4.  
  5. LOCAL_MODULE := JNISample 
  6.  
  7. LOCAL_SRC_FILES := com_lilei_testjni_JniUtils.cpp 
  8.  
  9. include $(BUILD_SHARED_LIBRARY) 

在jni目錄下新建Application.mk文件

  1. APP_STL := gnustl_static 
  2.  
  3. APP_CPPFLAGS := -frtti -fexceptions -std=c++0x 
  4.  
  5. APP_ABI := armeabi-v7a 
  6.  
  7. APP_PLATFORM := android-18 

3.編譯生成so

打開終端cd到j(luò)ni目錄下

調(diào)用ndk-build開始編譯so

  1. ndk-build 

運行無誤的話會如圖所示 

 

 

運行成功之后即會看到main文件夾下多了libs和obj的文件夾,里面就是生成的各種CPU的so文件

libs和obj里面都有so文件,兩者的區(qū)別google給出的解釋是: As part of the build process, the files in the libs folder have been stripped of symbols and debugging information. So you'll want to keep two copies of each of your .so files: One from the libs folder to install on the Android device, and one from the obj folder to install for GDB to get symbols from. 也就是說,libs目錄下生成的庫是剝離了符號表與調(diào)試信息的,而obj下的庫是帶有調(diào)試信息的。

至此jni的開發(fā)入門已完成

責(zé)任編輯:龐桂玉 來源: Android技術(shù)之家
相關(guān)推薦

2015-07-29 09:22:25

IOS多線程

2025-02-14 08:53:24

2021-09-30 07:59:06

zookeeper一致性算法CAP

2023-11-16 08:15:33

MySQL索引類型

2023-09-11 08:13:03

分布式跟蹤工具

2015-11-02 09:49:04

Android屏幕適配官方指導(dǎo)

2021-05-14 23:31:50

大數(shù)據(jù)計算機開發(fā)

2021-01-15 12:56:36

人工智能人工智能應(yīng)用

2020-12-09 08:01:38

Mybatis關(guān)系型數(shù)據(jù)庫

2016-03-25 10:08:31

httpios開發(fā)

2020-10-18 07:32:06

SD-WAN網(wǎng)絡(luò)傳統(tǒng)廣域網(wǎng)

2019-11-07 09:20:42

Node.js項目服務(wù)器

2024-08-02 11:51:03

2017-03-07 15:35:26

Android適配 界面

2017-03-10 21:04:04

Android適配

2018-01-17 09:32:45

人工智能卷積神經(jīng)網(wǎng)絡(luò)CNN

2018-11-14 11:57:28

2021-11-24 22:42:15

WorkManagerAPI

2023-10-30 07:12:04

2019-08-16 09:41:56

UDP協(xié)議TCP
點贊
收藏

51CTO技術(shù)棧公眾號

九9re精品视频在线观看re6| 久久中文字幕视频| av免费在线播放网站| 国产一二三在线观看| 久久爱91午夜羞羞| 麻豆精品视频在线观看| 日韩在线观看精品| 手机免费看av片| 另类激情视频| 亚洲免费观看在线视频| 久久精品国产精品国产精品污 | 特黄视频免费看| 成人情趣视频网站| 亚洲国产精久久久久久| 污网站免费在线| 黄色大片在线| 国产精品久久久久影视| 国产三级精品在线不卡| 艳妇乳肉豪妇荡乳av| 精品动漫3d一区二区三区免费版| 欧美三级三级三级爽爽爽| 青青青在线观看视频| 国产三级在线看| 成人激情免费网站| 操91在线视频| caopeng视频| a看欧美黄色女同性恋| 亚洲男同性恋视频| 欧美国产综合视频| 丰满人妻一区二区三区四区53 | 成人情趣视频| 亚洲精品美女在线| xxxxwww一片| 亚洲国产综合在线观看| 色偷偷久久人人79超碰人人澡| 奇米777四色影视在线看| 91se在线| 久久精品国产99| 欧美在线亚洲在线| 久久老司机精品视频| 久久久久电影| 最近更新的2019中文字幕 | 欧美日韩视频网站| 亚洲高清中文字幕| 99久热在线精品视频| 黄网站在线播放| 国产激情一区二区三区桃花岛亚洲| 国产成人精品一区二区| 九九九视频在线观看| 日本欧美不卡| 亚洲免费观看高清完整版在线 | 午夜电影网一区| 国产一区二区三区在线免费| 成人在线视频亚洲| 国产精品久久久久久久裸模| 日韩精品一线二线三线| 巨骚激情综合| 麻豆国产欧美日韩综合精品二区| 青青草成人在线| 综合激情网五月| 国产欧美一级| 欧美亚洲在线播放| 亚洲欧美综合自拍| 久久男女视频| 91av福利视频| 天天干在线播放| 爽好久久久欧美精品| 热久久免费国产视频| 午夜影院免费在线观看| 日韩精品一级中文字幕精品视频免费观看 | 日本三级免费网站| 天天免费亚洲黑人免费| 欧美视频一区二区三区在线观看| 黄大色黄女片18第一次| 国产精品va视频| 精品久久一二三区| 加勒比精品视频| 欧美禁忌电影网| 欧美一级精品大片| 91精品国产高清91久久久久久 | 日韩女优电影在线观看| 乱人伦xxxx国语对白| 日本在线播放一二三区| 色婷婷久久综合| 99re精彩视频| 91麻豆精品激情在线观看最新 | 久草在现在线| 国产精品三级视频| 亚洲乱码日产精品bd在线观看| 国产高潮在线| 欧美视频在线播放| 亚洲美女精品视频| 久久99久久人婷婷精品综合| www.xxxx欧美| 久久夜靖品2区| 久久se精品一区精品二区| 成人av影视在线| 可以在线观看的黄色| 亚洲日穴在线视频| 91九色在线观看视频| 高清欧美日韩| 亚洲福利影片在线| 国产大屁股喷水视频在线观看| 欧美激情第8页| 欧美在线一级va免费观看| 国产又粗又猛又爽又黄的视频一| 成人永久免费视频| 亚洲狠狠婷婷综合久久久| 91超碰在线免费| 欧美日韩国产大片| 亚洲国产综合视频| 欧美aⅴ99久久黑人专区| 国产97在线|日韩| 亚洲精品久久久蜜桃动漫| 国产欧美日韩视频在线观看| 欧美图片激情小说| 四虎国产精品永久在线国在线| 亚洲国产日韩欧美在线动漫| 99久久精品免费视频| 亚洲黄色毛片| 亚洲永久在线观看| 在线观看免费黄色| 色综合久久66| 亚洲色偷偷色噜噜狠狠99网 | 日韩精品免费一区| 久久麻豆视频| 亚洲天堂影视av| 日本高清www免费视频| 国产精品一区三区| 国产欧美久久久久久| 无码国产伦一区二区三区视频| 国产高清成人在线| 亚洲国产精品毛片| 在线观看v片| 亚洲精品aⅴ中文字幕乱码| 一级黄色录像视频| 韩国v欧美v日本v亚洲v| 亚洲巨乳在线观看| 精品国产欧美日韩一区二区三区| 欧美网站大全在线观看| 黑人巨大精品欧美| 亚洲在线国产日韩欧美| 国产99在线播放| 欧美女同一区| 精品国产人成亚洲区| 九九免费精品视频| 中文日韩在线| 国产一区免费在线观看| 国产偷倩在线播放| 欧美大片免费久久精品三p| 国内偷拍精品视频| 国产精品亚洲专一区二区三区| 久久99国产精品一区| 国精品产品一区| 中文字幕亚洲情99在线| 亚洲一级片免费看| 国产精品乱码久久久久久| 人人干人人干人人| 色天天久久综合婷婷女18| 国产精品日韩欧美| 黄色在线视频网站| 日韩欧美国产精品| 亚洲国产精一区二区三区性色| 老鸭窝亚洲一区二区三区| 国产伦精品免费视频| 在线看av的网址| 欧美一区二区三区的| 午夜69成人做爰视频| 懂色av一区二区夜夜嗨| 久久精品中文字幕一区二区三区| 欧美调教sm| 亚洲天堂网在线观看| 在线视频 中文字幕| 亚洲男人天堂av网| 男女一区二区三区| 葵司免费一区二区三区四区五区| 色综合久久久久久久久五月| 成全电影大全在线观看| 亚洲精品久久久久| 91青青草视频| 亚洲欧美日韩在线不卡| a级一a一级在线观看| 日产欧产美韩系列久久99| 国产精品h视频| 国产精品粉嫩| 中文字幕在线成人| 超碰在线人人干| 欧美性猛交xxxx久久久| 国产在视频线精品视频| 国产99精品国产| 男人的天堂99| 狼人精品一区二区三区在线 | 51一区二区三区| 欧美区在线播放| 免费福利在线观看| 欧美一区二区三区四区在线观看 | 91九色在线免费视频| 黄色在线网站噜噜噜| 中文字幕av一区| 高h震动喷水双性1v1| 欧美午夜寂寞影院| 国产午夜视频在线| 国产精品久久久久国产精品日日| 91精品又粗又猛又爽| 免费观看30秒视频久久| 隔壁人妻偷人bd中字| 欧美视频网址| 久久精品久久精品国产大片| 国产日韩一区二区三免费高清| 青草青草久热精品视频在线观看| 超鹏97在线| 国产亚洲一区二区在线| 日本免费一区视频| 7777精品久久久大香线蕉| 特级做a爱片免费69| 夜夜嗨av一区二区三区四季av| 国产在线综合视频| 成人免费三级在线| 午夜激情影院在线观看| 爽爽淫人综合网网站| 青青艹视频在线| 国产精品多人| 香蕉视频免费版| 成人亚洲一区| 日本一区精品| 一区三区在线欧| 国产亚洲自拍偷拍| www.丝袜精品| 99精品在线直播| av一级久久| 国产欧美一区二区三区四区| 国产中文字幕在线| 亚洲精品久久久一区二区三区| av中文字幕免费| 91精品国产综合久久久蜜臀粉嫩| 日本视频www色| 日本道精品一区二区三区| 91午夜视频在线观看| 亚洲一区二区欧美| 久草视频在线免费看| 亚洲人xxxx| 亚洲怡红院在线观看| 国产精品久久久久久福利一牛影视 | 久久久久久久久久久久久夜| 国产十八熟妇av成人一区| 国产精品一级在线| 久久久久久久久久久影视| 国内精品久久久久影院色| 不卡中文字幕在线观看| 国产一区久久久| 日本中文字幕在线不卡| 国产伦精品一区二区三区免费| 天天爽夜夜爽视频| 国产成人啪午夜精品网站男同| 永久av免费在线观看| 国产成人精品一区二| 国产精品久久久久久亚洲av| 99麻豆久久久国产精品免费| 少妇饥渴放荡91麻豆| 26uuuu精品一区二区| 久久国产柳州莫菁门| 国产精品毛片大码女人| 搜索黄色一级片| 成人美女在线观看| 亚洲av人人澡人人爽人人夜夜| zzijzzij亚洲日本少妇熟睡| 亚洲第一页av| 中文字幕 久热精品 视频在线| 欧美xxxx精品| 亚洲免费观看高清| 日韩视频免费观看高清| 色先锋资源久久综合| 国产精品无码久久av| 亚洲精品在线一区二区| 男男激情在线| 日韩中文字幕在线免费观看| 日本在线视频www鲁啊鲁| 91精品国产沙发| 91福利精品在线观看| 91视频-88av| 欧美a级网站| 日韩理论片在线观看| 欧美1区2区| 韩国一区二区av| 久久成人免费网站| 色婷婷精品久久二区二区密| 国产视频一区在线观看| 国产一区二区播放| 欧美性精品220| 国产熟女精品视频| 日韩精品在线电影| 看黄网站在线| 88国产精品欧美一区二区三区| 激情小说亚洲| 国产综合18久久久久久| 日韩一区电影| 黄色免费视频大全| 国产一区二区三区久久悠悠色av| 91av在线免费| 亚洲人成伊人成综合网小说| 免费黄色网址在线| 欧美成va人片在线观看| 成人免费一区二区三区视频网站| 欧美华人在线视频| 亚洲男同gay网站| 日韩av大片在线| 2020国产精品极品色在线观看| 欧美系列一区| 亚洲黄色一区| 国产三级精品三级在线| 久久亚洲一区二区三区明星换脸 | 欧美国产高潮xxxx1819| 黄在线观看网站| 粉嫩欧美一区二区三区高清影视| 日本猛少妇色xxxxx免费网站| 五月综合激情日本mⅴ| 国产三级三级在线观看| 这里只有精品久久| 自拍网站在线观看| 国产免费一区二区| 午夜久久影院| 五月天婷婷在线观看视频| 亚洲国产精品成人综合色在线婷婷| 精品成人久久久| 精品奇米国产一区二区三区| 成人免费高清| 国产日韩精品在线播放| 加勒比久久综合| 成人在线免费在线观看| 波多野结衣一区二区三区| 欧美日韩一级在线观看| 91精品国产综合久久国产大片| av资源网站在线观看| 国产精品99久久久久久www| 神马久久影院| 成人在线免费在线观看| 95精品视频在线| 欧美一级视频免费观看| 亚洲精品久久久久久久久| 精精国产xxxx视频在线播放| 国产高清在线精品一区二区三区| 欧美精品偷拍| 久久久久久久久久久影视| 亚洲最大色网站| 性欧美一区二区三区| 欧美成人h版在线观看| 久久中文字幕一区二区| 久久久天堂国产精品| 国产高清在线精品| 久久久久噜噜噜亚洲熟女综合| 日韩欧美国产系列| xxxx视频在线| 久久久久久久久一区二区| 欧美一级二区| 最新中文字幕av| 欧美日韩中文字幕一区| 日本欧美在线视频免费观看| 成人国内精品久久久久一区| 成人爽a毛片免费啪啪红桃视频| 国产在线观看欧美| 粉嫩aⅴ一区二区三区四区| 97超碰人人干| 国产性猛交xxxx免费看久久| 成人a在线观看高清电影| 一区二区三区四区视频在线| 国产在线精品不卡| 国产小视频在线观看免费| 亚洲国内精品视频| 性欧美超级视频| 一级日韩一区在线观看| 国产精品一色哟哟哟| 日韩视频免费观看高清| 国产亚洲精品久久| 电影中文字幕一区二区| 2018日日夜夜| 久久久不卡网国产精品一区| 在线观看不卡的av| 久久99视频免费| 色棕色天天综合网| 一级淫片在线观看| 性做久久久久久免费观看欧美| 日本不卡免费播放| 91精品视频网站| 99视频精品| 蜜桃av免费观看| 精品国产精品网麻豆系列| 欧美大片免费观看网址| 中文视频一区视频二区视频三区| 蜜桃av综合| 欧洲美女女同性互添| 日韩成人在线视频观看| 人人玩人人添人人澡欧美| 日韩精品综合在线| 中文字幕高清不卡| 国产综合视频在线| 国产精品视频内| 亚洲每日更新| 老熟妇高潮一区二区三区| 亚洲精品久久久久中文字幕二区 | 婷婷综合在线视频|