Android进阶之路(一) -- AS 3.0NDK环境搭建及hello world

通过一段找实习的经历,以及快应用、小程序、web app等移动开发模式的冲击,深深为安卓原生开发的未来感到担忧,希望接入人工智能API和物联网井喷能给安卓开发带来新的生机吧。

当然,作为小白我是不用担心这么多的,做自己喜欢的事就好了,于是抛开杂念,继续学习安卓。

NDK开发环境的搭建

相信很多人都在用Android Studio开发安卓了,当然,我也是用AS开发的,所以就用AS开始NDK开发环境的搭建。

我们用最简单的方式,在Setting或者SDK Manager找到如下界面,选中CMake和NDK后Apply。


CMake是可选项,很熟悉C并且不嫌麻烦的可以不选此项。

安装的时间还是挺长的,利用这段时间,我们来学习一下NDK的开发流程。

1、java类中声明native方法

2、创建C/C++文件、实现native方法

3、在CmakeLists.txt中添加文件路径

4、静态代码块中加载library

5、调用native方法


我们来操作一下:

首先新建项目,添加C++支持,一路next,finish之后,我们发现目录结构比不加NDK的多了一点东西,其中

cpp和CMakeLists.txt,是我们接下来要用到的。



1、声明native方法

java目录下任意一个包里新建一个类,创建一个native方法,注意不能加方法体。



2、创建C/C++文件

cpp目录下新建一个c/c++ source file,我把它命名为hello,并实现sayHello方法



3、配置CMakeLists.txt,哇,好多英文啊,但实际上去掉#注释的内容,实际的配置并不多,而且我们今天需要关注的只有add_library()这一块。


英文不好如我都能大概看懂是什么意思,相信你也可以的,

第一项是library的名字,这个需要记住,一会儿要用到,

第二个是设置库类型,可以设置成静态库,动态库,模块库之类的,以后学习到再详细介绍。

第三个是源文件路径,在这里,我们需要把写好的hello.cpp添加进来。

添加之后是这样的



4、静态代码块中加载library

这是是通过System.loadLibrary方法把我们的库加进项目,使之能正常运行。



5、调用native方法


运行结果,如下



当然,开发步骤可以根据实际需要做调整

附赠一种AS3.0下解决包冲突的方式

    api("com.github.bumptech.glide:glide:3.6.1") {
        exclude group: 'com.android.support'
    }
api是AS3.0新添加的依赖方式,group指只要包含冒号后面的包都会删除,亲测还是挺有效的。

猜你喜欢

转载自blog.csdn.net/L_Scag/article/details/80297212