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

Android NDK初探 你也可以做移動開發

移動開發 Android
本文將為各位詳細介紹Android NDK的安裝、使用和實戰。由淺入深,你也可以成為一名Android開發者!

51CTO曾介紹Android開發WebView組件的使用詳解,本文將為各位詳細介紹Android NDK的安裝、使用和實戰。我下載的是Android Native Developer Kit (NDK) R4版本,當前的最新版。

Android NDK
Android NDK

下載地址如下: http://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.zip

我下面講的都是以linux環境為準,因為我的系統是linux的。windows下可以弄個Cygwin,模擬linux環境。

首先進入NDK目錄,有個README文件,里面提到了API的文檔在docs/STABLE-APIS.TXT里面,如何安裝NDK,參考docs/INSTALL.TXT,還有如何使用NDK,參考docs/HOWTO.TXT。建議這些文檔都看一遍,有個大概了解。

安裝: 

INSTALL.TXT里面講的是如何安裝,安裝NDK,就需要一個可以make環境,linux自帶了,所以不用關心。還有一點,以前的版本都需要運行build/host-setup.sh來進行初始化,這個版本把它刪除了,這樣更方便。

然后就是配置環境變量。

在~/.bashrc文件里面,添加Shell代碼

NDK_ROOT=~/android-ndk-r4b #后面的路徑是NDK所在的目錄,根據自己的目錄修改  export NDK_ROOT 

然后保存,重新打開bash。

使用: 

先拿sample試刀吧,剛開始什么都不知道,只有運行出一個例子,才能增加信心。

編譯的兩種方法:

1.進入要目標工程目錄,比如$NDK_ROOT/samples/hello-jni,然后執行$NDK_ROOT/ndk-build

2.在任何地方,執行$NDK_ROOT/ndk-build -C $NDK_ROOT/samples/hello-jni.

如果成功的話,會生成obj和libs兩個目錄。

選擇一種方法,編譯這個例子。然后打開eclipse,把hello-jni這個工程導入,運行,ok,就能看到效果了。

進階: 

docs下的STABLE-APIS.TXT里面講了系統API的用法。我以1.5為例。進入$NDK_ROOT/build/platforms/android-3/arch-arm/usr/include,里面有很多.h文件,這些都是可以在NDK里面調用的,除了linux和asm目錄下的。

一般來說,主要用到的是jni.h,里面提供了很多對類和對象的操作。

另外,1.5提供了log的API,在android/log.h里面,使用的時候,在c文件中#include <android/log.h>,然后在Android.mk里面加上LOCAL_LDLIBS := -llog,就可以了。

1.6到2.01提供了openGL ES 1.x的API,2.1提供了openGL ES 2.0的API,2.2提供了graphics的處理接口。使用方法同log。

實例: 

給出兩個點的坐標,求它們的距離。

首先,創建一個Point對象,

Java代碼 

  1. public class Point {    
  2.     float x;    
  3.     float y;    
  4. }    
  5.    
  6.  

然后在c文件中定義一個函數  

C代碼 

  1. jfloat Java_chroya_demo_ndk_Main_distance(JNIEnv* env, jobject thiz, jobject a,jobject b){}   

返回值是float,在jni中定義的是jfloat。

函數名規則: Java開頭,接著是包名的每一段,然后是類名,最后是Java中調用的方法名,中間都用下劃線隔開。第一個參數JNIEnv* env和第二個參數jobject thiz都是必須的,后面的才是Java中傳遞進來的參數。這里是兩個Point對象。

首先確定要做的步驟:

◆找到這個Point類

◆找到類中的域x和y的域id

◆根據ID取出x和y的值

◆計算結果并返回

那么代碼如下:

