Android NDK开发技巧一 Android开发技术

  平时我们开发Android应用时可能部分要求由于性能问题需要使用NDK来实现,比如OpenGL、OpenCore这样的多媒体应用,使用本地C/C++语言可以处理一些性能敏感或复杂的算法,Android123就我们日常NDK开发中遇到的问题以及技巧逐一总结方便网友查阅。

     1. Android NDK编译的应用可以运行在Android 1.5或更高的操作系统上,在Android平台中本地调用主要通过JNI方式处理,JNI调用开销不小如果很简单的操作没有必要画蛇添足。

     2. 一般NDK生成的so文件如何打包到apk中去呢?一般工程目录下创建一个libs文件夹,当然了手动释放也可以比如说 data/data/cn.com.android123.cwj/files/rmvb-decoder.so

     3. 在JNI下面,我们常用的命名方式:

    static JavaVM *g_VM;   //全局环境指针

    static jclass jNativesClass;

  (*env)->GetJavaVM(env, &g_VM);   //获取env环境指针,这样以后用g_VM就可以了。

     4.   jobjectArray jargv // java数组

int getArrayLen(JNIEnv * env, jobjectArray jarray): //获取一个Java数组长度,返回为jsize类型

jstring jele = (jstring)(*env)->GetObjectArrayElement(env, jargv, n);  //从将Java数组元素n转为本地的jstring
const char *word = (*env)->GetStringUTFChars(env, jele, 0); //将java的utf字符转为c下面的char*

   5.  记住释放内存,这不是java

  (*env)->ReleaseStringUTFChars(env, jele, word); 

   6. 有关Java类命名方式

    (Ljava/lang/String;I)V   其中本句

 I = Integer
B = Byte
S = Short
C = Char
LXXX; = L加上类名

  7. JNI本身没有什么技术含量,Android123提醒大家,会C语言的网友只需要知道Java和C/C++中如何通过JNI相互传输数据即可。

  8. JNI和Java如何传递大型数据呢,其实变通的方法可以通过共享一个文件方式处理一些大型数据。

  有关Android NDK和JNI的相关内容,我们在下次告诉大家各种数据类型的相互传输和通讯,如果你有什么疑问可以来函至 Android开发网

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号