android 开发配置及jni使用总结

本文分享了作者在Android开发中配置JNI的实际经验,包括开发环境搭建、使用NDK编译C/C++库生成SO文件的过程及注意事项,以及如何在Java代码中正确调用这些本地方法。

本人文采不好,此文章是关于android配置jni使用 自己的一些经验总结。

首先说的是开发环境的搭建,网上很多教程,我也是在网上找的 步骤如下这里就不复述了。

  • 1.1、JDK安装
  • 1.2、Eclipse安装
  • 1.3、Android SDK安装
  • 1.4、ADT安装
  • 1.5、创建AVD
配置android开发环境是在windows系统下搭建的。
 电脑配置不够的朋友会发现 使用android AVD 模拟器会很慢,我有一个解决的办法,就是android-x86 ,可以把android系统安装在虚拟机上,运行效果比AVD 好很多,就是网络连接会有一些问题。具体的解决办法可以上网搜索。
eclipse 连接 android-x86 的方法时 ,先知道android-x86系统的IP ,eclipse 配置 android->DDMS 勾选上 use ADBHOST 再把IP 写在 ADBHOST value中。
在开发中需要使用第三方的库 ,他们给的源码是c/c++写的。刚开始接触android不太懂,首先想到的是把库用java翻译一下,后来发现这个工作量太大了,然后在网上搜索 原理android上可以使用c/c++的库的 就是jni。
接下来就是配置jni的环境了,网上有很多的教程,主要的就是 使用cygwin这个工具 在windows下模拟 unix的编译环境,我刚开始也下载这个工具,整整下载了一天多还没下下来(公司网特慢),ndk的版本有windows上的 还有linux上的,首先我下载的是windwos下的ndk r9d的版本由于cygwin下载不下来,只能选择别的发办法了。
网上有很多接受 linux上ndk的环境配置,那个还需要把android的环境在搭建一遍本麻烦的,后来就想 cygwin主要就是模拟unix的编译环境,我可以吧源码用linux编译一个android可以调用的so文件就可以解决问题了,后来验证我的方法时可以的。
首先在linux上安装ndk 并配环境变量,网上有教程。
编译的时候出现这样的问题,我是使用Vmware虚拟机安装的linux系统 使用共享文件夹来共享windwos和linux里的文件。把源码放在共享文件夹下 编译会出一个错的,需要把源文件放在别的路径下,例如 共享文件夹路径 /mnt/hgfs/Share/code 在这个路径下是编译不过的 需要反正该别的路径下 如 /home/code 就可以了。进入 jni文件夹在 ndk—build 就可以生成so文件了(没有错误的前提下)
还有一点,就是编译完的so文件 如何连接方法的问题,刚开始始终连接不上,原来是方法需要重命名,把你需要的方法前面加上 java_包名路径_l类名_方法名 才可以。
例如 c库有如下方法 long func(void);
在jni 对应的java调用的时候 需要那这个c的方法名改写成 jlong java_com_android_code_func(JNIEnv* env,  jobject thiz );
对应的返回值类型要改写 jlong ,string 需要改写成 jstring 原因是什么我不太清楚,因为刚接触^_^ 还在学习中。
想上面写的方法名称 对应的 java调用类名称是code.java 路径是 com/android 这个是不可以改的 否则会连接不到的。
在java中 使用so文件的方法 网上很多教程。我这里简单说一下
还是上面的例子
code.java 文件内容如下
public class code{
static{
System.loadLibrary("so文件名 不需要前面的 lib");
}
public native long func();
}
以上内容看着可能有点乱^_^ 请见谅 有需要的朋友参考下

基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文围绕基于NSGA-III算法的微电网多目标优化调度展开研究,重点介绍了如何利用该先进多目标进化算法解决微电网系统中多个相互冲突的目标(如运行成本最小化、碳排放最低、供电可靠性最高等)的协同优化问题。文中结合Matlab代码实现,详细阐述了NSGA-III算法的基本原理、在微电网调度模型中的建模过程、约束条件处理、目标函数设计以及仿真结果分析,展示了其相较于传统优化方法在求解高维、非线性、多目标问题上的优越性。同时,文档还提供了丰富的相关研究案例和技术支持背景,涵盖电力系统优化、智能算法应用及Matlab仿真等多个方面。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事能源优化领域的工程技术人员;尤其适合正在进行微电网调度、多目标优化算法研究或撰写相关论文的研究者。; 使用场景及目标:①掌握NSGA-III算法的核心思想及其在复杂能源系统优化中的应用方式;②学习如何构建微电网多目标调度模型并利用Matlab进行仿真求解;③为科研项目、毕业论文或实际工程提供算法实现参考和技术支撑。; 阅读建议:建议读者结合文中提供的Matlab代码实例,逐步调试运行并深入理解算法流程与模型构建细节,同时可参考文档中列出的其他优化案例进行横向对比学习,以提升综合应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值