openssl移植Android使用及其相关经验分享
发布时间:2010-05-30 10:55:08 文章来源:www.iduyao.cn 采编人员:星星草
【分享】openssl移植Android使用及其相关经验分享
1. linux安装openssl库
参见《精通PKI网络安全认证技术与编程实现》2.3.2节 Linux下搭建OpenSSL开发环境
Linux下面解压tar.bz2文件:tar jxvf android-ndk-r5c-linux-x86.tar.bz2
2. 配置NDK的环境变量
在~/.bashrc文件末尾添加:
NDK=~/android-ndk-r4b
export NDK
执行source ~/.bashrc
如果有终端已经运行,需要在重启终端才能使用NDK变量
3. JNI介绍
JNI主要功能就是能够调用到C库,在这里我们需要用C或C++调用openssl库实现加密签名等功能,然后编译成arm体系的so库,用java调用提供的接口。
详细介绍参见此书:《TheJava Native Interface: Programmer’s Guide and Specification》
4. 下载android版本的openssl,编译
现在网上我看见过3种版本的android-openssl,fries版本,eighthave版本以及guardianproject版本,前面两个版本有测试过但是没有尝试成功,guardianproject版本编译成静态库再给android的JNI动态库程序调用的话会找不到方法,不清楚是什么原因,但是直接将JNI程序与openssl工程一起编译就可以实现。
下面这个blog有说编译openssl静态库给android用,但是不知道他用的是什么版本的Openssl,我按照他的方法尝试没有成功。
http://blog.csdn.net/someonea/article/details/6312213
guardianproject版本原版下载地址:
https://github.com/guardianproject/openssl-android
我修改过的版本:
http://download.csdn.net/source/3408214
在我修改过的版本中可以直接在myAPP文件夹下编写JNI程序,与Openssl一起打包编译成动态库就行了。
编译时可能出现一些undefined reference,大部分可能是没有添加链接库,有些情况也可能是NDK版本问题,最好用最新版本的NDK(我用的r5c),注意有没添加以下两个静态库
LOCAL_LDLIBS := -lz –ldl
------解决方案--------------------
谢谢分享~~~~
------解决方案--------------------
真好!
谢谢分享,必须加精!
------解决方案--------------------
学习了,谢谢
------解决方案--------------------
不错的,谢谢了
------解决方案--------------------
全国电子竞赛历年真题
------解决方案--------------------
好的答复
------解决方案--------------------
不错的,谢谢了
------解决方案--------------------
领教了~~~~
------解决方案--------------------
好东西~~
------解决方案--------------------
学习,收藏!
------解决方案--------------------
很好,学习了
------解决方案--------------------
好很好
------解决方案--------------------
看上去不错
------解决方案--------------------
xuexi
------解决方案--------------------
KANKANASDASDASD
------解决方案--------------------
欣赏高招
------解决方案--------------------
谢谢分享
------解决方案--------------------
这个要收藏
------解决方案--------------------
android本身源码中自带openssl,直接拿来拖到ndk下就可以编译了。。。另外我不知道lz提供的某篇blog中的静态库为什么不能编译成功?我测试了下应该是可以的。
最后还是感谢lz分享,很喜欢lz分享使用经验和遇到的问题,我觉得这样比网上单纯的叫你怎么编译好多了
------解决方案--------------------
openssl是个好东东啊,可惜当年没有好好研究!
------解决方案--------------------
内容存入剪贴板
------解决方案--------------------
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
Android版块严惩倒分行为,希望大家配合维持正当的技术交流 - 移动平台 / 非技术区
近期发现Android版块一些帐号在进行倒专家分操...
-
Java应用程序调用系统中任意一个so文件的方法 大家看看是否可行?
如果我想编写一个apk程序,而这个apk程序要调用系统中的非JNI的so...
-
关于ListView中CheckBox 用程序全选的问题
LisetView中view布局
XML code
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLay...
-
请教一个关于广播接收器优先级的问题,为什么我无论如何都不能超越QQ,360,GO等手机助手,管家?
android官方好像说最高1000,我试过...
-
Android 布局framelayout到底怎么用
简单demo就不要说了哈,知道framelayout的简单实例,感觉没有收获,看了源码,也没有什么感觉。我想...
-
如果调用系统剪裁功能
首先调用系统图库,获取图片,然后对该图片进行剪裁,大家帮忙看下我的代码哪里有问题
Java code
Uri uri = data...
-
求4.0的framework.jar包
如题。哪位朋友有编好的4.0的framework.jar,给个下载地址,或发我邮箱heixue888@qq.com
3Q~
------解决方案...
-
关于读取手机通讯录的问题
使用Android1.5的读取方法:
Cursor cur = context.getContentResolver().query(Contacts.Peop...
-
请教如何用android画图
我想利用android写一个画图程序,请问我应该重点看android的哪些部分,请大家给点建议,还有大家是否有相关的工...
-
分享HTC手机Android源代码下载地址
http://developer.htc.com/
------解决方案--------------------
不错,可惜只有kernel的~~...