as中jni调用姿势(实战)

 一、背景
        最近项目中网络请求用到了jni调用c++代码来实现加密的功能,做的过程中踩了一些坑,特此祭奠一下
 二、过程
       与eclipse中jni略有不同,as中需要在本地和gradle中做一下自己的配置
       1.在项目gradle.properties目录中加入
Android.useDeprecatedNdk=true
            解决本地ndk版本过低而不能正常编译的问题
       2.在项目目录下的gradle中添加如下(android{}里边)
          
sourceSets {
    main {
        jniLibs.srcDirs 'src/main/obj/local'
        jni.srcDirs=[]
    }
}
           jniLibs.srcDirs指定生成的so文件路径
           jni.srcDirs解决ndk本地不能正常构建的问题
       3.可以使用jdk工具自动编译.class生成不同处理器下so文件
         在控制台进入app包的根目录下执行javah *.*.*.+ 命令(*代表文件夹,+代表写有native的类名)           
         即可生成如下图所示的.h文件
                
      4.sha256加密(非对称加密)
        原理:把要传递的参数,加入时间戳等内容,进行规则排序,然后进行sha256加密(本地需要一个私钥),这些操作都是
        用c++代码实现的安全级别比较高
 三、小结
    现在开发不太忙了,慢慢把之前的东西消化消化,沉淀一下


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值