ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

240,安卓最牛教材

2022-02-04 10:33:30  阅读:200  来源: 互联网

标签:jnitest 安卓 so ldw 240 JniDataUtil 最牛 jni com


打开 Android Studio 的 Terminal 到 移动到 app/src/main/java 目录下执行命令:javah -jni com.ldw.jnitest.JniDataUtil,

执行以后在java路径下生成com_ldw_jnitest_JniDataUtil.h

在app/src/main目录下创建一个jni的目录,然后将com_ldw_jnitest_JniDataUtil.h移动到jni的目录下,同时在 jni 目录下创建一个 c/c++ resource 文件 test.cpp,

#include<jni.h>

//导入我们创建的头文件

#include “com_ldw_jnitest_JniDataUtil.h”

#ifdef __cplusplus

extern “C” {

#endif

/*

  • Class: com_ldw_jnitest_JniDataUtil

  • Method: get

  • Signature: ()Ljava/lang/String;

*/

JNIEXPORT jstring JNICALL Java_com_ldw_jnitest_JniDataUtil_get

(JNIEnv * env, jclass obj)

{

return env->NewStringUTF(“This is my NDK Application”);

}

#ifdef __cplusplus

}

#endif

下面的这个方法使我们从头文件中复制过来的,头文件是自动生成的com_ldw_jnitest_JniDataUtil.h

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class com_ldw_jnitest_JniDataUtil */

#ifndef _Included_com_ldw_jnitest_JniDataUtil

#define _Included_com_ldw_jnitest_JniDataUtil

#ifdef __cplusplus

extern “C” {

#endif

/*

  • Class: com_ldw_jnitest_JniDataUtil

  • Method: get

  • Signature: ()Ljava/lang/String;

*/

JNIEXPORT jstring JNICALL Java_com_ldw_jnitest_JniDataUtil_get

(JNIEnv *, jclass);

#ifdef __cplusplus

}

#endif

#endif

然后我们在 jni 目录下创建两个 .mk 文件:

一个 Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := JNITest

LOCAL_SRC_FILES := test.cpp

include $(BUILD_SHARED_LIBRARY)

一个是 Application.mk:

APP_ABI := all

Android.mk参考

LOCAL_PATH:=$(call my-dir)

include $(CLEAR_VARS)

#libtestjni.so //生成so的名字

LOCAL_MODULE := testjni //生成模块的规则,生成的so的名字testjni

LOCAL_SRC_FILES := test.cpp //生成模块的规则,so依赖的cpp文件可以有多个

LOCAL_LDLIBS := -llog //生成模块的规则,当前so依赖的so

include $(BUILD_SHARED_LIBRARY) //生成尾缀是so的文件

然后我们需要生成 so 库:

打开 Terminal,到 app/src/main/jni 目录下,使用 ndk-build 命令生成 so 库:

接着打开 app/src/main/libs 就可以看见我们生成的 so 库了。

5.为了防止 so 库兼容错误,在 gradle.properties 最后一行添加:

android.useDeprecatedNdk=true

结语

  • 现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。
  • 音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。
  • 要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且
  • OpenCV/OpenGl/这些又是图像处理必备知识,下面这些我都是当年自己搜集的资料和做的一些图,因为当年我就感觉视频这块会是一个大的趋势。所以提前做了一些准备。现在拿出来分享给大家。

有需要的小伙伴可以私信我免费分享给你或者点击下面链接自行领取

Android学习PDF+架构视频+面试文档+源码笔记

](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)

[外链图片转存中…(img-qGO5eD3v-1643941442669)]

标签:jnitest,安卓,so,ldw,240,JniDataUtil,最牛,jni,com
来源: https://blog.csdn.net/m0_66145060/article/details/122781440

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有