`
rayloo
  • 浏览: 86648 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android NDK开发技巧一

阅读更多

平时我们开发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如何传递大型数据呢,其实变通的方法可以通过共享一个文件方式处理一些大型数据。

分享到:
评论

相关推荐

    androidndk开发实战

    总的来说,这个资源包为Android NDK开发提供了一个全面的学习路径,从环境搭建到实际应用,再到高级技巧,一步步引导开发者深入理解并熟练掌握NDK编程。通过实践这些文档中的内容,开发者可以提升其在Android平台上...

    android ndk开发实例代码

    这个"android ndk开发实例代码"提供了一个入门级的示例,帮助开发者理解NDK和JNI(Java Native Interface)的结合使用。 JNI是Java平台的标准部分,它为Java代码提供了调用本地(非Java)代码的能力。在Android开发...

    Android NDK 开发的官方文档(android ndk dev guide)

    总的来说,Android NDK开发涉及广泛的系统知识和编程技巧,从安装配置到实际编程,都需要开发者具备扎实的C/C++基础和对Android系统的深入理解。通过阅读官方文档(如"android_ndk_dev_guide"中的documentation.html...

    《Android NDK 开发教程 - v1.0》PDF

    学习NDK开发,你需要掌握以下关键知识点: 1. **环境配置**:安装和配置NDK,设置Android Studio以支持原生开发,创建CMake或ndk-build脚本来构建本地库。 2. **JNI(Java Native Interface)**:理解JNI的概念,...

    Android NDK 开发入门例子

    理解JNI机制、熟悉CMake和Android Studio的C++支持是进行NDK开发的基础。此外,需要注意内存管理、多线程以及性能优化等问题,以确保应用的质量和效率。通过不断实践,你可以掌握更多的NDK技巧,开发出更具特色的...

    Android NDK基础开发

    Android NDK(Native Development Kit)是Google为Android平台提供的一款工具集,允许开发者在Android应用中使用C++和其它...不过,NDK开发也需要对C/C++编程和Android系统有深入理解,实践中应结合具体需求灵活运用。

    android ndk 开发实例

    对于想要进一步探索 Android NDK 开发的人来说,这是一个很好的起点。在未来的学习过程中,可以尝试更复杂的示例,如 OpenCV 图像处理、OpenGL ES 渲染等,来进一步掌握 Android NDK 的使用技巧。

    Android NDK R9环境配置 开发教程 NDKhi工程源码)

    NDK开发还包括对C/C++代码的调试。Android Studio提供了对原生代码的调试支持,你可以设置断点,检查变量,甚至步进到C/C++代码中。此外,注意跨语言的内存管理和异常处理,因为在Java和C/C++之间传递对象时可能会...

    非常详细的android ndk开发样例

    1. **环境配置**:首先,开发者需要设置好NDK开发环境,包括下载并安装Android Studio,配置NDK路径,以及设置CMake或ndk-build构建系统。此外,还需要熟悉Android.mk和CMakeLists.txt等构建文件的编写。 2. **JNI...

    android-ndk-r23b-linux.zip

    Android NDK(Native Development Kit)是Google为Android平台提供的一套用于开发原生代码的工具集,它允许开发者使用C++和其他本地语言编写应用程序,进而利用Android设备的硬件特性,提高应用的性能和效率。...

    android ndk-stack使用说明。

    通过以上步骤,我们可以有效地利用`ndk-stack`工具来解决在Cocos2d-x、JNI以及Android NDK开发过程中遇到的调试难题。尤其是在处理C/C++代码时,能够更加直观地看到函数调用的流程,这对于定位bug具有极大的帮助。...

    android ndk开发(从环境搭建到运行demo全教程)

    在`android NDK开发1 环境搭建.docx`中,首先你需要确保已安装了Android Studio,因为NDK是与之紧密集成的。接着,你需要下载并配置NDK。在Android Studio的SDK Manager中,可以找到NDK选项进行安装。安装完成后,...

    Android NDK Beginner’s Guide第五章源码

    - 《Android NDK Beginner’s Guide》第五章的源码可能包含了示例程序,用于演示如何使用NDK开发原生库,例如创建一个简单的JNI函数,处理Android平台的文件系统,或者使用OpenCV等库进行图像处理。 - 通过阅读和...

    android NDK 入门项目 实战 详细文档

    6. **性能优化**:NDK开发的一个重要目标是提高性能。这可能涉及内存管理优化、多线程编程、算法优化等。理解Android的内存模型和线程模型对优化至关重要。 7. **安全考虑**:虽然原生代码能提供更高的性能,但也会...

    android-image-filter-ndk,使用android ndk在c中处理位图的android示例项目.zip

    《Android NDK与C语言实现图像过滤器的详解》 Android NDK(Native Development ...通过学习该项目,开发者不仅可以掌握Android NDK的使用,还能深入理解图像处理的原理和技巧,为开发高性能的图像应用打下坚实基础。

    MASTERING_ANDROID_NDK

    掌握 Android NDK构建系统 - 第1部分:使用ndk-build的技术 本文不是“Hello world!” - NDK的类型教程。虽然我仍然会快速介绍ndk-build的基本知识,但它不是本文的重点。相反,我将总结一些非常有用的NDK技术和我...

    Android-NDK.rar_NDK_android_android ndk

    Android NDK 是一款重要的开发工具,它允许Android应用开发者使用C和C++语言进行原生代码编程。在Android平台上,通常我们使用Java进行应用程序开发,但NDK提供了一种方式来利用高性能、低级别的原生代码,这对于...

    Android NDK JNI 开发

    Android NDK JNI 开发是移动应用开发中的一个重要领域,它允许开发者使用C++和其他原生语言来编写部分Android应用程序,从而提升性能、利用硬件加速以及复用现有的C/C++库。JNI(Java Native Interface)是Java平台...

    android-ndk-r16-beta1-windows-x86_64

    《Android NDK R16 Beta 1:游戏与安卓开发的利器》 Android NDK(Native Development Kit)是Google提供的一款用于安卓应用开发的重要工具,它允许开发者在Android平台上使用C/C++语言进行原生代码编程。这次我们...

Global site tag (gtag.js) - Google Analytics