[Gradle for Android(安卓)笔记系列]二 、PackageName 与 ApplicationId
16lz
2021-12-04
本文内容主要来源:Gradle for Android (中文版)、CSDN博客
在Gradle
被用作默认的 Android
构建系统之前,PackageName
的主要作用有两个:
<?xml version="1.0" encoding="utf-8"?>
- 作为应用的唯一标志和进程ID
- R 资源及四大组件中被用作包名
在 Gradle
被用作默认的 Android
构建系统之后,一些就发生了改变:
apply plugin: 'com.android.application'android { compileSdkVersion 19 buildToolsVersion "19.1" defaultConfig { applicationId "com.example.my.app" minSdkVersion 15 targetSdkVersion 19 versionCode 1 versionName "1.0" }
AppliactionId
和 PackageName
的分工:
-
applicationId
负责App 的唯一标示
和进程 ID
-
package name
负责R 的包名
以及Manifest 中 Activity 等四大组件的相对包名
当我们在同一设备安装同一 App 的不同版本
时,ApplicationId
可以很好的实现这一需求:
不同的 flavor 或者 build type 可以拥有不同的 application id,也就是不同的进程 id。
productFlavors { pro { applicationId = "com.example.my.pkg.pro" } free { applicationId = "com.example.my.pkg.free" }}buildTypes { debug { applicationIdSuffix ".debug" }}
如果
build.gradle
中没有指定applicationId
,那么applicationId
的默认值就是manifest
的package
属性值
更多相关文章
- 《Android/OPhone 开发完全讲义》已出版,现提供源代码下载
- Android笔试的一部分知识点
- Android组件化导致的代码不生效
- Android四大组件之 服务Service
- android 手机开发( 什么是intent)
- Android(安卓)ActivitiyThread的建立
- android开发环境
- Android进程注入
- 第二章 Android内核和驱动程序(转)