700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > JNI开发笔记(一)--Android Studio安装与环境搭建

JNI开发笔记(一)--Android Studio安装与环境搭建

时间:2023-03-25 11:54:05

相关推荐

JNI开发笔记(一)--Android Studio安装与环境搭建

Android Studio安装与环境搭建

1. 前言1.1 什么是JNI1.2 JNI从零开发流程2. Java环境配置3. Android Studio安装参考链接

1. 前言

工作中需要将C/C++的代码做一层封装,以供前端APP调用,所以需要使用JNI来进行代码的封装和测试。本专栏主要讲述了JNI开发的基础流程,包括环境搭建,基础工程框架的实现,JNI常用语法,C/C++ so库的生成,aar库的生成以及如何进行样例测试等。本专栏的主要目的就是给没有JNI开发经验的算法工程师一个参考,即使没有任何JNI应用经验和Java语言基础,也能够快速掌握理解C/C++封装技巧。

1.1 什么是JNI

JNI是Java Native Interface的缩写,通过使用 Java本地接口书写程序,可以确保代码在不同的平台上方便移植,它允许Java代码和其他语言写的代码进行交互。JNI主要是为C和C++而设计的。

1.2 JNI从零开发流程

JNI的开发基本需要四步,分别是开发环境的搭建–>JNI基础框架搭建–>so库的生成–>aar库的生成,如下图所示。基于需求的不同,有的App前端只需要so库即可,但是大多数的App前端需要进一步封装的arr库。

整个开发流程中“坑”最多的是第一步,也就是开发环境的搭建。即使是相同的步骤和软件版本,不同人的电脑安装也会出不同的问题,本专栏尽可能的告知安装软件的具体版本以减少出错的概率。开发最容易出错的是第二部,JNI基础框架的搭建,主要包括Cmake文件的编译和native-lib.cpp的编写,只要理解其中的逻辑,细心一点bug就不会出现。so库的编译就比较简单,按照步骤操作就可以,arr库是在so库的基础上进一步封装,可以直接被App调用,直接按照步骤操作就可以。

2. Java环境配置

安装Android Studio之前需要确保我们的电脑上已经配置了JDK,确认方法如下:

win+R键输入cmd调出控制台,分别键入:

java -version

java

javac

如果出现以下内容,说明电脑上已经正确配置了JDK,可以跳到第3节安装Android Studio.

如果输入以上指令没有显示这些结果,说明电脑上没有安装JDK或者没有配置好,需要按照以下步骤来:

首先需要去官网下载JDK,下载之后直接安装即可,强烈建议使用默认安装路径(因为怕出幺蛾子),一路next即可,默认安装的话应该在文件夹:C:\Program Files\Java\jdk1.8.0_152

下一步就是配置系统环境变量, 这一步要细心一点,不然很容易出错。配置环境变量的步骤如下:

在“系统变量”新建一个变量名为JAVA_HOME的变量,变量值为你本地JDK的安装目录C:\Program Files\Java\jdk1.8.0_152

同样的再新建一个Path变量,Path大小写随意,变量的值为 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 当然如果你本地已经有Path了那么直接 ;拼接在后面。注意后面的分号;

最后一步新建一个CLASSPATH变量同理如果已经存在就直接拼接后面就好,多个值是有 ; 区分的(英文输入法),这里设置CLASSPATH的值是 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 搞定。注意前面的.;

环境变量配置完成之后重启命令终端后重新输入以下三个命令进行验证,

java -version

java

javac

如果没有问题了就可以直接安装Android Studio了。

3. Android Studio安装

Android Studio每个版本的差距比较大, 老的版本不支持native c++工程,建议大家安装比较新的版本,我安装的版本为4.1.2,具体信息如下图所示:

为避免以后因版本不同出现问题,建议安装4.1.2版本,可以参考Android Studio 4.1.2安装及环境搭建这篇文章来安装,写的非常详细。

参考链接

/item/JNI/9412164?fr=aladdin/bruse_android/article/details/83621300/interestedly/article/details/113415961

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。