Android项目目录结构

在 Eclipse 中新建或者打开一个 Android 项目,可以看到目录视图如下所示:


其实项目开发中,使用频率较高的并不多,我们只要了解清楚不同类型的文件和不同目录的对应关系就可以了。

1. src

src 目录用于存放 Java 代码,它在这里的含义和普通 Java 项目下的 src 目录相同,展开之后可以看到工程的所有代码文件。

2. gen

这个目录里的内容都是编译器自动生成的,切记不要手动修改文件内容,项目中添加的任何资源都会在 R.java 中生成一个相应的资源 id,在代码中调用相应资源时候就是通过这个文件进行自动链接的,另一个 BuildConfig.java 文件用于项目编译配置。

3. assets
这个目录用得不多,主要可以存放一些随程序打包的文件,在程序运行时可以动态读取到这些文件的内容。另外,如果你的程序中使用到了 WebView 加载本地网页的功能,所有网页相关的文件也都存放在这个目录下。

4. bin
这个目录主要包含了一些在编译时自动产生的文件以及生成的 apk 应用程序包。

5. libs
如果你的项目中使用到了第三方 Jar 包,就需要把这些 Jar 包都放在 libs 目录下,放在这个目录下的 Jar 包都会被自动添加到构建路径里去,如果遇到失败的情况,那么需要在项目 Properties->Java Build Path->Libraries 中手动添加 JAR 包。

6. res
这个目录下内容较多,项目中使用到的所有图片、布局、字符串等资源都要存放在这个目录下,前面提到的 R.java 中的内容也是根据这个目录下的文件自动生成的。 当然这个目录下还有很多的子目录, 图片放在 drawable 目录下,布局放在 layout 目录下,字符串放在 values 目录下,menu 文件夹是用来存放菜单文件的,按照这个原则目录就清晰多了。
比如在 values 目录下strings.xml 文件中我们定义:

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">Hello World</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string></resources>

那么有两种方式可以引用它:

<1> 在代码中通过R.string.hello_world 可以获得该字符串引用;

<2> 在 XML 文件中通过 @string/hello_world 获得该字符串引用;

7. AndroidManifest.xml
这是整个 Android 项目的配置文件,程序中定义的四大组件都需要在这个文件里注册。另外还可以在这个文件中给应用程序添加权限声明,也可以重新指定你创建项目时指定的程序最低兼容版本和目标版本。

8. project.properties
这个文件比较简单,就是通过一行代码(target=android-19)用于指定编译程序使用的 SDK 版本。如果我们开始创建错误,也可以在此进行修复。

如果本文对你有帮助就点赞吧。有疑问可以给我邮件或者评论哦~:-D

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Libusb开发教程二 API介绍与使用

背景介绍 上一篇博文主要介绍了 Libusb 在 Linux 系统下的详细安装过程&#xff0c;除了 libusb-1.0.9.tar.bz2 离线包之外&#xff0c;还安装了 libusb-compat-0.1.4.tar.bz2。顾名思义&#xff0c;第二个是先前版本的兼容包&#xff0c;因此在使用过程中&#xff0c;开发者就…

tty,串口,控制台与驱动程序

tty 设备的名称是从过去的电传打字机缩写而来&#xff0c;最初是指链接到 Unix 系统上的物理或者虚拟终端。随着时间的推移&#xff0c;当通过串行口能够建立起终端连接后&#xff0c;这个名字也用来指任何的串口设备。物理 tty 设备的例子有串口、USB 到串口的转换器&#xff…

Linux 串口编程一 一些背景

在大部分讲解 Linux 编程书籍的时候会发现没有单独的串口编程章节&#xff0c;实际上串口编程已经被概括在了“终端”或者“终端IO”章节里面。在上一篇博客中对经常出现的几个容易混淆的概念进行简单描述&#xff1a;tty&#xff0c;串口&#xff0c;控制台与驱动程序。后面会…

Linux tty驱动程序一 架构

tty 核心概览如下图所示&#xff1a; 可以看到&#xff0c;tty 架构的划分层次&#xff0c;由下至上的逻辑关系为&#xff1a;硬件 -> tty 驱动 -> tty 线路规程&#xff08;也译为行规程&#xff09;-> tty 核心 -> 用户层。 内核负责控制 tty 设备的数据流&…

Linux 串口编程二 深入了解 termios

前言 这一系列串口编程重点在应用层编程&#xff0c;但是在讲解原理与相关概念时需要对驱动框架有个基础的认识。如果只是浅尝辄止&#xff0c;以后在遇到串口驱动与应用层程序调试难免遇到瓶颈。关于 tty驱动架构参见我的其他博客&#xff1a;Linux tty驱动程序架构。有时了解…

Linux 串口编程四 串口设备程序开发

Linux 串口编程和程序相对来说是很简单的&#xff0c;之所以用博客连载来展示&#xff0c;主要是想在学会使用的基础上掌握相关背景&#xff0c;原理以及注意事项。相信在遇到问题的时候&#xff0c;我们就不会对于技术的概念和 API 的使用浅尝辄止了。下面进入具体应用案例&am…

POSIX 串口编程指南

介绍 POSIX 串口编程指南将教会你在你的 UNIX 工作站或者 PC 上面如何成功、有效以及可移植性的对串口编程。每一章提供了使用 POSIX 终端控制函数的编程例程&#xff0c;可以基本不经修改地工作在 IRIX, HP-UX, SunOS, Solaris, Digital UNIX, Linux 以及其他大多数 UNIX 操作…

