[Android] 基于 Linux 命令行构建 Android 应用(一):关于 Android 项目
关于 Android 项目
项目是保存源代码和资源文件的容器。
谷歌提供的 Android SDK 工具只能对具有固定目录结构的项目进行编译和打包。因此强烈建议使用 Eclipse + ADT 或者 android 命令创建 Android 项目。
你可以使用 Eclipse + ADT 创建三种项目,它们主要结构相同但功用不同,分别是 Android Projects、Test Projects 和 Library Projects。本文我们主要关注 Android Projects。
一个 Android 项目可视为一个完整容器,它包含应用程序的源代码,资源文件以及其他东西(例如 Ant 构建文件和 Android Manifest 文件。)。所有这些文件最终被构建成一个可以安装在安卓设备上的 .apk 文件。
Eclipse + ADT 能自动创建一个安卓项目所需的基本目录和文件,但你可以根据实际需要在项目中创建更多的目录和文件。
Android Projects
安卓项目是指那些最终可以编译成运行在安卓设备上的 .apk 文件的项目。它包含了应用程序源代码和资源文件,一部分目录和文件是自动生成,另一部分则可根据需要创建。
以下是一个安卓项目的基本目录和文件:
src/
该目录用以保存 Activity 文件和所有源代码文件(.java 和 .aidl 文件)。Activity 文件保存路径为 src/your/package/namespace/ActivityName.java。
bin/
该目录用以保存构建结果。在这里你可以找到最终的 .apk 文件和其他编译后的资源。
jni/
该目录用以保存使用 Android NDK 开发的源代码文件。更多详情参见 Android NDK 文档。
gen/
该目录用以保存 ADT 生成的 Java 文件,例如 R.java 和从 AIDL 文件生成的接口文件。
assets/
该目录用以保存原始文件,这些文件被原样编译到 .apk 文件中,文件名也保留原样。你可以使用 AssetManager 来读取这些文件。它非常适合用于保存游戏数据等。
res/
该目录用以保存应用程序的资源文件,例如可拖拽图片,布局文件和字符串值等。更多详情参见 Application Resources。
anim/
该目录用以保存将被编译为 animation 对象的 XML 文件。参见 Animation。
color/
该目录用以保存描述颜色的 XML 文件。参见 Color Values。
drawable/
该目录用以保存和拖拽图片相关的文件,包括位图文件(PNG, JPEG, GIF),9-Patch 图片文件以及用于描述 Drawable 对象的 XML 文件。参见 Drawable。
layout/
该目录用以保存描述屏幕布局的 XML 文件。参见 Layout。
menu/
该目录用以保存描述应用程序菜单的 XML 文件。参见 Menus。
raw/
该目录用以保存任意的原始文件,raw/ 和 asset/ 只是访问方式不同。本目录下的文件交由 aapt 处理,并且必须在 R class 中使用资源标识符来引用该目录下的文件。该目录适合存储媒体文件,例如 MP3 或 Ogg 文件。
values/
该目录用以保存编译成其他资源的 XML 文件。与 res/ 不同,该目录下 XML 描述的资源不能通过文件名来引用。XML 文件中的元素类型负责控制资源在 R class 的位置。
xml/
该目录用以保存描述应用组件配置的 XML 文件。例如一个 XML 文件可以定义 PreferenceScreen,AppWidgetProviderInfo 或者 Searchability Metadata。参见 Application Resources。
libs/
该目录用以保存私有 Java 库文件。
AndroidManifest.xml
该文件描述了应用程序的属性和它各个组件。例如关于 activities,services,intent receivers 和 content providers 的性质;应用要求获取什么权限;需要哪些外部库文件;要求设备具有哪些特性;支持 API 级别等。参见 AndroidManifest.xml。
project.properties
该文件用以保存项目设置,例如构建目标。该文件应该作为项目的一部分被纳入到版本控制系统中。要编辑该文件,在 Eclipse 中可以右键点击项目文件夹,选择 Properties。
local.properties
该文件用以保存针对特定电脑的定制构建属性。如果你使用 Ant 来构建项目,该文件需要包含 SDK 安装路径。该文件不应该被纳入到版本控制系统中。如果你使用 Eclipse,该文件可以忽略。
ant.properties
该文件用以保存构建系统的定制属性。你可以编辑该文件来覆写 Ant 使用的默认构建设置,你也可以在该文件中注明 keystore 文件路径和 key alias,这样当你以发行模式构建你的应用的时候,构建工具可以自动对你的应用进行签名,该文件是整个项目的一部分,应该被纳入到版本控制系统中。如果你使用 Eclipse 进行构建,该文件可以忽略。
build.xml
该文件是 Ant 构建文件。仅当你使用 Ant 构建项目的时候有用。
附:
1. [Android Developer] Managing Projects
[Android] 基于 Linux 命令行构建 Android 应用(一):关于 Android 项目的更多相关文章
- [Android] 基于 Linux 命令行构建 Android 应用(七):自动化构建
本章将演示如何基于 Linux 命令行构建 Android 应用,在开始本章之前,希望你已经阅读之前几章内容. 本文环境为 RHEL Sandiego 32-bits,要基于 Linux CLI 构建 ...
- [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名
Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...
- [Android] 基于 Linux 命令行构建 Android 应用(四):命令行构建
谷歌提供的 Android SDK 支持 Ant 自动构建[1],你可以使用调试和发行两种模式进行构建,两种模式不同之处在于调试模式 Ant 会调用内置的调试密钥,而发行模式调用你提供的私钥. 首先安 ...
- [Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目
创建 Android 项目 在命令行创建 Android 项目需要用到 android 工具(该工具由 Android SDK 提供,位于 <sdk>/tools/ 目录下.).它能自动生 ...
- [Android] 基于 Linux 命令行构建 Android 应用(五):Ant 构建命令
Android SDK 提供的 android 工具可以在项目根目录自动生成 Ant 构建文件 build.xml[1].进入项目根目录后,你可以使用以下 Ant 命令[2]. ant clean 清 ...
- [Android] 基于 Linux 命令行构建 Android 应用(三):构建流程
Android 应用的构建过程就是将 Android 项目中的文件和资源进行编译和打包,最后将结果输出到 .apk 文件..apk 文件是保存二进制文件的容器,它包含了运行安卓应用所需的所有信息,例如 ...
- 7个基于Linux命令行的文件下载和网站浏览工具
7个基于Linux命令行的文件下载和网站浏览工具 时间:2015-06-01 09:36来源:linux.cn 编辑:linux.cn 点击: 2282 次 Linux命令行是GNU/Linux中最神 ...
- 【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用
基于Linux命令行KVM虚拟机的安装配置与基本使用 https://alex0227.github.io/2018/06/06/%E5%9F%BA%E4%BA%8ELinux%E5%91%BD%E4 ...
- Android Developers:在命令行构建和运行
使用Ant构建脚本构建你的应用程序有两种方式:一种用于测试/调试你的引用程序—debug模式—另一种用于构建你最终发布的包-release模式.无论你使用哪种方式构建你的应用程序,它必须在安装在模拟器 ...
随机推荐
- [Java web]Spring+Struts2+Hibernate整合过程
摘要 最近一直在折腾java web相关内容,这里就把最近学习的spring+struts2+hibernate进行一个整合,也就是大家经常说的ssh. 环境 工具IDE :Idea 2018 数据库 ...
- Android开发中遇到的问题(二)——新建android工程的时候eclipse没有生成MainActivity和layout布局
一.新建android工程的时候eclipse没有生成MainActivity和layout布局 最近由于工作上的原因,开始学习Android开发,在入门的时候就遇到了不少的坑,遇到的第一个坑就是&q ...
- windows Server 2008 R2 TFS2010的备份
1.首先要安装一个工具Power Tools,点击安装,然后下一步就可以了. 2.安装完之后重新打开TFS管理控制台 点击Create Backup Plan 点击下一步,它会导航到第一个页面,在这个 ...
- Log4j详细介绍(五)----输出地Appender
Appender表示日志输出到什么地方,常用的输出地有控制台,文件,数据库,远程服务器等.Log4j中内置了常用的输出地,一般情况下配置一下即可使用.所有的Appender都实现自org.apache ...
- 从马文到AlphaGo AI走过了怎样的70年?
(原标题:从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?) [编者按]从19世纪中叶人工智能的萌芽时期,到现今人工智能的重生,从马文·明斯基到AlphaGo,历史上发生了哪些激动人心的故 ...
- [Java] LinkedHashMap 源码简要分析
特点 * 各个元素不仅仅按照HashMap的结构存储,而且每个元素包含了before/after指针,通过一个头元素header,形成一个双向循环链表.使用循环链表,保存了元素插入的顺序. * 可设置 ...
- WIN8 Metro UI 风格下的微软报表开发与设计 Metro UI SSRS - BIWORK
开篇介绍 作为 BI 系统前端展现的报表,其重要性不言而喻,我们对于一个好的报表的要求也无非主要包含以下几点: 1. 数据完整和正确,数据质量没有问题 2. 友好的清晰的界面,整洁美观,有得体的格式 ...
- Notes中几个处理多值域的通用函数
1.查找出查找内容在多值域中的索引值 getItemIndex(域名,域值,文档) Public Function getItemIndex(ByVal fieldName As String, By ...
- sql server 2008 express 安装的时提示“重启计算机失败"
sql server 2008 express 安装的时提示"重启计算机失败" 解决办法: 打开注册表编辑器(regedit.exe),在HKEY_LOCAL_MACHINE\SY ...
- 译:3.RabbitMQ Java Client 之 Publish/Subscribe(发布和订阅)
在上篇 RabbitMQ 之Work Queues (工作队列)教程中,我们创建了一个工作队列,工作队列背后的假设是每个任务都交付给一个工作者. 在这一部分,我们将做一些完全不同的事情 - 我们将向多 ...