当前位置: 首页 > news >正文

网站开发合同技术目标专门做简历的网站软件

网站开发合同技术目标,专门做简历的网站软件,网站策划建设阶段的推广,北京市建设工程信息文章目录 Android高级开发JNI开发第一篇(初级入门篇)🧠 一、什么是 JNI?✅ 为什么要用 JNI? ⚙️ 二、开发环境准备开发工具 🚀 三、创建一个支持 JNI 的 Android 项目第一步:创建新项目项目结构…

文章目录

  • Android高级开发JNI开发第一篇(初级入门篇)
    • 🧠 一、什么是 JNI?
      • ✅ 为什么要用 JNI?
    • ⚙️ 二、开发环境准备
      • 开发工具
    • 🚀 三、创建一个支持 JNI 的 Android 项目
      • 第一步:创建新项目
      • 项目结构示例
    • 🧪 四、第一个 JNI 示例:Hello from C++
      • 🧩 Java 代码(MainActivity.java)
    • 🛠 五、配置 CMake 构建脚本

Android高级开发JNI开发第一篇(初级入门篇)

👨‍💻 本文作者:一位正在攻克底层开发的 Android 工程师
🧭 目标读者:有 Java/Android 基础,希望入门 JNI 开发的新手
📌 本文特点:从零开始,手把手实战,代码详细注释,适合 CSDN 初学者收藏


🧠 一、什么是 JNI?

JNI(Java Native Interface) 是 Java 提供的一种机制,它允许 Java 代码与使用 C 或 C++ 编写的本地代码进行交互。

简单说,JNI 是 Java 和原生代码之间的“翻译官”。

✅ 为什么要用 JNI?

使用场景示例
调用高性能库OpenCV、FFmpeg
调用底层系统接口系统级音视频处理、传感器操作
提升性能密集计算场景用 C/C++
兼容老旧库有些厂商 SDK 只提供 .so 文件

⚙️ 二、开发环境准备

开发工具

  • ✅ Android Studio(建议 4.0+)
  • ✅ 已配置好 SDK 和 NDK(NDK 安装可通过 SDK Manager 添加)
  • ✅ 熟悉 Java 基础语法

🚀 三、创建一个支持 JNI 的 Android 项目

第一步:创建新项目

  1. 打开 Android Studio,点击 File > New Project
  2. 选择模板:Native C++
  3. 输入项目名,比如:JniHello
  4. 语言选 Java,C++ 标准选 C++11
  5. 完成后你会获得一个默认支持 JNI 的项目结构

项目结构示例

app/
├── src/main/java/com/example/jni/MainActivity.java
├── src/main/cpp/native-lib.cpp
├── CMakeLists.txt


🧪 四、第一个 JNI 示例:Hello from C++

系统自动生成了第一个 JNI 示例,我们来逐步分析它。

🧩 Java 代码(MainActivity.java)

public class MainActivity extends AppCompatActivity {// 加载本地库static {System.loadLibrary("native-lib");}// 声明 native 方法public native String stringFromJNI();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tv = findViewById(R.id.sample_text);tv.setText(stringFromJNI()); // 调用 native 方法}
}

🧩 C++ 代码(native-lib.cpp)

#include <jni.h>
#include <string>extern "C"
JNIEXPORT jstring JNICALL
Java_com_example_jni_MainActivity_stringFromJNI(JNIEnv* env,jobject /* this */) {std::string hello = "Hello from C++";return env->NewStringUTF(hello.c_str());
}

🔍 分析解释:
extern “C”:关闭 C++ 的名称重整(name mangling)

JNIEXPORT/JNICALL:JNI 的标准函数导出宏

Java_全限定类名_方法名:这个函数名必须完全匹配 Java 中声明的 native 方法

JNIEnv* env:提供访问 Java 方法、类、对象的能力

NewStringUTF:创建一个 Java 的 String 返回给 Java 层
默认生成的 CMakeLists.txt 一般如下:

🛠 五、配置 CMake 构建脚本

cmake_minimum_required(VERSION 3.4.1)add_library(native-libSHAREDnative-lib.cpp )find_library(log-liblog )target_link_libraries(native-lib${log-lib} )

确保你的 app目录下的 build.gradle 中已启用 externalNativeBuild:

externalNativeBuild {cmake {path "src/main/cpp/CMakeLists.txt"}
}

最后会输出为
Hello from C++

✅ 说明你的 Java 成功调用了 C++ 函数,JNI 配置无误!

🎯 七、JNI 名称规则总结
Java 代码 native 函数名
com.example.jni.MainActivity.stringFromJNI() Java_com_example_jni_MainActivity_stringFromJNI

📌 小贴士:包名中的 . 替换为 _,类名与方法名直接拼接。

🔄 八、常见问题排查
问题 原因 解决方案
Java 找不到 native 方法 函数名写错或拼写不一致 检查方法命名和包名是否完全匹配
native 方法未加载 没有调用 System.loadLibrary() 加上正确的库名加载语句
编译报错:找不到头文件 NDK 未正确配置 检查 NDK 安装路径或重装

🧱 下一篇预告:第二篇 - JNI 参数传递与 Java → C → Java 双向调用
敬请期待!

http://www.dtcms.com/a/579257.html

相关文章:

  • 4G车联网终端TBOX知识详解
  • 郑州本地做团购的网站wordpress获取自定义文章分类名
  • 自己做的网站别人怎么上网找到合作在惠州做网站
  • 中国建设银行网站密码是什么做淘宝电商比较厉害的网站
  • RFID 技术赋能汽车零件装配线:智能化升级的关键引擎
  • 1、prometheus基础理论
  • 设计社交网站手机可以建网站吗
  • 响应式网站要多久手机站点cn
  • 网站鼠标悬停动态效果古田路9号设计网站
  • 突破 GEO 优化瓶颈:孟庆涛引领的 AI 时代营销新范式
  • 网站模版编辑器企业简介范文
  • 基于Vue的智慧楼宇报修平台设计与实现066z15wb(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • php网站开发套模板步骤张家界城乡建设网站
  • 一元云购网站建设教程wordpress侧边栏插件
  • 惠州城市建设建筑网站cms网站开发网站模板
  • 18年手机网站加强机关网站内容建设
  • 村镇建设年度报表登录网站百度搜索引擎官网
  • 中石化两学一做网站机票网站开发
  • ESP32堆栈空间优化全攻略
  • 学做衣服网站知乎深圳有几家燃气公司
  • 厦门市建设工程质量安全协会网站小程序和公众号的区别和优势
  • 青岛网站设计微动力全国招商代理平台
  • 【RL】学习路径指导-VRP求解方向
  • 大连专业模板网站制作高端网站定制开发
  • 网站seo诊断书郑州网站制作汉狮网络
  • 网站建设广州白云wordpress 缓存目录
  • 建设微网站网站建设总结体会
  • 做响应式网站应该注意什么做网站销售怎么样
  • 建设网站策划书有名的网站建设
  • C++编程基础(六):函数