• 第三方API的KEY的管理

    Android开发,基本都会用到第三方SDK,例如百度地图、支付宝支付等。
    通常第三方的KEY都是保存在AndroidManifest中:

    <!-- 百度地图的KEY-->
    <meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="百度地图注册的KEY"/>复制代码

    每次更换KEY或者多渠道打包;总是在Gradle和Mainfest中来回更改,有时候一个疏忽,可能就漏了一个,怎能让人不蛋疼。
    能不能将他们统一配置到某个位置,统一管理,轻松更改呢?Google替我们想到了。利用manifestPlaceholders

  • ######方法
    AndroidManifest中的KEY,我们用一个变量代替,在build.gradle中动态的替换,还以百度地图SDK的KEY为例:

    <meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="${baidu_key}"/>复制代码

    在build.gradle中:

          debug {manifestPlaceholders = [baidu_key: 百度地图的KEY]}release {manifestPlaceholders = [baidu_key: 百度地图的KEY]}复制代码

    其它的第三方KEY管理类似,例如新加入友盟SDK

    <meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="${baidu_key}"/>
    <meta-dataandroid:name="UMENG_APPKEY"android:value="${umeng_key}"/>复制代码

    在build.gradle中:

          debug {manifestPlaceholders = [baidu_key: 百度地图的KEY,umeng_key: 友盟的KEY]}release {manifestPlaceholders = [baidu_key: 百度地图的KEY,umeng_key: 友盟的KEY]}复制代码

搞定,类似第三方KEY都可以在gradle中管理

  • Gradle中版本管理

    gradle中,包含包名、VersionCode、versionName、compileSdkVersion以及第三方依赖库等大量信息,管理起来,稍有不慎就会误删或者改错,导致编译失败,能不能像管理第三方KEY一样,将所有需要修改的参数统一管理起来,只修改参数,不干扰其他因素这样在版本升级中,无需打开gradle在繁杂的代码中修改各种版本号,例如:

统一管理.png

需要修改compileSdkVersion 时,只需要修改COMPILE_SDK_VERSION,何乐而不为,那就开始吧:

  • 命名规则:命名自定义,但是最好见名知意,字母大写,类似于全局常量命名,后面加修饰符号
  • 例如:minSdkVersion,命名MIN_SDK_VERSION,修饰符号 as int ,
    完整命名:minSdkVersion MIN_SDK_VERSION as int

    针对所有需要统一管理的参数命名之后,就类似于上面的图片,这个时候问题来了,命名之后,具体参数我们在哪里记录,并让gradle找到的我们设置的参数呢?

    在Project目录下,找到gradle.properties

    Paste_Image.png

    gradle.properties中,去配置我们声明的参数:

    Paste_Image.png

    这样,在版本升级中,更改VERSION_NAME和VERSION_CODE就是再简单不过,还不容易出错

  • 然鹅,不仅仅如此:
    run.gif

开发中经常使用到的第三方库,以依赖方式添加的库,管理起来也一样方便,例如,现在如日中天的Rxjava库、Retrofit库,RxAndroid库:

    compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:converter-gson:2.1.0'compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'compile 'io.reactivex:rxandroid:1.2.0'compile 'io.reactivex:rxjava:1.1.6'复制代码

对应版本,也可以在gradle.properties统一管理,不过在build.gradle中命名方式,类似于第三方KEY的命名:

compile "io.reactivex:rxandroid:${RX_ANDROID_VERSION}"
compile "io.reactivex:rxjava:${RX_JAVA_VERSION}"
compile "com.squareup.retrofit2:retrofit:${RETROFIT_VERSION}"
compile "com.squareup.retrofit2:converter-gson:${RETROFIT_VERSION}"复制代码

同理,对应的版本号在gradle.properties

依赖库的版本管理.png

通过gradle,并不需要复杂操作,统一管理各种第三方KEY和依赖库的版本,避免开发中出错,希望大家能使用这些开发的小技巧,提高开发效率,代码无bug, 月活过百万,月薪6位数,迎娶白富美,打哭产品,走上人生巅峰

