日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

基于 Android NDK 的学习之旅-----序言

發(fā)布時(shí)間:2023/12/10 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于 Android NDK 的学习之旅-----序言 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前些日子做了個(gè)Android項(xiàng)目, 引擎層C, 準(zhǔn)備寫這個(gè)系類的文章,借此跟朋友來(lái)分享下我NDK開放的經(jīng)驗(yàn)以及自己知識(shí)的總結(jié)和備忘。希望能給需要這方面資料的朋友提供一定的幫助。

主要涉及到:

 ?環(huán)境的搭建

Android.mk 文件的配置

HelloWorld

NDK 打印信息

JNI 數(shù)據(jù)類型

Java 調(diào)用 C

C 調(diào)用 Java

數(shù)據(jù)的傳輸(基本數(shù)據(jù)類型的傳輸,引用數(shù)據(jù)類型的傳輸,數(shù)組的傳輸)

C中新建Java對(duì)象

Java方法在C中的映射(包括了簽名的使用)

C中如何調(diào)用Java的方法(包括了靜態(tài)的和非靜態(tài)的)

JNI中資源的釋放等等

?

?

?

?

?

先詳細(xì)介紹下NDK, JNI

?

What isthe NDK?

???Google Say

The Android NDK is a toolset that lets youembed components that make use of native code in your Android applications.

Android applications run in the Dalvikvirtual machine. The NDK allows you to implement parts of your applicationsusing native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse ofexisting code and in some cases increased speed.

?

Android NDK是一個(gè)工具集合,讓你嵌入組件,利用原生代碼在你的Android Application。

Android應(yīng)用在虛擬機(jī)上執(zhí)行.NDK允許你的應(yīng)用通過(guò)原生代碼如CC++去實(shí)現(xiàn).這將給某些應(yīng)用帶來(lái)好處,這種方式能代碼重用,并且在某些情況下提高執(zhí)行速度】(個(gè)人翻譯,翻譯不準(zhǔn)確的請(qǐng)指出)

?

?NDK全稱:Native Development Kit

Android NDK 是配合 Android SDK 的工具,Google 推出NDK的目的不是為了取代Android SDK,當(dāng)然也不可能完全取代,它只是作為AndroidSDK? 的一個(gè)補(bǔ)充。用來(lái)編譯應(yīng)用的原生代碼。

1、NDK是一系列工具的集合。

* NDK提供了一系列的工具,幫助開發(fā)者快速開發(fā)C(或C++)的動(dòng)態(tài)庫(kù),并能自動(dòng)將sojava應(yīng)用一起打包成apk。這些工具對(duì)開發(fā)者的幫助是巨大的。

* NDK集成了交叉編譯器,并提供了相應(yīng)的mk文件隔離CPU、平臺(tái)、ABI等差異,開發(fā)人員只需要簡(jiǎn)單修改mk文件(指出哪些文件需要編譯、編譯特性要求等),就可以創(chuàng)建出so

* NDK可以自動(dòng)地將soJava應(yīng)用一起打包,極大地減輕了開發(fā)人員的打包工作。

2、NDK提供了一份穩(wěn)定、功能有限的API頭文件聲明。

Google明確聲明該API是穩(wěn)定的,在后續(xù)所有版本中都穩(wěn)定支持當(dāng)前發(fā)布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標(biāo)準(zhǔn)庫(kù)(libc)、標(biāo)準(zhǔn)數(shù)學(xué)庫(kù)(libm)、壓縮庫(kù)(libz)、Log庫(kù)(liblog)。

?

What is the JNI?

? ?Sun say

THE Java NativeInterface (JNI) is a powerful feature of the Java platform.

Applications that usethe JNI can incorporate native code written in programming languages such as Cand C++, as well as code written in the Java programming language. The JNIallows programmers to take advantage of the power of the Java platform, withouthaving to abandon their investments in legacy code. Because the JNI is a partof the Java platform, programmers can address interoperability issues once, andexpect their solution to work with all implementations of the Java platform.

?

JNI是Java Native Interface的縮寫,中文為JAVA本地調(diào)用。從Java1.1開始,JavaNative Interface(JNI)標(biāo)準(zhǔn)成為java平臺(tái)的一部分,它允許Java代碼和其他語(yǔ)言寫的代碼進(jìn)行交互。JNI一開始是為了本地已編譯語(yǔ)言,尤其是C和C++而設(shè)計(jì)的,但是它并不妨礙你使用其他語(yǔ)言,只要調(diào)用約定受支持就可以了。 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的基于 Android NDK 的学习之旅-----序言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。