创建 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

[Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目的更多相关文章

  1. [Android] 基于 Linux 命令行构建 Android 应用(七):自动化构建

    本章将演示如何基于 Linux 命令行构建 Android 应用,在开始本章之前,希望你已经阅读之前几章内容. 本文环境为 RHEL Sandiego 32-bits,要基于 Linux CLI 构建 ...

  2. [Android] 基于 Linux 命令行构建 Android 应用(四):命令行构建

    谷歌提供的 Android SDK 支持 Ant 自动构建[1],你可以使用调试和发行两种模式进行构建,两种模式不同之处在于调试模式 Ant 会调用内置的调试密钥,而发行模式调用你提供的私钥. 首先安 ...

  3. [Android] 基于 Linux 命令行构建 Android 应用(五):Ant 构建命令

    Android SDK 提供的 android 工具可以在项目根目录自动生成 Ant 构建文件 build.xml[1].进入项目根目录后,你可以使用以下 Ant 命令[2]. ant clean 清 ...

  4. [Android] 基于 Linux 命令行构建 Android 应用(一):关于 Android 项目

    关于 Android 项目 项目是保存源代码和资源文件的容器. 谷歌提供的 Android SDK 工具只能对具有固定目录结构的项目进行编译和打包.因此强烈建议使用 Eclipse + ADT 或者 ...

  5. [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名

    Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...

  6. [Android] 基于 Linux 命令行构建 Android 应用(三):构建流程

    Android 应用的构建过程就是将 Android 项目中的文件和资源进行编译和打包,最后将结果输出到 .apk 文件..apk 文件是保存二进制文件的容器,它包含了运行安卓应用所需的所有信息,例如 ...

  7. Android基于mAppWidget实现手绘地图(二)--概要

    离线地图是一张被切成类似瓷砖般格子图像组成,这些被切开的格子组织成多个缩放级别.缩放级别是从0开始.0这个缩放级别,地图图像的尺寸为1*1像素.在每下一个缩放级别,图像尺寸则会两倍递增. 每个地图都是 ...

  8. 【Linux】CentOS 学习笔记之二(命令)

    打开文件夹: cd finename 创建目录:mkdir  /filename mkdir -p /test/123/111        (多级目录) 删除目录: rmdir 删除目录或文件: r ...

  9. 八一八android与Linux的关系

    Linux与Androld的关系 虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序.下面我们就来分析一 ...

随机推荐

  1. [原创]Java性能优化权威指南读书思维导图3

    [原创]Java性能优化权威指南读书思维导图3

  2. Java循环一个对象的所有属性,并通过反射给这些属性赋值/取值

    Java循环一个对象的所有属性,并通过反射给这些属性赋值/取值 说到循环遍历,最常见的遍历数组/列表.Map等.但是,在开发过程中,有时需要循环遍历一个对象的所有属性.遍历对象的属性该如何遍历呢?查了 ...

  3. 微信小程序 多个视频播放器

    大致思路就是,wx:for="{{ list }}"下两个view,一个视频video,另一个封面image(客户需求,要可以自定义封面).主要控制变量是playIndex,当点击 ...

  4. Scala字符串插值

    Scala提供了三种字符串插值方式:s,f和raw.1. s字符串插值器简单的说就是解析字符串变量. val name = "Tom" println(s"His nam ...

  5. ORA-16447 Redo apply was not active at the target standby database

    Cause ALTER SYSTEM FLUSH REDO TO STANDBY failed because redo apply is not active at the target datab ...

  6. java的两种同步方式, Synchronized与ReentrantLock的区别

    java在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和重入锁ReentrantLock. 相似点: 这两种同步方式有很多相似之处,它们都是加锁 ...

  7. c# 序列化BinaryFormatter、SoapFormatter和XmlSerializer的区别

    在C#中常见的序列化的方法主要也有三个:BinaryFormatter.SoapFormatter.XML序列化 1.BinaryFormatter 序列化 [Serializable] //如果要想 ...

  8. (原)MobileNetV1

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9410540.html 论文: MobileNets: Efficient Convolutional ...

  9. 【Windows】创建任务计划

    任务计划,可以将任何脚本.程序或文档安排在某个时间运行. 可以按照如下的方式来启动:附件 -> 系统工具 -> 任务计划程序. 也可以在Win+R后,输入:taskschd.msc 命令来 ...

  10. 高性能Javascript(2) DOM编程

    第三部分 DOM编程 文档对象模型(DOM)是一个独立于语言的,使用XML和HTML文档操作的应用程序接口(API).在浏览器中,主要与HTML文档打交道,在网页应用中检索XML文档也很常见.DOM ...