Androidstudio高效管理第三方API的KEY及Gradle版本管理相关推荐

  1. 如何更优雅地对接第三方API

    如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/ ...

  2. Gartner 2018 年WAF魔力象限报告:云WAF持续增长,Bot管理与API安全拥有未来

    Gartner 2018 年WAF魔力象限报告:云WAF持续增长,Bot管理与API安全拥有未来 来源 https://www.freebuf.com/articles/paper/184903.ht ...

  3. 构建和管理有效API市场的关键步骤

    API市场关键要点 各个行业的公司正在寻找通过外部API扩展服务来塑造数字业务的方法.然而,要获得API的真正好处,是需要超越基本的API管理,再到创建API市场,这是一种专注于连接生产者和消费者的专 ...

  4. 探索第三方 API 服务的身份验证方法:优点和缺点

    探索第三方 API 服务的身份验证方法:优点和缺点 赛斯·法特的相片 赛斯法特 · 2023 年 3 月 18 日 · 4分钟阅读 嗨,大家好, 我们中的大多数人已经使用多个第三方 API 服务来实现 ...

  5. 高效管理 Elasticsearch 中基于时间的索引——本质是在利用滚动模式做数据的冷热分离,热索引可以用ssd...

    高效管理 Elasticsearch 中基于时间的索引 转自:http://stormluke.me/es-managing-time-based-indices-efficiently/ 用 Ela ...

  6. 如何在家访问公司的文件服务器,企业的共享文件,该怎么高效管理?

    原标题:企业的共享文件,该怎么高效管理? 现在的企业基本上都有自己的文件服务器,并且会经常共享文件让局域网内用户访问. 而企业的网络服务器共享文件是企业的无形资产和商业保密信息,员工也经常根据网络服务 ...

  7. 如何更优雅的对接第三方API

    我们在日常开发过程中,有不少场景会对接第三方的API,例如第三方账号登录,第三方服务等等.第三方服务会提供API或者SDK,我依稀记得早些年Maven还没那么广泛使用,通常要对接第三方服务的时候会去下 ...

  8. python第三方插件pip是什么_什么是pip,如何安装管理第三方模块

    什么是pip,如何安装管理第三方模块 pip 是python标准库的管理工具,使用它可以安装管理第三方库,本篇教程一篇新手引导教程,通过本篇教程,你可以学会掌握以下几点技能 安装第三方库 在 Pyth ...

  9. 使用Intellij Idea创建第一个SpringBoot+MyBatis+MySql项目并运行(附安装教程),使用Maven构建项目并管理第三方jar

    Intellij Idea 背景 开发工具及主要框架 Maven 下载安装 settings.xml修改 IDEA配置Maven 注册私有jar Maven打包 MySql安装 配置环境变量 Inte ...

最新文章

  1. C指针8:二级指针(意思就是指向指针的指针)
  2. mysql5.5数据库操作_命令行下mysql数据库基本操作
  3. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】
  4. 汇编为什么分段执行总是执行不了_iOS汇编教程(六)CPU 指令重排与内存屏障...
  5. Powerful array(CF-86D)
  6. require.jsAMD模块化编程
  7. 基于visual Studio2013解决面试题之1102合并字符串
  8. C#创建ActiveX
  9. Linux学习日志--共享内存
  10. Matlab版本svm工具箱,matlab libsvm工具箱
  11. 著名的php项目,PHP著名开源项目汇总
  12. VS找到w3wp.exe 附加到23wp.exe进行debug程序调试
  13. 《云云众声》第94期:HP网络策略遭质疑 IBM牵手ARM发力物联网
  14. Django2.0+小程序技术打造微信小程序助手百度云
  15. 正点原子stm32F407学习笔记4——按键输入实验
  16. 写个脚本薅区块鱼羊毛
  17. 解决Android studio 编译问题(版本不对问题)Unable to resolve dependency for******
  18. 【报告分享】衣物护理生活小电器—消毒、干衣需求创新报告-TMIC消费者洞察(附下载)
  19. 阿里云创始人王坚:你要相信你所坚持的
  20. Linux Shell学习笔记:exit退出状态代码

热门文章

  1. 用好这6个新功能,让你的项目设计事半功倍
  2. 2017年安防监控中的那些核心云计算技术
  3. 别再傻傻地用这些软件G转P了,修复后不稳定的真相在这里
  4. 表的垂直拆分和水平拆分
  5. [2778]小明的花费预算 (二分查找)SDUT
  6. 这些年,在工作中摸索的我
  7. 去除网页上超链接的下划线
  8. 工业互联网 — 5G 边缘计算与 IIoT
  9. Kubernetes — Flannel CNI
  10. altium Designer丝印显示汉字,更换字体,数码管风格,镂空效果