请选择 进入手机版 | 继续访问电脑版

雨林木风

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10|回复: 0

AndroidNDK入门

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
31942
发表于 2021-2-9 17:00:40 | 显示全部楼层 |阅读模式
  1. 代码的爱护,因为apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
  2. 正在NDK中挪用第三方C/C++库,由于大部门的开源库都是用C/C++代码编写的。
  3. 便于移植,用C/C++写得库能够简单正在其他的嵌入式平台上再次应用。
  初学的最好手段即是进修Android自带的例子, 这里就通过进修Android的NDK自带的demo轨范:hello-jni来到达这个主意。
  android的NDK开采须要正在linux下举办: 由于须要把C/C++编写的代码天生能正在arm上运转的.so文献,这就须要用到交叉编译处境,而交叉编译须要正在linux体系下本领杀青。
  下载ndk开采包后,解压即可,然后正在/etc/profile中,到场PATH处境变量,ndk包的绝对旅途,应用“ndk-build”来剖断是否安设告成,若告成崭露以下代码:
  注明轨范开首运转的时期会加载hello-jni, static区声明的代码会先于onCreate步骤履行。要是你的轨范中有众个类,并且要是HelloJni这个类不是你利用轨范的入口,那么hello-jni(完备的名字是libhello-jni.so)这个库会正在第一次应用HelloJni这个类的时期加载。
  能够看到这两个步骤的声明中有native要害字, 这个要害字吐露这两个步骤是本境地骤,也即是说这两个步骤是通过当地代码(C/C++)完毕的,正在java代码中仅仅是声明。
  用eclipse编译该工程,天生相应的.class文献,这步必需鄙人一步之前杀青,由于天生.h文献须要用到相应的.class文献。
  正在与src同级的目次处,新筑jni文献夹,用于存放头文献和源文献,然后应用javah下令,将Jni.java中的C完毕的函数天生对应 的头文献,下令如下:
  javah下令的注释,能够查看javah -help,正在应用时,务必当心,加载的类目次必需是正在bin/classes,由于是对.class文献举办操作,不然将报找不着类的失误。
  上面代码中的JNIEXPORT 和 JNICALL 是jni的宏,正在android的jni中不须要,当然写上去也不会有错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|appname
快速回复 返回顶部 返回列表