美文网首页Android
Android Studio 依赖库版本应该写死

Android Studio 依赖库版本应该写死

作者: CalvinNing | 来源:发表于2016-11-24 17:20 被阅读1665次

** 以下内容并非本人原创,只是网友提供,转载不详,此处仅作备忘 **

dependencies {  
        compile 'com.google.code.gson:gson:2.+' 
}

这样的写法可以保证库每次都是最新的,但也带来了不少的问题

  • 每次build时会向网络进行检查,国内访问仓库速度很慢
  • 库更新后可能会更改内部逻辑而带来bug,动态版本无法通过git的diff来规避此问题
  • 每个开发者都可能会得到不同的最新版本,带来潜在隐患

推荐写成固定的库版本:

dependencies {  
        compile 'com.google.code.gson:gson:2.2.1' 
}

为何会牵扯到此问题?#####

某一天,我将compile 'com.android.support:appcompat-v7:23.0.1改为compile 'com.android.support:appcompat-v7:23.0.2,然后就出错了,原因是根本没有23.0.2这个版本。

  • 那我们怎么知道到底有哪些版本呢?看这里Support Library Revision History
  • 那要是改成24.0.0会怎么样?22.0.0又会怎么样?前提:compileSdkVersion 23
    24.0.0 报错,但是能run,app在模拟器上可以运行
    22.0.0 报错,但是能run,app在模拟器上可以运行
    Paste_Image.png
    Paste_Image.png
    ** 错误提示很明确,就是告诉你这里的版本号如果和compileSdkVersion版本不一致,就可能导致bugs,这是每个程序员都不想要的,所以我们在编程的时候要保证compileSdkVersion、targetSdkVersion以及依赖库的版本一致 **

SDK说明#####
  • tools目录:包括测试、调试、第三方工具。模拟器、数据管理工具等。
  • platform-tools目录:包含开发app的平台依赖的开发和调试工具。从android2.3开始划出此目录,存放公用开发工具,比如adb、sqlite3等,被划分到了这里。
    包括:
    adb:android调试工具
    fastboot:boot工具
  • build-tools目录:编译工具目录,包含了转化为davlik虚拟机的编译工具。
    包括:
    1、aapt(Android Asset Packaging Tool):编译应用程序的资源文件(包括AndroidManifest.xml和你的Activities的xml文件),生成R.java文件,这样你就可以从你的java代码中引用资源。
    2、aidl:把.aidl 接口转换成java接口.
    3、dx:转化.class中间代码为dvlik中间代码,所有经过java编译的生成.class文件都需要此工具进行转换,最后打包进apk文件中.
    4、dexdump:dump devlik中间代码
  • platforms/<android-version>目录:包括android的平台。包含在android.jar库中。你必须指一个平台为你的编译目标。
  • system-images目录:编译好的系统映像。模拟器可以直接加载。
  • sources目录:android sdk的源码目录
  • samples目录:sdk例子

Android开发环境配置(win7_64bit)
Android SDK Manager和AVD Manager使用(win7_64bit下测试)
Android关于buildToolVersion与CompileSdkVersion的区别
Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分

相关文章

网友评论

    本文标题:Android Studio 依赖库版本应该写死

    本文链接:https://www.haomeiwen.com/subject/ponbpttx.html