Android NDK学习笔记2:数组
生活随笔
收集整理的這篇文章主要介紹了
Android NDK学习笔记2:数组
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/119152933
本文出自【趙彥軍的博客】
文章目錄
- java數(shù)組和jni數(shù)組對應關系
- jobjectArray 實戰(zhàn)
- 獲取數(shù)組長度
- 獲取數(shù)組第一個元素
- jintArray 實戰(zhàn)
- 獲取第一個元素
java數(shù)組和jni數(shù)組對應關系
| IntArray | jintArray |
| DoubleArray | jdoubleArray |
| LongArray | jlongArray |
| CharArray | jcharArray |
| ShortArray | jshortArray |
| Array | jobjectArray |
jobjectArray 實戰(zhàn)
獲取數(shù)組長度
class MainActivity : AppCompatActivity() {private lateinit var binding: ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)val array = arrayOf("first", "two")binding.sampleText.text = "長度為:" + arrayLength(array)}/*** A native method that is implemented by the 'native-lib' native library,* which is packaged with this application.*/external fun arrayLength(array: Array<String>): Intcompanion object {// Used to load the 'native-lib' library on application startup.init {System.loadLibrary("native-lib")}} }native-lib.cpp
extern "C" JNIEXPORT jint JNICALL Java_com_example_myapplication_MainActivity_arrayLength(JNIEnv *env, jobject thiz,jobjectArray array) {//獲取數(shù)組長度int length = env->GetArrayLength(array);return length; }獲取數(shù)組第一個元素
lass MainActivity : AppCompatActivity() {private lateinit var binding: ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)val array = arrayOf("first", "two")binding.sampleText.text = "第一個元素:" + arrayFirst(array)}/*** A native method that is implemented by the 'native-lib' native library,* which is packaged with this application.*/external fun arrayFirst(array: Array<String>): Stringcompanion object {// Used to load the 'native-lib' library on application startup.init {System.loadLibrary("native-lib")}} }native-lib.cpp
extern "C" JNIEXPORT jstring JNICALL Java_com_example_myapplication_MainActivity_arrayFirst(JNIEnv *env, jobject thiz,jobjectArray array) {//獲取array第一個元素jobject first = env->GetObjectArrayElement(array, 0);//把jobject強轉(zhuǎn)成jstringreturn static_cast<jstring>(first); }jintArray 實戰(zhàn)
獲取第一個元素
class MainActivity : AppCompatActivity() {private lateinit var binding: ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding = ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)val array = intArrayOf(1, 2, 3)binding.sampleText.text = "第一個元素:" + arrayInt(array)}/*** A native method that is implemented by the 'native-lib' native library,* which is packaged with this application.*/external fun arrayInt(array: IntArray): Intcompanion object {// Used to load the 'native-lib' library on application startup.init {System.loadLibrary("native-lib")}} }native-lib.cpp
extern "C" JNIEXPORT jint JNICALL Java_com_example_myapplication_MainActivity_arrayInt(JNIEnv *env, jobject thiz, jintArray array) {jint *result = env->GetIntArrayElements(array, JNI_FALSE);//獲取第一個元素return result[0]; }總結
以上是生活随笔為你收集整理的Android NDK学习笔记2:数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android NDK学习笔记1:基础
- 下一篇: Android NDK学习笔记3:JNI