关于NDK及安装使用

androidjni的调用过程

  1)安装和下载Cygwin,下载 Android NDK。自己补上:Aygwin模拟一个linux环境,相当于android用的eclipse

 

  2)ndk项目中进行JNI接口的设计。  导入so文件

  3)使用C/C++实现本地方法   自定义在c文件里的方法

  4)JNI生成动态链接库.so文件

  5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可

 

/**

 * android项目发布之后,被人通过反编译并破解了Web Service接口地址以及参数的定义,

 * 因此需要想办法对传输的数据进行加密,考虑到Java代码存在被反编译的问题,最终采用了Android NDK来实现,

 * 通过NDK调用C语言写的加密算法生成MD5验证码的,

 * 同时考虑到用C写的SO被人盗用(直接将SO文件引用入工程)采用通过C语言调用 Java代码进行调用者身份确认。

 */

static

{

System.loadLibrary("hello-jni");

}

加载本地的c文件,调用里面自定义的方法进行一系列操作

====================================安装过程如下===================================

解压android-ndk-r5c-windows.zip

解压cygwin package.rar

Cygwin安装步骤

运行setup.exe,选第三项从本地安装cygwin

 

 

设置cygwin安装到那里

 

 

指定安装程序位置

 

选中安装的内容,只选devel就可以了

 

cygwinNdk集成

必须用Editplus打开.profile文件,绝对不能用记事本打开

home文件夹不为空

D:\ndk\cygwin\home\username\.bash_profile(username是你登录电脑的用户名增加下面两行

NDK=/cygdrive/d/android-ndk-r5c-windows/android-ndk-r5c (dndk-sdk解压后的盘符,后面是ndk所在的路径)

export NDK 

home文件夹为空

如果安装后home目录下面是空的,没有.bash_profile文件,\cygwin\etc\skel\下找到.bash_profile文件增加下面两行

NDK=/cygdrive/d/android-ndk-r5c-windows/android-ndk-r5c 

export NDK
然后拷贝到(C:\Documents and Settings\Administrator)有些win7要拷到c:\users目录下,重启cygwin就可以使用了

 

测试cygwinNdk集成是否成功

双击运行cygwin  

$ cd $NDK

显示ndk所在文件夹的路径就说明集成成功

 

编写c代码

windows资源管理器中找到D:\android-ndk-r5c-windows\android-ndk-r5c\samples\hello-jni\jni\hello-jni.c中查看hello-jni.c ,修改代码

生成.so

tttadasdfdsfdsafd@zjj ~

$ cd $NDK

 

tttadasdfdsfdsafd@zjj /cygdrive/d/android-ndk-r5c-windows/android-ndk-r5c

$ cd samples

 

tttadasdfdsfdsafd@zjj /cygdrive/d/android-ndk-r5c-windows/android-ndk-r5c/sample

s

$ cd hello-jni

 

tttadasdfdsfdsafd@zjj /cygdrive/d/android-ndk-r5c-windows/android-ndk-r5c/sample

s/hello-jni

$ $NDK/ndk-build

Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver

Gdbsetup       : libs/armeabi/gdb.setup

Compile thumb  : hello-jni <= hello-jni.c

SharedLibrary  : libhello-jni.so

Install        : libhello-jni.so => libs/armeabi/libhello-jni.so

Andori中使用.so

libs拷到android项目的根目录中

 

 

android类中添加如下代码

 

使用NDK的优点

保护代码

代码重用。

C运行速度快

可手动分配内存,如视频

 

转载于:https://www.cnblogs.com/zhanshiwei/p/3644780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值