《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

相关文章
|
1月前
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
26 1
|
2月前
|
Web App开发 移动开发 小程序
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,显示“网络不给力,请稍后再试”,预发内网版本不能使用,线上版本可以正常使用,这个是什么原因啊,是某些参数没有配置吗,还是说是一些参数改错了?
39 2
|
25天前
|
安全 开发工具 数据安全/隐私保护
如何将应用程序发布到 App Store
如何将应用程序发布到 App Store
|
1月前
|
安全 开发工具 数据安全/隐私保护
如何将应用程序发布到 App Store
如何将应用程序发布到 App Store
|
2天前
|
Java Android开发 C++
安卓SO层开发 -- 第一个NDK项目
安卓SO层开发 -- 第一个NDK项目
6 0
|
27天前
|
Android开发 iOS开发 开发者
点击APP的应用程序图标后,发生了什么
点击APP的应用程序图标后,发生了什么
|
1月前
|
IDE 开发工具 Android开发
Android Studio 下发布项目成APK文件
Android Studio 下发布项目成APK文件
81 1
|
1月前
|
存储 安全 算法
Android安全性: 如何防止Android应用的逆向工程?
Android安全性: 如何防止Android应用的逆向工程?
21 1
|
1月前
|
数据库 Android开发 开发者
Android基础知识:什么是Android应用的四大组件?
Android基础知识:什么是Android应用的四大组件?
34 1
|
1月前
|
JavaScript Android开发
Cordova 打包 Vue 项目到Android打开白屏
Cordova 打包 Vue 项目到Android打开白屏