Java代碼 

  1. #include <jni.h>    
  2. #include <math.h>    
  3. #include <android/log.h>    
  4.     
  5. jfloat Java_chroya_demo_ndk_Main_distance(JNIEnv* env, jobject thiz, jobject a,jobject b)    
  6. {    
  7.         //步驟1    
  8.     jclass point_class = (*env)->FindClass(env, "chroya/demo/ndk/Point");    
  9.     if(point_class == NULL) {    
  10.         //printf("class not found");    
  11.         __android_log_write(ANDROID_LOG_INFO, "MyNdkDemo", "class Point not found");    
  12.         return 0;    
  13.     } else {    
  14.         __android_log_write(ANDROID_LOG_INFO, "MyNdkDemo", "found class Point");    
  15.     }    
  16.         //步驟2    
  17.     jfieldID field_x = (*env)->GetFieldID(env, point_class, "x", "F");    
  18.     jfieldID field_y = (*env)->GetFieldID(env, point_class, "y", "F");    
  19.         //步驟3    
  20.     jfloat ax = (*env)->GetFloatField(env, a, field_x);    
  21.     jfloat ay = (*env)->GetFloatField(env, a, field_y);    
  22.     jfloat bx = (*env)->GetFloatField(env, b, field_x);    
  23.     jfloat by = (*env)->GetFloatField(env, b, field_y);    
  24.         //步驟4    
  25.     return sqrtf(powf(bx-ax, 2) + powf(by-ay, 2));    
  26. }   
  27.  

然后在Java里面調用:

Java代碼 

  1. public class Main extends Activity {    
  2.        
  3.     @Override    
  4.     public void onCreate(Bundle savedInstanceState) {    
  5.         super.onCreate(savedInstanceState);    
  6.         TextView tv = new TextView(getApplicationContext());    
  7.         Point a = new Point();    
  8.         a.x = 3;    
  9.         a.y = 3;    
  10.             
  11.         Point b = new Point();    
  12.         b.x = 5;    
  13.         b.y = 5;    
  14.             
  15.         float d = distance(a,b);    
  16.         tv.setText("distance(a,b):"+d);    
  17.         setContentView(tv);    
  18.     }    
  19.         
  20.     public native float distance(Point a, Point b);    
  21.         
  22.     static {    
  23.         System.loadLibrary("demo");    
  24.     }    
  25. }    
  26.  

運行,得到結果distance(a,b):2.828427

源碼參見附件 。

【編輯推薦】

  1. Android平臺值得關注的開源項目 
  2. Android系統搜索對話框設計妙招 
  3. Android開發之WebView組件的使用詳解 
責任編輯:佚名 來源: Javaeye論壇
相關推薦

2012-03-16 13:43:29

2010-10-09 15:01:27

PhoneGapiPhoneAndroid

2011-06-16 10:25:29

AndroidAIR

2021-06-16 09:10:29

APP開發AndroidiOS

2010-08-03 10:32:42

Android 3.0Android 3.0Android開發

2019-06-28 12:34:34

Python情感分析NLP

2022-07-21 10:02:47

SonarQube代碼Java

2010-08-18 09:23:19

Flash Lite移動應用程序開發

2013-01-16 15:07:30

Android NDKAndroid開發

2013-12-27 09:54:58

Android開發NDK

2011-01-11 11:35:17

jQueryAndroidgoogle

2024-09-24 17:12:47

2012-10-08 10:18:11

2010-08-23 08:26:12

Android超算

2014-07-30 16:43:49

Android

2009-10-30 10:45:45

ScalaEclipseAndroid

2011-08-02 11:06:55

2019-01-15 14:41:06

數據分析新聞聯播統計分析

2015-10-10 10:52:53

移動游戲開發

2014-10-22 13:37:44

開發者程序員
點贊
收藏

51CTO技術棧公眾號

