`
rayloo
  • 浏览: 84164 次
  • 性别: 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如何传递大型数据呢,其实变通的方法可以通过共享一个文件方式处理一些大型数据。

分享到:
评论

相关推荐

    Android高级开发实战UI、NDK与安全

    其次对Android中的基础UI和高级UI的开发技巧进行了全面、透彻的讲解,接着对NDK的各个知识点进行了深入的剖析,并结合源码对其原理进行深入的分析。最后结合两大案例,让读者掌握企业中NDK开发的相关流程,以及在...

    MASTERING_ANDROID_NDK

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

    Android开发权威指南

    并将重要的知识点和开发技巧以“多学一招”、“扩展学习”、“技巧点拨”等的活泼形式呈现给读者。在程序实例的讲解方面,主要将实例安插在Android开发的精髓知识章节,这为读者学习与实践结合提供了很好的指导。 ...

    android开发资料大全

    Android开发开发技巧之 EditText 属性、 ProgressBar 各种样式大全 android用户界面之EditText教程实例汇 android用户界面之ListView教程实例汇 android用户界面之Toast教程实例汇 android用户界面之AlarmManager...

    Android和PHP开发最佳实践第2版(高清带详细目录书签)Pdf版及epub电子书版

    此外,书中还介绍了AndroidNDK的开发以及Android游戏开发的相关内容,包括OpenGL的使用、流行游戏引擎Cocos2d-x和Unity3D。本书适合所有对Android和PHP技术有兴趣的读者。不管是客户端还是服务端的开发者,都可以从...

    Android和PHP开发最佳实践

    本书以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧。从前期的产品设计、架构设计,到客户端和服务端的编码实现,再到性能测试和系统优化,以及的打包发布,...

    Android 开发电子书_4

    15个Android很有用的代码片段、Android_GPS架构分析、android_JNI编程_一些技巧、Android_NDK开发实例、Android_RIL层剖析(官方翻译)、Android的Message机制(简单小结)、Android的主题和风格介绍、Android日历完整...

    [Android开发权威指南].李宁.扫描版.pdf

    并将重要的知识点和开发技巧以“多学一招” “扩展学习” “技巧点拨”等的活泼形式呈现给读者 在程序实例的讲解方面 主要将实例安插在Android开发的精髓知识章节 这为读者学习与实践结合提供了很好的指导 ...

    Android UI界面开发源码1

    讲解了Windows和Linux操作系统下安装开发Android所需的工具集及...其次对Android中的基础UI和高级UI的开发技巧进行了全面、透彻的讲解, 接着对NDK的各个知识点进行了深入的剖析, 并结合源码对其原理进行深入的分析。

    Android开发之Android.mk模板的实例详解

    关于Android NDK开发的文章已经比较多了,我的博客中也分享了很多NDK开发相关经验和技巧,今天简单写了一个 Android.mk 的示例模板,供初学者参考。  本模板主要给大家示例 Android NDK 开发中的如下几个问题:  1...

    Android开发权威指南源码

    并将重要的知识点和开发技巧以“多学一招”、“扩展学习”、“技巧点拨”等的活泼形式呈现给读者。在程序实例的讲解方面,主要将实例安插在Android开发的精髓知识章节,这为读者学习与实践结合提供了很好的指导。

    Android UI界面开发源码2

    讲解了Windows和Linux操作系统下安装开发Android所需的工具集及...其次对Android中的基础UI和高级UI的开发技巧进行了全面、透彻的讲解, 接着对NDK的各个知识点进行了深入的剖析, 并结合源码对其原理进行深入的分析。

    android精品源码

    Android_NDK开发实例.doc Android_RIL层剖析(官方翻译).doc Android与JUnit深入浅出.pdf Android中文翻译组——Android中文API合集(4).pdf Android内存泄露调试.pdf android写的google map api 应用.zip Android...

    Android高薪之路:Android程序员面试宝典 李宁

    1 3 1 搭建Android开发环境 1 3 2 Android开发环境的使用 第2章 布局 2 1 Android中的布局 2 2 布局使用技巧 2 2 1 FrameLayout布局 2 2 2 LinearLayout布局 2 2 3 RelativeLayout布局 2 2 4 TableLayout布局 2 2 5 ...

    Android应用测试与调试实战

    第一部分为自动化测试篇(第1~11章),详细讲解了进行Android自动化测试需要掌握的各种技术、工具和方法,包括Android自动化测试基础、Android应用的白盒自动化测试和黑盒自动化测试的技术和原理、Android服务组件和...

    Android开发范例

    本书涵盖的内容相当丰富,从基本的控件使用、数据持久化到相对高级的NDK、Renderscript 开发都有比较详细的介绍,基本可以满足大多数开发者的需求。女1果结合AndroidAPIDemo中的范例一起使用,效果则更好。如1果你想...

    Android特刊 Ophone

    【eoeAndroid特刊】第一期: Andriod 1.5 SDK简介 【eoeAndroid特刊】第二期: 图像处理篇 【eoeAndroid特刊】第三期:Android Market及...【eoeAndroid特刊】第八期: 开发技巧 【eoeAndroid特刊】第八期 数据存储操作

Global site tag (gtag.js) - Google Analytics