热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

我想用Gradle构建一个闭源的android库.我的库对开源项目有一些依赖性.我该如何构建我的库?我可以使用gradle吗?解决方法:CanIusegradle?简短回答:是.答

我想用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子模块),这样您就可以确保不会进行任何重大更改.

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


推荐阅读
author-avatar
我等到你不再等我_129
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有