Android 下 JNI 开发

本文介绍了JNI的基本概念,解释了为何使用JNI进行扩展和提高性能,并详细阐述了如何利用JNI与C/C++代码交互。通过实例展示了C语言的入门,包括编写第一个C程序,调用系统命令以及与Java类的交互。适用于Android开发者学习JNI的进阶教程。
摘要由CSDN通过智能技术生成

Day1

JNI简介-25

01_什么是JNI

1、JNI(Java Native Interface) java本地开发接口

 

  1. JNI 是一个协议

 

  1. 有了这个协议可以使Java代码和C/C++代码相互调用.

 

 

画图理解:

02_为什么用JNI

1、JNI扩展了java 虚拟机的能力, 驱动开发  (wifi-hotspot) 2.3 无线热点共享 

2、Native code效率高,数学运算,实时渲染的游戏上,音视频处理 (极品飞车,opengl,ffmpeg)

3、复用代码 (文件压缩,人脸识别…)

4、特殊的业务场景

 

 

03_怎么用JNI

1.C/C++语言

2.掌握java jni流程

3.NDK (native develop kits ) 

 

C语言入门

 

1、课程目标

课程结束大家能看懂c代码.会读会调用.

安排:

基本数据类型

基本输入输出函数

数组

指针

结构体

枚举

 

1、C语言第一个程序-13

 

 

A:第一个C程序

 

A:安装Dev-c++工具

B:演示编译运行

  C语言代码在window系统编译后生成.exe文件

 Visual C++

 

C :代码注释

 

 

 

//include 相当于Java中的 import导包;

//.h文件是C语言中的头文件,里面申明很多函数。

//stdio.h: standard input&output 标准的输入输出流

#include <stdio.h>

//导入stdlib.h c语言的标准库。

#include <stdlib.h>

//主程序入口 public static void main(String args[]) {}

main()

{     

      // 输出日志。相当于Java中的 System.out.print("Hello world ! \n")

      printf("Hello world !\n");

      //dos命令行执行一个命令:pause

      system("pause");

}

 

 

D:演示调用window中的一下软件命令,加深system("pause");的理解

 

 在控制台演示:

 调用画图工具:mspaint

 调用计算器:calc

 调用服务:services.msc

 

 

system("calc");//调出计算器

system("services.msc"); //调出服务列表

 

E:演示调用Java编译好的.class文件

 

public class Hello{

    public static void main(String []args){

     System.out.println("Hello from java !!!");

    }

进入目录下:cd /d D:\JNI\day1\coder

查看目录下有什么:dir

编译命令:javac Hello.java

执行命令:java Hello

 

 system("java Hello");

 直接运行报错,需要把Hello.class文件添加到classpath环境变量中

 验证:打开doc命令行:java Hello

 Dev-c++工具关闭退出后才起作用。

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值