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。