1. 在Android Studio开发JNI

Android Studio第一个JNI开发入门(整理一)_sevenjoin的博客-CSDN博客_androidstudio jni开发

Android配置NDK并编译JNI文件做so库_u013214588的博客-CSDN博客_android jni编译so

Android Studio打包.so到APK:

AndroidStudio 3.5 打包 so 到APK(总结整理)_sevenjoin的博客-CSDN博客_androidstudio打包so库到apk

android log 封装

#include <android/log.h>
#ifndef  LOG_TAG
#define  LOG_TAG    "XXXX"
#define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define  LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
#endif

总结:

local.properties中添加 : ndk.dir=XXXX/Sdk/ndk-bundle/

在Android Studio 里面创建jni目录,放置c/c++源码

修改build.gradle: 添加ndk{...}

    defaultConfig {applicationId "com.example.testjni"minSdk 21targetSdk 31versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"ndk {moduleName "JNISample"}}

编写CMakeList.txt编译c/c++代码

2. Android源码编译

AOSP源码编译JNI: https://blog.csdn.net/sevenjoin/article/details/103700245

AOSP源码集成第三方库:在Android源码中如何吧so库打包编译进入apk, 集成第三方库(jar和so库)_WangMark的专栏-CSDN博客

jni开发的动态库的位置:system/vendor的区别

https://www.iteye.com/blog/592713711-2364550

Android JNI开发相关推荐

  1. Android JNI开发入门之二

    在上一篇文章<Android JNI开发入门之一>中,我介绍了Android应用程序(APK)怎样通过JNI调用Native C实现的共享库.本文将进一步介绍Android应用程序通过JN ...

  2. Android JNI开发入门之一

    JNI在Android系统中有着广泛的应用.Android系统底层都是C/C++实现的,上层提供的API都是Java的,Java通过JNI调用底 层的实现.比如:Android API多媒体接口Med ...

  3. Android JNI开发流程介绍

    1.什么是JNI JNI全称是Java Native Interface,中文称为Java本地接口.JNI是JAVA语言和C/C++语言沟通的协议,通过JNI,Java代码可以调用C.C++等语言写的 ...

  4. Android JNI 开发

    ①:NDK与JNI简介 NDK:Native Development Kit,是Android的一种开发工具包,能够快速开发C,C++的动态库,并自动将so和应用打包成APK.而NDK的使用场景就是通 ...

  5. Android JNI开发入门与实战

    简介: 涉及到一些算法或者底层驱动的时候,往往需要使用jni来开发.现在官方推荐使用CMake工具来开发jni. 使用CMake开发Jni其实挺简单的,要求不高的话只需要简单配置一下就可以使用了. 配 ...

  6. Android JNI开发摘录(五)之对象引用处理

    六.本机代码中的对象引用 终于讲到对象引用了,在此推荐JNI开发必看的 使用 Java Native Interface 的最佳实践 JNI提供了函数集来使用本机代码中的Java对象,包括前面已经介绍 ...

  7. Android JNI开发生成.h头文件问题(转)

    在JNI开发中,首先要将建立的anroid类编译成.h文件,编译用到命令javah,由于第一次用,以前对java的编译过程也不怎么了解,所以走了好多弯路,网络没有对这一步的详细介绍,这里讲一下: 通过 ...

  8. Android JNI开发读取asserts目录中文件的方法

    Android Java层读取asserts目录中的文件: //获取asserts/test/目录下的所有文件名称 String test_path = "test"; int c ...

  9. 一天掌握Android JNI开发

    一.JNI(Java Native Interface)        1.什么是JNI:               JNI(Java Native Interface):java本地开发接口   ...

最新文章

  1. 通用线程: 学习 Linux LVM
  2. 给url添加时间戳,解决浏览器缓存
  3. python基础语法 第0关print-温州文成高校邦数据科学通识课【Python基础语法】答案...
  4. ARM裸机篇--按键中断
  5. b 计数器位选信号 verilog_Verilog HDL菜鸟学习笔记———三、Verilog常用语法之一...
  6. how to consume a webservice via ABAP proxy
  7. 结合前段修改mysql表数据_jquery实现点击文字可编辑并修改保存至数据库
  8. Flume之核心架构深入解析
  9. 阿里专家晨末:什么是技术一号位?
  10. [HTML5]使用Box2dWeb模拟飞行箭矢
  11. Nginx 学习--初级篇,Nginx 认识以及作用
  12. CG之菲涅尔效果简单实现
  13. 如何在M1 Mac上安装iPhone或iPad应用程序?
  14. 你看,Fastjson 漏洞也太多了吧。。
  15. 我造的假我自己打,Adobe推出“反PS”
  16. HINSTANCE HANDLE HWND 的区别及一般方法
  17. Vue 实现电子签名
  18. app测试和web测试的区别
  19. 服务器上的服务一直自动关闭,服务器会话连接自动关闭怎么办?
  20. 中国大学MOOC课程《程序设计入门——C语言》 期末考试编程题

热门文章

  1. 自动驾驶-车辆检测(YOLO算法)
  2. MQL5 编程基础:字符串
  3. 接口文档神器Swagger(上篇)
  4. 项目篇 | 基于STM32单片机NBIOT定位实战项目
  5. 2分钟学会一个简单USB插入检测电路
  6. Kconfig 学习
  7. OSPF虚电路去区域路由过滤
  8. 第2关:求五边形的面积
  9. 织梦CMS整站源码通用安装教程
  10. 【网络安全】RADIUS协议