关于作者: CSDN内容合伙人、技术专家, 从零开始做 日活千万级APP,带领广告团队广告单日营收超千万。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业化变现、人工智能等,希望大家多多支持。
一、导读
我们继续总结学习基础知识,温故知新。
今天我们记录一下 applicationId & packageName 的异同。
二、概览
在 Android Studio 中创建新项目时,applicationId 与创建时选择的 Java 样式软件包名称完全一致。
不过,除了这一点,应用 ID 和软件包名称彼此无关。您可以更改代码的软件包名称(代码命名空间),这不会影响应用 ID,反之亦然(但同样,发布您的应用后,不得更改应用 ID)
application id 与 package name 分工明确
- application id 负责 App 的进程 ID
- package name 负责 R 的包名以及 Manifest 中 Activity 等四大组件的相对包名
如果 build.gradle 中没有指定 applicationId,那么 application id 的默认值就是 manifest 的 package 属性值
虽然应用 ID 看起来就像传统的 Java 软件包名称一样,但应用 ID 的命名规则限制性更强一些:
- 必须至少包含两段(一个或多个圆点)。
- 每段必须以字母开头。
- 所有字符必须为字母数字或下划线 [a-zA-Z0-9_]。
2.1 更改软件包名称
默认情况下,项目的软件包名称与应用 ID 匹配,果您要更改软件包名称,需要注意的是,软件包名称(由项目目录结构定义)应始终与 AndroidManifest.xml 文件中的 package 属性匹配,如下所示:
<?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" >
Android 构建工具使用 package 属性来发挥两种作用:
- 它将此名称用作应用生成的 R.java 类的命名空间。
- 它会使用此名称解析清单文件中声明的任何相关类名。
三、 推荐阅读
[SQL 专栏]
[数据结构与算法]
[Android学习专栏]