总结:Android JNI开发疑点
来源:互联网 发布:笔记本电脑评测软件 编辑:程序博客网 时间:2024/05/16 04:52
很多Android新手对于JNI开发过程中的疑问不是很清楚,现整理如下:
1. JNI中,什么情况才处理jstring、jint、jobject这样的类型,其实通过NDK开发Android C++应用,大部分仍然是常规的cpp和h的标准写法,只有需要和Java层通讯的方法才包含了类似JNIEXPORT void JNICALL XXX这样的函数,大多数的逻辑和标准C/C++没有什么区别。
2. 我有一个在Windows上开发好的dll能否在Android上使用呢? 这里Android开发网提醒大家,对于dll这样的PE文件只能在Windows平台下使用,而Linux上的动态库so文件如果是PC上的也无法通过JNI在Android上调用,由于CPU的指令不同,手机上必须使用ARM交叉编译器生成才可以使用,而PC上的为x86或64位,即使是Hello World这样代码兼容性很强,也必须在NDK中重新编译才能在Android上使用。
3. 学习JNI的基础是什么,或者说什么顺序学习? 这点Android123推荐大家先了解Java的类型,和内部编码,然后学习C/C++语言,对于NDK r5开始支持的C++语言,这里Android开发网要和大家说下了,如果需要在JNI中调用Java的类,你可以学习下反射机制,同时C++ STL在NDK r5开始支持,这样开发应用维护起来更方便些。最后看下NDK的Samples下载Android源码Framework层基本上就没有什么大问题了。
4. 学习NDK最大的困难是什么? 这里Android123认为,国内网友大多数都在Windows下做开发工作,整个NDK环境需要Cygwin,同时mk这样的makefile编译脚本的手动编写可能不是很友好,这点Android开发网已经准备了一整套的Android开发工具,将在近期公开,帮助大家在PC辅助开发Android应用,同时常见问题提供了相应的链接。
1. JNI中,什么情况才处理jstring、jint、jobject这样的类型,其实通过NDK开发Android C++应用,大部分仍然是常规的cpp和h的标准写法,只有需要和Java层通讯的方法才包含了类似JNIEXPORT void JNICALL XXX这样的函数,大多数的逻辑和标准C/C++没有什么区别。
2. 我有一个在Windows上开发好的dll能否在Android上使用呢? 这里Android开发网提醒大家,对于dll这样的PE文件只能在Windows平台下使用,而Linux上的动态库so文件如果是PC上的也无法通过JNI在Android上调用,由于CPU的指令不同,手机上必须使用ARM交叉编译器生成才可以使用,而PC上的为x86或64位,即使是Hello World这样代码兼容性很强,也必须在NDK中重新编译才能在Android上使用。
3. 学习JNI的基础是什么,或者说什么顺序学习? 这点Android123推荐大家先了解Java的类型,和内部编码,然后学习C/C++语言,对于NDK r5开始支持的C++语言,这里Android开发网要和大家说下了,如果需要在JNI中调用Java的类,你可以学习下反射机制,同时C++ STL在NDK r5开始支持,这样开发应用维护起来更方便些。最后看下NDK的Samples下载Android源码Framework层基本上就没有什么大问题了。
4. 学习NDK最大的困难是什么? 这里Android123认为,国内网友大多数都在Windows下做开发工作,整个NDK环境需要Cygwin,同时mk这样的makefile编译脚本的手动编写可能不是很友好,这点Android开发网已经准备了一整套的Android开发工具,将在近期公开,帮助大家在PC辅助开发Android应用,同时常见问题提供了相应的链接。
5. 在Android JNI用处大吗? 对于大多数开发者来说可能主要用于OpenGL游戏设计上,不过对于纯运算,算法上C语言比Java有着很多天生的优势,这点不容置疑,多一门技术多一个出路嘛,整个Android源代码十分庞大,开源的力量最终还是能打败更封闭的Windows Phone和iOS的。
更多信息请访问:Android Application Development Center
新浪微博:欧锐信息科技
- 总结:Android JNI开发疑点
- Android-JNI开发总结
- Android JNI(NDK)开发总结
- android下jni开发总结
- Android jni开发问题总结
- Android jni开发的总结
- Android Jni开发细节总结
- [JNI] Android JNI总结
- Android 开发中JNI的使用总结
- Android之JNI开发步骤总结
- android之JNI开发步骤总结
- android之JNI开发步骤总结
- android 开发配置及jni使用总结
- android之JNI开发步骤总结
- android之JNI开发步骤总结
- android之JNI开发步骤总结
- android之JNI开发步骤总结
- android之JNI开发步骤总结
- 解决L2TP_VPN_768#连接错误的方法
- iPhone/iPad利用系统MFMailComposeViewController调用系统
- C#中Show()和ShowDialog()的区别
- 线程的一些基本概念
- PHP中的魔术方法,转自:http://4nail.iteye.com/blog/604913
- 总结:Android JNI开发疑点
- C#异步调用四大方法详解
- 网贴:打造最专业的VB6服务器应用开发-VB6真正的多线程
- android中自定义service的详解(例子)
- hibernate错误:Could not determine type for: java.util.Set
- _RecordsetPtr使用方法
- 自己重写右键菜单
- CTreeViewCtrl 方法集
- Asp.net Mvc Framework 四 (在.net2.0下运行)