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文件,调用里面自定义的方法进行一系列操作
====================================安装过程如下===================================
解压cygwin package.rar
运行setup.exe,选第三项从本地安装cygwin
设置cygwin安装到那里
指定安装程序位置
选中安装的内容,只选devel就可以了
必须用Editplus打开.profile文件,绝对不能用记事本打开
D:\ndk\cygwin\home\username\.bash_profile(username是你登录电脑的用户名) 增加下面两行
NDK=/cygdrive/d/android-ndk-r5c-windows/android-ndk-r5c (d是ndk-sdk解压后的盘符,后面是ndk所在的路径)
export NDK
如果安装后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就可以使用了
双击运行cygwin
$ cd $NDK
显示ndk所在文件夹的路径就说明集成成功
在windows资源管理器中找到D:\android-ndk-r5c-windows\android-ndk-r5c\samples\hello-jni\jni\hello-jni.c中查看hello-jni.c ,修改代码
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
将libs拷到android项目的根目录中
在android类中添加如下代码
保护代码
代码重用。
C运行速度快
可手动分配内存,如视频
原文:http://www.cnblogs.com/zhanshiwei/p/3644780.html