《Android App开发入门:使用Android Studio 2.X开发环境》——2-8 修改项目的程序包名称和应用程序 ID...

本文介绍了Android应用程序的程序包名称和应用程序ID的重要性及其管理方式。详细解释了如何避免因程序包名称重复而导致的应用覆盖问题,并提供了修改程序包名称及应用程序ID的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2-8 修改项目的程序包名称和应用程序 ID

如果用户将第 2-5 节的 Ch02_Button 范例部署到手机上执行,然后又把第 2-6 节的范例 Ch02_EditText 部署到手机上执行,会发现手机的应用程序列表中只有 Ch02_ExitText,却没有 Ch02_Button。

在第1章曾经提过,程序包名称是 Android App 在手机上的身份证 ID,而 Ch02_ExitText 项目是从 Ch02_Button 复制而来的,它们的程序包名称相同(?ag.com.ch02_button),因此后来部署到手机上的 Ch02_ExitText 会覆盖掉之前的 Ch02_Button。

其实在 Android Studio 的项目中,有 3 个地方和程序包名称有关。

  1. Java 类程序的程序包名称

所有的 Java 程序(如 MainActivity 程序)都必须指定程序包名称,这是 Java 规定的,以便让每个类名称都是全世界唯一的。例如:

image

  1. 应用程序的程序包名称

这是用来作为App的身份证 ID的。另外,项目的资源类(R.java)也会以此作为其所属的程序包名称。此名称定义在 AndroidManifest.xml 中。

image

3.在 Gradle 中设置的应用程序 ID(Application Id)

Android Studio 是使用 Gradle 系统构建(Build)程序的,由于同一个项目可以构建多种不同的 apk 程序(如免费版、专业版等),因此在 Gradle 中可以针对每种 apk 指定不同的“应用程序 ID”,以便在构建时取代 AndroidManifest.xml 中的程序包名称, 而成为 apk 最后的身份证 ID。

image

以上3种名称默认都会相同(如都是com.?ag.ch02_button),但其实并不一定要相同。除非的确有必要,否则还是保持一致比较好,这样才不会造成混淆。

下面示范如何修改 Ch02_EditText 项目的程序包名称,首先使用 Refactor(重构)功能快速修改前两项名称。

image
image
image

接下来修改应用程序 ID,虽然可以直接打开前述的 Gradle 文件进行修改,但为了避免改错或漏改,而且改完还要重建 Gradle,所以还是利用 Android Studio 提供的界面修改,这样比较直接而且安全。依次单击“File/Project Structure...”菜单选项,然后进行如 下操作。

image
image
image

延伸阅读

(1)如果想查询各个组件有哪些属性、方法,或者想看更详细的说明,可连到 Android 开发者网站 (developer.android.com),然后以组件或功能的名称进行搜索,例如:

image
image

(2)有关 TextView、EditText、Button 的其他属性与方法,可到 Android 开发者网站分别以类名称进行搜索,以得到详细的说明。

(3)有关 Android layout 布局文件的 XML 编写格式,可到 Android 开发者网站以在线文件Layout XML进行搜索。

(4)有关 Application Id 和 Package Name 的详细解说,可到 Android 开发者网站以Application Id进行搜索。

image

重点整理

*1. Android App 是由一个个界面所组成的,每一个界面都由各自的 Activity负责。Activity 的组成可分成“视觉”与“程序逻辑”两部分:视觉也就是用户界面的设计,而程序逻辑是程序行为的设计。在项目中,视觉部分主要是在 res 文件夹下的界面布局文件和各种资源;而程序逻辑是 java 文件夹中的 Java 程序。

*2. Activity 的界面内容是用资源中的布局(Layout)文档定义的。

  1. Android 项目向导创建的默认布局包含两个组件:RelativeLayout 布局组件是通过“相对(Relative)位置”规划组件的位置;TextView 组件是用来显示一段文字,如默认显示“Hello world!”字符串。

*4. 在布局中为组件的 id 属性命名,在程序中就能通过组件的资源ID存取组件。 在布局编辑器的 Text 页面中设置名称时,其格式为“@+id/( 名称 )”,在程序中存取时的资源 ID 就是“R.id. 名称”。

  1. Android 支持多种尺寸单位,其中 sp、dp 是建议使用的逻辑单位,它会随手机屏幕的实际大小、分辨率而调整。sp 还会随手机设置居中的字号调整,所以比较适用于组件的 textSize 属性。
  2. 在复制旧项目来使用时,由于 Android App 是以程序包名称分辨程序的,因此在复制后需更改程序包名称,才会被识别为不同的应用程序。不过在实际构建(Build)项目时,会以 Gradle 中设置的应用程序 ID 覆盖掉 apk 的程序包名称,因此也要一并修改应用程序 ID 才行。

*7. 当用户执行 Android App 时,系统会先找出要先启动的 Activity,并创建所要启动的 Activity 对象,再调用onCreate() 方法。在此方法内加入自己的程序,当 Activity 被启动时(Android App 被执行时),就会执行用户的程序。

*8. 在 res 文件夹加入资源时,会自动在项目中创建代表该项资源的资源 ID。在程序中可用“R.资源类.资源名称”的格式存取该资源。

*9. 以“R.资源类.资源名称”为参数调用 ?ndViewById() 会返回代表该组件的 View 类对象,使用时通常要将其转型为组件专用的类(如 TextView)。

image

  1. TextView 类的 setText() 方法可设置显示的文字。
  2. 按钮的 onClick 属性可指定为 Activity 类中 public 的方法名称,当用户单击按钮时,Android 就会调用该方法。若方法的定义不对、名称不符合,则用户单击按钮时会产生错误。
  3. 若想将编写好的程序直接放在手机上执行,则可用手机附带的 USB 线把手机与计算机相连,再从 Android Studio 中直接将程序上传到手机中执行。

image

习题

image
image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值