Android-Jni的简单使用

需求介绍

相信大家在请求接口的时候,很多时候都是需要传参的,除了业务必要的字段外,还有一些恒定不变的字段,包括一些用来编码的固定字段。这些固定字段的值我们是不能直接写在项目工程中的。防止被别人反编译,抓包获取后,恶意请求,抓取我们的用户数据。

老规矩,先上图:

解决方法

这时候我们就可以利用Jni(Java Native Interface)来存储我们这些常量值,虽然也不是最安全的方式,但是也增加了反编译和抓包的难度。相对来说还是安全一点的。

具体做法就是: ① 新建一个工程,包名和你需要调用Jni的工程一样 ② 在/src/main/路径下面新建一个jni目录,顺便新建一个c文件 ③ 在c文件中写入相关代码

这里针对第三步,该如何存储重要字段值,具体代码如下:

#include <jni.h>

//格式为:Java_包名_类名_函数名(方法名)(调用jni的类的包名)
JNIEXPORT jstring JNICALL
Java_com_anxindeli_anxincow_tools_JniTool_strFromJni(JNIEnv *env, jclass type) {
    return (*env)->NewStringUTF(env, "anxindeli_cow_ysdss_30ccoaea04e");
}

调用该so库的java类目录必须是

否则会调用不成功的。

JniTool代码:

public class JniTool {
    static {
        System.loadLibrary("str-jni");
    }
    public static native String strFromJni();
}

最后在Java中调用

JniTool.strFromJni()

就这样简单的一句就可以了。。。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

[WCF安全系列]绑定、安全模式与客户端凭证类型:NetNamedPipeBinding、NetTcpBinding与NetMsmqBinding

在前面两篇(《绑定、安全模式与客户端凭证类型:BasicHttpBinding》和《绑定、安全模式与客户端凭证类型:WSHttpBinding与WSDualHt...

1927
来自专栏专注 Java 基础分享

Struts2框架的基本使用(三)

     上篇 Struts2框架的基本使用(二)介绍了Action和result的相关配置操作,本篇接着介绍剩下的异常处理机制和Convention插件的使用...

2127
来自专栏武军超python专栏

2018年8月25日多线程编程总结

PYTHON 本身也支持多任务处理,并且提供了如下的操作方式 多线程多任务处理机制   (比较常用) 多进程多任务处理机制   (不常用,大型项目开发或者系...

984
来自专栏javathings

Java 线程同步方式 wait/notify(两个线程交替执行的例子)

线程同步,就是线程之间互相协调,通过等待,唤醒等操作,避免线程之间同时操作同一个资源。简单的说就是线程之间互相协作,避免干扰了其他线程的工作。

4773
来自专栏温安适的blog

剖析1条JMS消息

3787
来自专栏破晓之歌

Django 2.0 新特性 转

2017年12月2日,Django官方发布了2.0版本,成为多年来的第一次大版本提升,那么2.0对广大Django使用者有哪些变化和需要注意的地方呢?

932
来自专栏xingoo, 一个梦想做发明家的程序员

cuda编程知识普及

本帖经过多方整理,大多来自各路书籍《GPGPU编程技术》《cuda高性能》 1 grid 和 block都可以用三元向量来表示: grid的数组元素是bloc...

2926
来自专栏好好学java的技术栈

“面试不败计划”:Java多线程和并发基础面试问答

多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应...

782
来自专栏Java3y

Servlet第四篇【request对象常用方法、应用】

什么是HttpServletRequest HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所...

4305
来自专栏cloudskyme

gsoap开发webservice

gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++w...

3176

扫码关注云+社区