微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于Gradle构建一个封闭源码的Android库

我想用Gradle构建一个闭源的android库.我的库对开源项目有一些依赖性.我该如何构建我的库?我可以使用gradle吗?

解决方法:

Can I use gradle?

简短回答:

是.

答案很长:

我假设您的库打包为aar(包含资源和编译的字节码).

首先要知道的是,在写这篇文章的那一刻,没有办法创建fat-aar库,这意味着你必须分别分配库的依赖项.在我看来,最方便的方法生成pom.xml文件并在Maven存储库上发布您的库(maven插件可以完成所有这些),因此客户端将只获取所有依赖项.由于它是一个“私人”图书馆,这可能是贵公司通过访问权限关闭的回购(简单来说 – 为您的回购创建特殊用户并与感兴趣的各方共享密码).

这里的一个缺点是所有依赖项都将在pom.xml中公开,您将无法对它们进行模糊处理.就个人而言,我不认为这是一个问题.

此外,您可以获得巨大的优势,能够自动部署构建并让客户端使用库的快照版本.当您尝试修复问题并希望快速将其交付给用户时,这非常有用.在客户端,他们需要做的只是在build.gradle中更新版本,或者只是重新同步项目,以防他们使用快照.

第二件事.由于您的库是封闭源代码,因此您需要运行proguard来模糊除库的公共接口之外的所有内容(所有公共方法都向最终用户公开).

请记住,即使在混淆之后,您的代码仍然可以被反编译,并且所有字符串文字仍然存在.因此,尽管已经说了数百万次,但要避免在库中存储任何关键数据(例如密码,密钥等).提取它并不像你想象的那样难:https://www.youtube.com/watch?v=X28Oogg2Q3k

第三件事.我强烈建议您创建将使用您的库的内部测试项目(作为gradle子模块),这样您就可以确保不会进行任何重大更改.

希望这个答案让你的事情变得更轻松.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