成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android開發(fā)者都需要的NDK入門項目實戰(zhàn)

移動開發(fā) Android
本文我們一起聊一聊如何利用NDK生成SO庫,使用SO庫進行JNI調(diào)用,在Android sdcard創(chuàng)建文件并寫入數(shù)據(jù)。

本文我們一起聊一聊如何利用利用NDK生成SO庫,使用SO庫進行JNI調(diào)用,在Android sdcard創(chuàng)建文件并寫入數(shù)據(jù)。

工具:

NDK1.5 R1, android SDK1.5 R1, SDCARD, Eclipse , ADT 0.9, Eclipse Galileo for C/C++, Cygwin 1.5。

工具比較多,我是在Windows XP進行操作的,如果在Ubuntu或者其他的Linux系統(tǒng)下進行操作直接進入步驟2即可。請看步驟:

1. 安裝Cygwin

關于Cygwin的安裝請自行百度或者google,因為網(wǎng)速原因,建議大家使用本地安裝包進行下載:http://www.gougou.com/search?search=cygwin&id=2 下載一個38.2M 即可,我用的就是這個版本。

2. 安裝NDK

進入正題安裝NDK,首先打開cygwin,然后使用cd命令進入你的NDK根目錄,(不會用linux命令??Google去),然后運行:build/host-setup.sh

 

如果出現(xiàn)以上的信息,說明安裝正確,如果出現(xiàn)GCC為找到,請輸入gcc命令查看,如果出現(xiàn)toolchain未找到的信息,請試著修改build/host-setup.sh文件第一行代碼,將:#!/bin/sh 改成#!/bin/bash, 在Ubuntu上這個是需要修改的

安裝成后,我們使用make命令試試編譯自帶的程序,輸入make APP=hello-jni,hello-jni為apps下hello-jni文件夾的名稱,這個命令會先找到apps\hello-jni下地 Application.mk文件,然后找到source\samples\hello-jni這個目錄,然后找到Android.mk這個文件中的配置 信息進行編譯。看圖:

因為我的已經(jīng)編譯過了,使用 make APP=hello-jni -B進行重新編譯

 

出現(xiàn)上面的信息,說明編譯成功,so文件在apps/hello-jni/project/libs/armeabi文件夾下。

3. 書寫java native接口

下面我們進入實戰(zhàn)的階段,寫代碼。

建立一個android1.5的項目,NDK不支持1.5以下的版本

JNI.java的代碼:

 

JniTest.java的代碼:

 

4. 生成JNI 頭文件

下面生成JNI頭文件啦,使用javah命令,對JNI..java這個文件生成,別搞錯啦!

使用cmd進入android項目的bin目錄中,然后執(zhí)行 javah -classpath .  -jni cc.androidos.jni.JNI這個命令。別忘記包名!(^_^)

 

生成了一個cc_androidos_jni_JNI.h

打開看看:

 

里面都是c語言的頭文件聲明

#p#

5. 書寫C代碼,寫入數(shù)據(jù)

下面進行c語言代碼的階段,不會C的,可以去學習一下。

我這里使用eclipse for c/c++的進行開發(fā),簡單的代碼大家可以使用記事本。

工程如下:

 

cc_androidos_jni_JNI.h內(nèi)容不變

cc_androidos_jni_JNI.c的內(nèi)容:

 

在這里的代碼會在運行的時候向sdcard寫入androidos.cc.txt文件。然后寫入aaaa數(shù)據(jù)。

6. 編譯SO文件

進行編譯so文件:

在NDK的apps目錄下面創(chuàng)建一個myjni文件夾,在myjni文件夾中創(chuàng)建一個Application.mk文件,文件的內(nèi)容為: 

 

在NDKsources目錄下創(chuàng)建myjni文件夾,在myjni文件中創(chuàng)建一個Android.mk文件,然后將cc_androidos_jni_JNI.h和cc_androidos_jni_JNI.c文件copy進來:

 

Android.mk中的內(nèi)容如下:

 

里面內(nèi)容的關鍵字含義請自行查看docs\OVERVIEW.TXT文件

編譯:

7. 加入到Android項目中進行運行

將apps\myjni\libs整個文件夾copy到android項目下:

 

運行android項目使用adb shell進行查看:

 

進入sdcard查看數(shù)據(jù)。

注意:sdcard具有system的權限,如果你的目錄是root權限的,那么是不能寫成功的,除非是真機越權,模擬器是不成功的,并且在Eclipse logcat下會有DEBUG信息出現(xiàn)。

責任編輯:閆佳明 來源: oschina
相關推薦

2017-11-27 13:09:00

AndroidGradle代碼

2016-02-22 15:09:19

Android項目管理技巧

2013-01-16 15:07:30

Android NDKAndroid開發(fā)

2024-05-07 08:45:16

OpenAILlamaIndex大語言模型

2013-03-11 11:20:05

2014-05-08 13:36:07

Android Wea開發(fā)者預覽版

2024-04-26 13:36:01

2025-01-08 08:43:17

2023-05-19 10:04:18

Vue開發(fā)者代碼

2013-07-30 11:26:30

開發(fā)者Android 4.3root

2016-09-23 09:57:18

優(yōu)達學城Android 開發(fā)

2016-09-22 17:43:26

優(yōu)達學城Android 開發(fā)

2012-06-13 01:23:30

開發(fā)者程序員

2021-04-28 10:23:59

計算

2013-03-28 19:25:35

騰訊云

2012-12-17 16:03:30

TechED 2012

2015-03-10 09:23:21

前端開發(fā)Sublime插件Sublime

2015-03-25 11:12:35

iOS開發(fā)

2013-06-28 14:19:20

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合精品 | 欧美三级视频在线观看 | 国产区视频在线观看 | 色橹橹欧美在线观看视频高清 | 日韩免费1区二区电影 | 黄色片在线观看网址 | 日本免费一区二区三区四区 | 日本精品久久久一区二区三区 | 人人爽日日躁夜夜躁尤物 | 久久99精品久久久久久 | 欧美激情精品久久久久久变态 | 亚洲精品久久久久久宅男 | 天天弄天天操 | caoporn视频在线 | 日本一区二区三区四区 | 久草视频在 | 久久久久久久国产精品 | 亚洲不卡在线观看 | 91欧美精品成人综合在线观看 | 欧美5区| 欧美视频在线观看 | www久久爱 | 久久99精品国产麻豆婷婷 | 欧美一区二区三区在线 | 精品一区二区av | 天天影视亚洲综合网 | 精品福利av导航 | 亚洲欧美一区二区三区情侣bbw | 久久精品国产一区二区电影 | 色综合天天天天做夜夜夜夜做 | 精品福利视频一区二区三区 | 精区3d动漫一品二品精区 | 精品欧美一区二区在线观看欧美熟 | 黄色片视频免费 | 全免一级毛片 | 99精品国产一区二区青青牛奶 | 国产精品96久久久久久 | 一级毛片免费完整视频 | 粉嫩一区二区三区性色av | 久久天天躁狠狠躁夜夜躁2014 | 日韩欧美国产精品综合嫩v 一区中文字幕 |