[Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目

时间:2023-03-08 16:40:14
[Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目

创建 Android 项目

  在命令行创建 Android 项目需要用到 android 工具(该工具由 Android SDK 提供,位于 <sdk>/tools/ 目录下。)。它能自动生成一个项目目录,其中包含若干默认应用程序文件,存案文件,配置文件和一个构建文件。

  命令用法[1]

$ android create project \
--target <target_ID> \
--name <your_project_name> \
--path path/to/your/project \
--activity <your_activity_name> \
--package <your_package_namespace>

  ● target: 构建目标。即应用程序适用的 Android 平台库(包括 add-on,例如 Google API)。使用 $ android list targets 命令查看所有可用目标及其 ID。

  ● name: 项目名称(可选)。如果提供该选项,name 值将用作构建结果 .apk 文件名。

  ● path: 项目路径。如果不存在,则将被自动创建。

  ● activity: 默认 Activity 类名。对应的类文件创建在 <path_to_your_project>/src/<your_package_namespace_path>/ 目录下。如未提供 name 值,那么 activity 值将作为构建结果 .apk 文件名。

  ● package: 包命名空间,与 Java 编程中的包规则相同。

  项目新建完毕后,你就可以进行 Android 开发了。只要你愿意,你可以将项目目录移动到其他任何地方[2]。你也可以将 Android 项目选定为第三方库项目,但这样它只能提供给其他项目作为分享资源,而不能被安装到安卓设备上。

更新项目

  当你更换了一个新的开发环境,你可以使用 $ android update project 命令来更新你的项目使其适应新环境。你也可以使用该命令来更新项目的构建目标(--target)和项目名称(--name)。 android 工具会自动升级或创建更新所需的文件。

  命令用法:

$ android update project --name <project_name> --target <target_ID>
--path <path_to_your_project>

  ● target: 构建目标。

  ● path: 项目路径。

  ● name: 项目名称(可选,如果不想更新项目名称,可以忽略该选项。)

  例如:

$ android update project --name MyApp --target 2 --path ./MyAppProject

引用库文件

  如果要引用第三方库,你只要在项目的构建属性中添加第三方库索引即可。

  命令用法:

$ android update project \
--target <target_ID> \
--path path/to/your/project
--library path/to/library_projectA

  以上命令通过更新构建属性来包含第三方库。它做的事情其实是在 project.properties 文件中添加了一条 android.library.reference.n 属性。

android.library.reference.1=path/to/library_projectA

  如果你想添加多个第三方库,你可以按照它们之间相对优先级手动编辑 project.properties 文件,使用 .n 指数来表示各自的优先级。例如:

android.library.reference.1=path/to/library_projectA
android.library.reference.2=path/to/library_projectB
android.library.reference.3=path/to/library_projectC

  或者你想要将 library_projectC 设置为最高优先级:

android.library.reference.2=path/to/library_projectA
android.library.reference.3=path/to/library_projectB
android.library.reference.1=path/to/library_projectC

  其中 .n 指数是从 1 开始的连续自然数,如果中间出现断隔,之后的引用将都被忽略。

  在构建时,这些第三方库按照优先级从低到高逐个与应用程序合并。第三方库不能自己和别的库进行引用合并,在它们被合并到应用程序之前,它们彼此是隔离的。

  

注:

[1] 如不想每次都进入 Android SDK 目录来运行 android 命令,可以将 SDK 中的 platform-tools/ 和 tools/ 两个目录添加到环境变量 PATH 中。

[2] 尽量不要随意更改项目路径,因为这会破坏 local.properties 中的 SDK 路径属性。如果你更改了项目路径,请使用 $ android update project 命令来更新项目的 SDK 位置。

附:

1. [Android Developer] Managing Projects from the Command Line