Android Studio 从so创建到aar的导出再到三方集成

开发中使用到了各种key、三方账户、CA证书、算法等安全系数要求比较高的数据,那么如果将这些数据存放到Java代码中,试想安全级别是相当低的;由于Java是基于虚拟机的编程语言,更容易被人反编译,因此越来越多的应用将其中的核心代码以C/C++为编程语言,并且以SO文件的形式供上层JAVA代码调用,以保证安全性。

那么本篇文章将介绍如何创建so库文件及如何将so库文件打包成aar文件供项目使用。

开发环境:
Java: 1.8.0
IDEA: Android Studio 3.4.1

minSdkVersion 15
targetSdkVersion 29
compileSdkVersion 29

1.创建Native C++项目

选择Native C++点击Next
填写项目名称及包名点击Next
Standard默认不修改,点击Finish

ok,项目创建完毕,可以运行试一下,项目默认创建好了对应的c++文件及Android端的调用

创建好的项目内容
运行效果

2.创建Module,业务服务逻辑将放到此Module中(aar文件将由该Module生成)

在项目中创建 Module
选择Android library点击Next
填写library name 点击Finish
创建好的lib Module,在app gradle文件中引入lib Module
在lib中创建DataHelper类加载so库文件并对外暴露方法,alt+enter 生成对应的c++代码
编写c++代码,对外提供相关数据
main方法中初始化DataHelper方法验证是否可用,运行...
测试通过
Build - Make Project 生成对应的so库文件

此时生成的so文件会很大,可以进行包体压缩配置,在CMakeLists.txt文件中加如下配置

# 压缩包体
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -s")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
lib 的gradle文件中设置支持读取so文件配置
将生成的库文件拷贝到lib Module中的libs中,点击右侧Gradle中的assembleRelease,生成arr文件
在lib-build-outputs-aar 中生成出了arr文件

3.此时可以在其他项目中使用该arr文件了

引入aar文件,配置gradle
arr文件的使用
效果

Ok,至此从so创建到aar的导出再到三方集成已经讲解完毕,感谢您的浏览,Thanks

你可能感兴趣的:(Android Studio 从so创建到aar的导出再到三方集成)