Android Studio编译ndk

背景:

        我们一般选择使用ndk无外乎为了隐藏java代码,还有提高硬件的访问速度。第一点,目前的加密手段已经可行,至于第二点,多半在音视频中应用,比如bilibili的ijkPlayer中就有ffmpeg的.so。当年的编译还要Linux环境,比如cygwin或者Ubuntu,笔者就吃过这些亏。不过现在好了,AS自带jni编译了。

环境:

win7 64位系统

AS 2.0

步骤:

1、装载ndk,打开AS,在Tools->Android->SDK Manager的右边第二个选项SDK Tools里选择NDK,点击右下角Apply,等啊等啊。然后就好了。


安装好后变成一个减号


ndk路径自动生成的


这句自己加,运行时防止报错

2、gradle配置

在build.gradle里

生成的so的名字,和生成哪些abi的so


在android语句块里添加这个,就是编译好的so生成到哪个目录里

3、java调用类

其实就短短几行而已

别忘了刚才自己写的.so的名字

4、生成c++用的.h

首先build一下,生成java的class,在H:\NdkJniDemo\app\build\intermediates\classes\debug\com\example\ll\ndkjnidemo这里。不过这不重要,因为我们在包外面操作就好。打开AS的Terminal,进入app/build/intermediates/classes/debug目录,输入javah -jni com.example.ll.ndkjnidemo.NdkJniUtils,根据自己的包修改即可。


把这个文件放到jni目录下,没有就自己建一个吧


看到没,最长那个

5、写C代码

在jni里面写个简单的c程序,比如jnitest.c整个工程我一会儿打包上传。

6、AS里点击Build->make project就可以生成.so了

.so在这里H:\NdkJniDemo\app\build\intermediates\ndk\debug\lib


文件夹对应第2步的abi配置

把这几个文件夹拷贝到app的libs目录H:\NdkJniDemo\app\libs

6、现在可以运行了,结果大家看真机吧,我这里不截图了

https://pan.baidu.com/s/1slBF0nV

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容