Gradle学习之设置applicationId

ID的作用

  • 可以用ID在设备上和Google Play中对应用进行唯一标识。如果上传新的版本,id必须一样,否则 Google play会将APK视为完全不同的应用。

具体设置

  • 在build.gradle中设置applicationId属性
android {
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    ...
}

命名规则

  • 必须只好包含两端(一个或者多个圆点)
  • 每段必须以字母开头
  • 所以有字符必须为数字或者下滑线【a-z A-Z 0-9】

ID 与软件包名称的关系

  • 当在Android studio中新建项目的时候,applicationId会和Java软件包名称相同,除此之外,两者之间并没有什么关系。
  • 可以更改代码的软件包名称,不会影响Id。 但是会有其他影响 TODO 看官网 修改修改软件包的影响。
  • 注意:在某些方法中会使用“软件包名称”的术语。比如Context.getPackageName()但是其实返回的是应用ID。
  • 在更改软件包名称的时候,应该始终匹配AndroidManifest.xml文件中的package属性 这是因为
  • 构建工具以此为名称用作应用给的R.java的命名空间。
  • 使用此名称解析清单文件中声明的任何类的名称。比如activity的类。
    : 代码如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp"
    android:versionCode="1"
    android:versionName="1.0" >

构建不同编译环境的应用ID

-代码如下所示。通过appliIdSuffix追加后缀的名字。
-当编译环境为 freeDebug的时候 应用的Id就是 “com.example.myapp.free.debug”.其他类似

  • 一个应用可以有不同的应用ID。 TODO参靠官网的”多APK支持“
android {
    defaultConfig {
        applicationId "com.example.myapp"
    }
    productFlavors {
        free {
            applicationIdSuffix ".free"
        }
        pro {
            applicationIdSuffix ".pro"
        }
    }
buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
}

测试对于ID的影响

  • 默认情况下 测试APK的后悔名字是追加”.test“。 比如这里的测试名字就是com.example.myapp.free.test
  • 也可以在defaultConfig 或者productFlavors中使用 testApplicationId来更改应用id。