手动编译Android jni库

目的:
1 安全性-将一些复杂的逻辑和算法通过本地代码(C或C++)来实现,然后打包成so动态库文件,并提供Java接口供应用层调用,没那么容易被破解。 相对反编译Java的class字节码文件来说
2 复用性-复用过去写过的一些 用c 或者 c++写的so 或者合作方只提供c接口。
复用以前用C/C++写的大量代码。

启程:
JNI全称是Java Native Interface(Java本地接口)
JNI是JVM规范中的一部份,因此有跨平台性,但是jni调用的so却不是在jvm内运行
so,我们要编译出对应平台的动态库,才能有多平台性。
 

下面对在 终端进行 so的编写和编译  调入到Android  studio。
1 编写的java 文件在 as中。
 

package com.study.jnitest;

public class HelloJni {
    static {
        System.loadLibrary("JNItestd");
    }
    public static native String sayHello(String name);
    public static String   say() {
        return sayHello("jojo");
    }
}


2 提取出 HelloJni所在 目录。
保持  src/com/study/jnitest/HelloJni.java
的目录结构。
3 用javac命令将.java源文件编译成.class字节码文件
javac src/com/study/jnitest/HelloJni.java -d ./bi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值