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

简介: 本节书摘来自华章计算机《Android App开发入门:使用Android Studio 2.X开发环境》一书中的第2章,第2-8节,作者 施威铭,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

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

相关文章
|
4天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
22天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
1天前
|
数据库 Android开发 开发者
安卓应用开发:构建高效用户界面的策略
【4月更文挑战第24天】 在竞争激烈的移动应用市场中,一个流畅且响应迅速的用户界面(UI)是吸引和保留用户的关键。针对安卓平台,开发者面临着多样化的设备和系统版本,这增加了构建高效UI的复杂性。本文将深入分析安卓平台上构建高效用户界面的最佳实践,包括布局优化、资源管理和绘制性能的考量,旨在为开发者提供实用的技术指南,帮助他们创建更流畅的用户体验。
|
2天前
|
移动开发 Java Android开发
构建高效Android应用:采用Kotlin协程优化网络请求
【4月更文挑战第24天】 在移动开发领域,尤其是对于Android平台而言,网络请求是一个不可或缺的功能。然而,随着用户对应用响应速度和稳定性要求的不断提高,传统的异步处理方式如回调地狱和RxJava已逐渐显示出局限性。本文将探讨如何利用Kotlin协程来简化异步代码,提升网络请求的效率和可读性。我们将深入分析协程的原理,并通过一个实际案例展示如何在Android应用中集成和优化网络请求。
|
2天前
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin协程的优势与实践
【4月更文挑战第24天】随着移动开发技术的不断演进,提升应用性能和用户体验已成为开发者的核心任务。在Android平台上,Kotlin语言凭借其简洁性和功能性成为主流选择之一。特别是Kotlin的协程功能,它为异步编程提供了一种轻量级的解决方案,使得处理并发任务更加高效和简洁。本文将深入探讨Kotlin协程在Android开发中的应用,通过实际案例分析协程如何优化应用性能,以及如何在项目中实现协程。
|
3天前
|
存储 缓存 安全
Android系统 应用存储路径与权限
Android系统 应用存储路径与权限
6 0
Android系统 应用存储路径与权限
|
3天前
|
存储 安全 Android开发
Android系统 自定义系统和应用权限
Android系统 自定义系统和应用权限
18 0
|
8天前
|
缓存 移动开发 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【4月更文挑战第18天】 在移动开发的世界中,打造一个既快速又流畅的Android应用并非易事。本文深入探讨了如何通过一系列创新的技术策略来提升应用性能和用户体验。我们将从用户界面(UI)设计的简约性原则出发,探索响应式布局和Material Design的实践,再深入剖析后台任务处理、内存管理和电池寿命优化的技巧。此外,文中还将讨论最新的Android Jetpack组件如何帮助开发者更高效地构建高质量的应用。此内容不仅适合经验丰富的开发者深化理解,也适合初学者构建起对Android高效开发的基础认识。
7 0
|
8天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
12 0
|
10天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。