[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
[Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目的更多相关文章
- [Android] 基于 Linux 命令行构建 Android 应用(七):自动化构建
本章将演示如何基于 Linux 命令行构建 Android 应用,在开始本章之前,希望你已经阅读之前几章内容. 本文环境为 RHEL Sandiego 32-bits,要基于 Linux CLI 构建 ...
- [Android] 基于 Linux 命令行构建 Android 应用(四):命令行构建
谷歌提供的 Android SDK 支持 Ant 自动构建[1],你可以使用调试和发行两种模式进行构建,两种模式不同之处在于调试模式 Ant 会调用内置的调试密钥,而发行模式调用你提供的私钥. 首先安 ...
- [Android] 基于 Linux 命令行构建 Android 应用(五):Ant 构建命令
Android SDK 提供的 android 工具可以在项目根目录自动生成 Ant 构建文件 build.xml[1].进入项目根目录后,你可以使用以下 Ant 命令[2]. ant clean 清 ...
- [Android] 基于 Linux 命令行构建 Android 应用(一):关于 Android 项目
关于 Android 项目 项目是保存源代码和资源文件的容器. 谷歌提供的 Android SDK 工具只能对具有固定目录结构的项目进行编译和打包.因此强烈建议使用 Eclipse + ADT 或者 ...
- [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名
Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...
- [Android] 基于 Linux 命令行构建 Android 应用(三):构建流程
Android 应用的构建过程就是将 Android 项目中的文件和资源进行编译和打包,最后将结果输出到 .apk 文件..apk 文件是保存二进制文件的容器,它包含了运行安卓应用所需的所有信息,例如 ...
- Android基于mAppWidget实现手绘地图(二)--概要
离线地图是一张被切成类似瓷砖般格子图像组成,这些被切开的格子组织成多个缩放级别.缩放级别是从0开始.0这个缩放级别,地图图像的尺寸为1*1像素.在每下一个缩放级别,图像尺寸则会两倍递增. 每个地图都是 ...
- 【Linux】CentOS 学习笔记之二(命令)
打开文件夹: cd finename 创建目录:mkdir /filename mkdir -p /test/123/111 (多级目录) 删除目录: rmdir 删除目录或文件: r ...
- 八一八android与Linux的关系
Linux与Androld的关系 虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序.下面我们就来分析一 ...
随机推荐
- PHP 计算两个时间戳之间相差的时间
//功能:计算两个时间戳之间相差的日时分秒 //$begin_time 开始时间戳 //$end_time 结束时间戳 function timediff($begin_time,$end_time) ...
- NSString 多行的写法和区别
NSString *str = @"aaaa\ aaaa\ bbbb\ aaaa"; NSString *str1 = @"bbbb" "cccc&q ...
- Unity中巧用协程和游戏对象的生命周期处理游戏重启的问题
主要用到协程(Coroutines)和游戏对象的生命周期(GameObject Lifecycle)基础知识,巧妙解决了游戏重启的问题. 关于协程,这里有篇文章我觉得写的非常好,理解起来也很容易.推荐 ...
- Android典型界面设计(7) ——DrawerLayout+Fragement+ViewPager+PagerTabStrip实现双导航
一.问题描述 在Android典型界面设计(3)的我们实现了双导航效果,即外层底部导航和内部区域的头部导航,如网易新闻等很多应用采用了这种导航,但Google提供DrawerLayout可实现抽屉式导 ...
- Spark2.3(三十六):根据appName验证某个app是否在运行
具体脚本 #/bin/sh #LANG=zh_CN.utf8 #export LANG export SPARK_KAFKA_VERSION=0.10 export LANG=zh_CN.UTF- # ...
- 【FFmpeg】ffplay播放rtsp视频流花屏问题 (转)
问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象. 基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程. 在ffplay源码阅读和分析的基础上,画出了其播放r ...
- WIN10平板 如何设置不允许切换竖屏
点击右下角的通知,然后点击旋转锁定,即可禁止自动竖屏切换
- 对linux安装中文字体库
问题描述: linux提供的web服务,能在网页展示中文,下载pdf出现中文无法读取!,甚是迷瞪,经分析展示是本地浏览器的解析,下载pdf是服务器端的响应,因此要在服务端安装对应的字体库就可以解决此问 ...
- LINQ to Entities 比较日期
//获取当天的数据 DrawRecordDA _recordDA = new DrawRecordDA(); var query = _recordDA.GetQuery(); //筛选 当天 //q ...
- Spring Boot优化
针对目前的容器优化,目前来说没有太多地方,需要考虑如下几个点: 线程数 超时时间 jvm优化 首先线程数是一个重点,初始线程数和最大线程数,初始线程数保障启动的时候,如果有大量用户访问,能够很稳定的接 ...