• ApplicationId 与 PackageName 的区别


    转:ApplicationId 与 PackageName 的区别

    在 Android Gradle Build System 之前,PackageName 就是 App 的进程 id。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.my.app"
    android:versionCode="1"
    android:versionName="1.0" >


    此处的 package 属性有两个用途:

    App 的进程 ID
    R 的包名以及 Manifest 中 Activity 等四大组件的相对包名。
    但是,Android 利用 Gradle 作为 Build System 之后就“起风了”。

    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"
    }

    com.android.application 插件的 android 这个 DSL container 中定义了一个 applicationId,这个 applicationId 取代 package name 成为 App 的进程 id。

    不同的 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"
    }
    }

    所以,application id 与 package name 分工明确。

    application id 负责 App 的进程 ID
    package name 负责 R 的包名以及 Manifest 中 Activity 等四大组件的相对包名
    如果 build.gradle 中没有指定 applicationId,那么 application id 的默认值就是 manifest 的 package 属性值。

    参考资料
    ApplicationId versus PackageName

  • 相关阅读:
    php中的md5()的安全问题
    爆破之中文转换成字母脚本
    MYSQL数据库封装类
    SQL执行结果操作
    原生和jquery 的 ajax
    Ajax实例OR技术原理 转自 (http://blog.csdn.net/evankaka )
    JQuery常用事件
    分页原理
    JQuery中$.ajax()方法参数
    session和cookie的作用和原理
  • 原文地址:https://www.cnblogs.com/sunupo/p/16388660.html
Copyright © 2020-2023  润新知