快速解决 Android SDK Manager 无法下载或者下载速度慢

在这里以 Windows 下的 Android SDK Manager 为例&#xff0c;其他系统下与此类似&#xff0c;只会存在部分工具栏名称不同的情况&#xff0c;不明之处可以追问。下面就进入具体配置流程&#xff1a; 1. 选择 Tools->Options 进入代理设置。 代理设置选项&#xff0c;在 H…

安卓之USB主机(Host)与配件(Accessory)模式

安卓设备与USB硬件通讯时有两种模式可以选择&#xff1a;USB Host 模式与 USB Accessory 模式。从 USB 逻辑角色来说&#xff0c;USB Host 模式是指安卓设备作为 USB 主机&#xff0c;所有活动均由安卓设备发起&#xff1b;USB Accessory 模式是指安卓设备作为 USB 设备&#x…

安卓USB开发教程 一 USB Host 与 Accessory

安卓通过两种模式&#xff1a;USB Accessory 与 USB Host 模式支持多种 USB 外设与安卓 USB 配件&#xff08;实现安卓配件协议的硬件&#xff09;。在 USB 配件模式下&#xff0c;外部 USB 硬件充当 USB 主机。配件实例可能包含机器人控制器、扩展坞、诊断和音乐设备、售货亭、…

轻松访问 Android 系统源码与下载

有时研究 Android 某个特性或者协议的时候需要参阅安卓系统源代码中代码实现或者协议文档等。通过正常的建立 repo&#xff0c;git 获取十分耗时&#xff0c;并且速度很慢&#xff0c;除非是需要重新编译系统&#xff0c;定制系统才需要这样做。因此&#xff0c;推荐一个 Andro…

Cygwin 下载极速源推荐

Cygwin 默认列表中的源下载速度太慢&#xff0c;国内使用时常用以下几个源&#xff0c;经过实际使用速度很快&#xff0c;下载时不妨几者都尝试下&#xff1a; 如上图所示&#xff0c;下载时在此栏填写 URL 地址即可&#xff0c;推荐地址&#xff1a; http://mirrors.sohu.com…

Java 结构体之 JavaStruct 使用教程二 JavaStruct 用例分析

使用环境 前一篇在介绍 JavaStruct 类时指定了使用库使用环境为 Java 5 及以上&#xff0c;也即开发我们使用的 JDK 版本为1.5及以上就可以了。以下讲解的用例可以直接将 code 直接粘贴到 java 的 main 函数中执行就可以了&#xff0c;后面会给出测试用例和结果。 使用方法 Jav…

Java 结构体之 JavaStruct 使用教程三 JavaStruct 数组进阶

经过前面两篇博客的介绍&#xff0c;相信对于 JavaStruct 的认识以及编程使用&#xff0c;读者已经有一定的基础了。只要理解和实践结合起来&#xff0c;掌握还是很容易的。下面进行一些数组使用方面的实例说明及演示。 在结构体类中使用数组有几种方式&#xff0c;可以使用静…

Android开发如何使用JNA

1. JNA&#xff08;Java Native Access&#xff09;项目已经迁移到 github&#xff0c;最新的项目链接&#xff1a;https://github.com/java-native-access/jna 。首先前往该地址下载使用 JNA 需要的两个 jar 库文件&#xff0c;jna.jar&#xff0c;jna-platform.jar 。 2. 在…

JAVA循环队列

关于自定义循环队列的实现原理和要点可以参见之前的博文系列&#xff1a;循环队列及C语言实现。这里主要对JAVA下的具体实现方式与原理进行说明。 一、JAVA 中已经自带了 Queue、DQueue、ArrayList、LinkedList 等常用的数据结构&#xff0c;为什么还要单独实现循环队列&#…

VMware 虚拟机占用磁盘空间

使用VMware创建的虚拟机尽管已经设定分配的磁盘大小&#xff0c;但仍然会发现虚拟机占用的磁盘空间会越来越大&#xff0c;而直观体现就是虚拟机系统文件 vmdk 不断增大。因此下面介绍一个简单的方法&#xff0c;使用 VMware 自带的工具对 vmdk 文件进行压缩以节省磁盘空间。拿…

frameworks/av/media/CedarX-Projects/CedarAndroidLib/LIB_KK44_/Android.mk: No such file or directory

在安卓系统编译过程中如果遇到上述或者与之类似的错误&#xff0c;可以采取相同的处理方法进行解决。直接进入到 CedarAndroidLib 目录下&#xff0c;也即此例中的 frameworks/av/media/CedarX-Projects/CedarAndroidLib。看一下当前文件&#xff1a; 注意第9行为包含标题中报错…

Windows与Linux下tftp服务的使用

tftp 协议是基于 udp 的&#xff0c;轻量小巧&#xff0c;用在局域网和嵌入式上很顺手。大部分帖子把在 linux 上配置的过程描述的过于复杂&#xff0c;其实只是个工具而已。研究协议抓下包对比协议内容也可以满足需求了&#xff0c;下面进入正文。分别讲下在 linux 以及 windo…

饥荒Mod 开发(二二):显示物品信息

饥荒Mod 开发(二一)&#xff1a;超大便携背包&#xff0c;超大物品栏&#xff0c;永久保鲜 饥荒中的物品没有详细信息&#xff0c;基本上只有一个名字&#xff0c;所以很多物品的功能都不知道&#xff0c;比如浆果吃了也不知道恢复什么&#xff0c; 采集的胡萝卜也不知道什么功…