国产精品久久无码一三区| 91无套直看片红桃在线观看| 国产在线看片免费视频在线观看| wwwwww.欧美系列| 国产精品视频白浆免费视频| 欧美精品99久久久| 精品在线观看入口| 欧美一级一级性生活免费录像| 国产v片免费观看| 1024视频在线| 91在线视频官网| 成人av在线网址| 一级片视频在线观看| 欧美高清日韩| 中文字幕久热精品视频在线| 韩国黄色一级片| 日本成人在线网站| 日韩欧美成人网| 日本中文字幕在线视频观看| 欧美日韩在线看片| 久久综合色8888| 91偷拍精品一区二区三区| 自拍偷拍18p| 亚洲国产一区二区精品专区| 久久深夜福利免费观看| 一级黄色性视频| 欧美黑人巨大videos精品| 91精品国产综合久久婷婷香蕉| 激情五月开心婷婷| www.51av欧美视频| 亚洲国产成人精品视频| 992tv成人免费观看| 国产视频三级在线观看播放| 91麻豆.com| 国产手机精品在线| 亚洲第一页综合| 国产一区二区三区观看| 国产在线精品成人一区二区三区| 国产亚洲欧美日韩高清| 国内一区二区三区| 色七七影院综合| 欧美a在线播放| 国内成人自拍| 一区二区三区四区在线观看视频| 亚洲观看黄色网| 精品欧美午夜寂寞影院| 亚洲а∨天堂久久精品9966| 又黄又色的网站| 国产精品久久久久av蜜臀| 欧美xxx久久| 丰满人妻一区二区三区大胸 | 日韩暖暖在线视频| 国产日产精品一区二区三区| 亚洲免费婷婷| 国产成人极品视频| 国产偷人爽久久久久久老妇app | 日韩av电影免费观看高清| 男人的天堂一区二区| 99在线|亚洲一区二区| 国内免费精品永久在线视频| 免费观看一级视频| 一区二区三区精品视频在线观看 | 国产精品成人网站| 国产精品试看| 国产精品jizz在线观看麻豆| 中文天堂在线资源| 国产乱码精品一区二区三区av| 7777精品伊久久久大香线蕉语言 | av激情亚洲男人天堂| 精品久久精品久久| 国产在线日本| 最好看的中文字幕久久| 91免费国产精品| 国产在线精彩视频| 欧美性大战xxxxx久久久| 亚洲另类第一页| 亚洲网一区二区三区| 日韩av中文在线| 欧美丰满老妇熟乱xxxxyyy| 99精品在线免费在线观看| 色综合天天狠天天透天天伊人| 国产一级一片免费播放| 久久国产日韩| 91免费版网站入口| 色窝窝无码一区二区三区| 久久精品网站免费观看| 成人性做爰片免费视频| 性国裸体高清亚洲| 欧美精品在线观看一区二区| 蜜桃色一区二区三区| 亚洲伊人春色| 色在人av网站天堂精品| 99超碰在线观看| 狠狠色丁香婷婷综合| 九九99久久| 欧美日韩xx| 欧美午夜激情视频| 污污的视频免费观看| 欧美国产极品| 麻豆一区二区在线观看| 免费观看成人毛片| 国产主播一区二区三区| 免费国产在线精品一区二区三区| 在线观看黄色av| 欧美日韩国产精品一区二区不卡中文| a在线观看免费视频| 国产区精品视频在线观看豆花| 中文字幕久久久| www亚洲视频| 国产黑丝在线一区二区三区| 神马影院一区二区| 9lporm自拍视频区在线| 欧美日韩成人高清| 欧美熟妇一区二区| 韩日成人在线| 成人免费观看a| 精品欧美不卡一区二区在线观看| 亚洲一区二区三区四区不卡| 男人的天堂最新网址| 宅男在线一区| 午夜精品久久久久久久白皮肤 | 亚洲天堂av片| 豆国产96在线|亚洲| 中文字幕一区二区三区最新 | 欧美边添边摸边做边爱免费| 精品福利在线观看| 日本精品一二三| 欧美高清不卡| 亚洲综合小说区| 免费高清完整在线观看| 欧美视频一二三区| 国产人妻大战黑人20p| 99视频在线精品国自产拍免费观看| 91亚洲人电影| 99视频免费在线观看| 欧美日韩你懂得| 天天干天天操天天拍| 视频一区二区三区入口| 久久涩涩网站| 在线观看涩涩| 亚洲人成在线电影| 中文字幕免费观看| 国产亚洲制服色| 欧美伦理片在线观看| 国产欧美日韩视频在线| 国产精品久久久久91| 成人免费视频| 欧美主播一区二区三区| 亚洲aaa视频| 国产在线精品国自产拍免费| 国产麻豆电影在线观看| 成人亚洲精品| 久热精品视频在线| 亚洲av无码一区二区乱子伦| 亚洲国产一区二区在线播放| av漫画在线观看| 99在线精品免费视频九九视| 久久天天狠狠| 日本中文字幕一区二区| 在线观看日韩欧美| 国产又粗又猛又爽又黄的视频一| 亚洲欧美国产高清| 亚洲成a人片在线www| 最新日韩欧美| 日韩中文字幕一区二区| 日本一区二区电影| 久久久91精品国产| 亚洲免费黄色片| 岛国av在线不卡| 亚洲av熟女国产一区二区性色| 另类专区欧美蜜桃臀第一页| 激情五月五月婷婷| 国产欧美一区二区三区米奇| 热久久免费视频精品| h视频在线观看免费| 制服丝袜日韩国产| 91美女免费看| 成人欧美一区二区三区小说| 又黄又色的网站| 久久综合九色综合欧美狠狠| 午夜精品一区二区三区在线观看| 麻豆精品国产| 欧美在线性视频| 麻豆最新免费在线视频| 亚洲国产精彩中文乱码av| 亚洲性猛交富婆| 亚洲午夜激情av| 四季av中文字幕| 成人黄色av电影| 亚洲一级片网站| 极品少妇一区二区三区| 视频在线99re| 国产精品115| 国产欧美日韩免费| 爱啪啪综合导航| 久久精品国产亚洲| 日韩二区三区| 日韩精品在线一区二区| 国产成人麻豆免费观看| 亚洲一区免费观看| 国产第一页精品| 91小视频在线| 伊人影院在线观看视频| 日韩av中文字幕一区二区| 韩日视频在线观看| 欧美残忍xxxx极端| 欧美精品免费观看二区| 亚洲一二三区视频| 成人黄色短视频在线观看 | 国产精品视频久久| 蜜桃在线视频| 欧美国产日韩一区二区在线观看 | 亚洲一区在线观看视频| 国精产品一区一区| 久久久亚洲精品石原莉奈| 日本美女视频网站| 国产一区二区三区高清播放| 亚洲人成无码www久久久| 亚洲经典三级| 日韩在线观看a| 888久久久| 中文字幕日韩一区二区三区| 欧美精品一二| 欧美午夜欧美| 伊人成综合网伊人222| 韩国一区二区三区美女美女秀 | 欧美大片在线观看一区二区| 91久久精品国产91性色69| 在线观看免费视频综合| 久久久精品视频网站| 激情懂色av一区av二区av| 久久亚洲精品大全| 一区二区三区高清不卡| 亚洲一级生活片| 中文字幕中文字幕中文字幕亚洲无线 | 日韩精品在线免费看| 亚洲精品第1页| 精品自拍偷拍视频| 亚洲色图欧洲色图| caoporn91| 一区二区在线观看视频| 欧美人妻一区二区| 亚洲一区二区三区视频在线播放 | 日韩三级影院| 久久久久www| 国产美女福利在线| 九九久久综合网站| 日韩123区| 韩国三级电影久久久久久| 97超碰在线免费| 青青久久av北条麻妃海外网| 亚洲精品成人图区| 国产精品久久77777| 国产成人77亚洲精品www| 国产免费久久av| 国产视频一区二| 国产91一区二区三区| 偷拍一区二区| 亚洲看片网站| 这里只有精品在线| 国产日本在线播放| 久久久久久久波多野高潮日日| 欧美黑人又粗又大又爽免费| 九色|91porny| 在线精品视频播放| 久久久久久久久久久久久久久99| 2019男人天堂| 亚洲欧美乱综合| 日韩精品一区二区三| 欧美午夜不卡在线观看免费| 国产欧美久久久精品免费| 精品国精品自拍自在线| 日本一二三区在线视频| 中文一区二区视频| 欧洲性视频在线播放| 51久久精品夜色国产麻豆| 国产精品成人国产| 99c视频在线| 九九久久成人| 亚洲免费视频播放| 日韩视频精品在线观看| 无码少妇一区二区三区芒果| 国产精品一品二品| 黄色短视频在线观看| 中文字幕中文字幕一区| 国产精品白浆一区二小说| 91久久精品一区二区三区| 国产黄色免费大片| 亚洲欧美在线一区二区| 尤物yw193can在线观看| 日韩免费av在线| 超碰成人免费| 一区二区视频在线观看| 一区二区三区福利| 五月天婷婷在线观看视频| 2021中文字幕一区亚洲| 国产麻豆视频在线观看| 色猫猫国产区一区二在线视频| 国产sm主人调教女m视频| 亚洲视频777| caoporn视频在线| 国产免费成人av| 免费看成人吃奶视频在线| 青青草综合在线| 日本三级亚洲精品| 三级黄色片网站| 亚洲综合在线免费观看| 在线视频1卡二卡三卡| 日韩国产高清视频在线| 少女频道在线观看免费播放电视剧| 日本不卡视频在线播放| 成人高潮视频| 99中文字幕在线观看| 蜜桃av一区二区| 最新中文字幕视频| 亚洲成人中文在线| www.av日韩| 欧美日韩精品一区二区三区| 搡的我好爽在线观看免费视频| www.视频一区| 国精产品视频一二二区| 婷婷成人激情在线网| 国产孕妇孕交大片孕| 亚洲女人被黑人巨大进入| 日本动漫同人动漫在线观看| 国产精品第七十二页| 日韩精品a在线观看91| 国产情侣第一页| 国产一区二区三区av电影| 俄罗斯毛片基地| 欧美中文字幕一区| 欧美成人片在线| 欧美又大又硬又粗bbbbb| 大伊香蕉精品在线品播放| 黑人巨大国产9丨视频| 另类成人小视频在线| 欧美激情久久久久久久| 在线观看精品一区| 黄色的视频在线免费观看| 青草热久免费精品视频 | 亚洲国产高清一区二区三区| 欧美性猛交xx| 一区二区三区.www| 亚洲av无码片一区二区三区| 欧美成人免费va影院高清| 国产一区二区在线观| 公共露出暴露狂另类av| 国产又黄又大久久| 婷婷激情四射网| 欧美一级片在线看| 一二三四区在线观看| 91九色在线免费视频| 亚洲一级电影| 噜噜噜在线视频| 色婷婷激情久久| 成黄免费在线| 国产日韩欧美在线看| 国产精品久久占久久| 国产高清av片| 亚洲成av人片在线观看无码| 水莓100在线视频| 国产成人a亚洲精品| 天天射成人网| 日本一区二区免费视频| 午夜精品一区在线观看| 看电影就来5566av视频在线播放| 国产精品久久久久久影视| 天堂美国久久| 韩国黄色一级片| 色呦呦国产精品| 日本免费中文字幕在线| http;//www.99re视频| 亚洲综合不卡| 成人做爰视频网站| 欧美精品一区二区三区久久久| 在线看的毛片| 一区二区视频在线观看| 不卡视频一二三四| 欧美性猛交xxxx乱大交hd| 久久久精品视频成人| 国产欧美自拍一区| 另类小说色综合| 亚洲午夜久久久久久久久电影网| 欧美美女色图| 亚洲伊人第一页| 久久久久中文| 久久久久久激情| 国产亚洲精品高潮| 色妞ww精品视频7777| 免费高清在线观看免费| 亚洲日本在线观看| 欧美日韩国产综合视频| 96精品久久久久中文字幕| 校园激情久久| 麻豆chinese极品少妇| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 爱情岛论坛亚洲首页入口章节| 夜夜亚洲天天久久| 1769视频在线播放免费观看| 久久99精品国产99久久|