初学Android Studio项目结构第一课

2016-02-23 16:58 评论 0 条

摘要

一个Android项目包含着定义你的Android APP的所有东西,根据一个APP源代码来创建配置和测试源码。Android SDK工具需要你的项目按照指定的结构创建以便于它可以正确地编译和打包。如果你正在使用Android Studio,这些全部都是你该留意的东西。

在Android Studio的一个明确源代码文件和资源的类型项目中模块是一个最初的容量单位,在一个项目中存在着几种类型的模块:

Android Application Modules

一个Android Application Module是包含着应用源代码、资源文件和应用配置的一个容器,例如:module-level 构建文件、资源文件和Manifest文件。该应用模块的内容被构建进入将要安装的apk文件中。

Test Modules

这些模块包含用于测试你的应用项目源码,同时被构建到测试运行的应用中。默认情况下,Android Studio 创建androidTest module嵌套到单元测试中。

Library Modules

这些模块包含共享的Android你可以引用到Android项目中的源代码、资源文件,这是非常有用的当你拥有你想要重用的代码时。Library modules不能直接被安装到一个设备中,但是在构建时它们可以被编译到.apk文件。

App Engine Modules

Android Studio 让你轻松地添加一个云端的项目到你的应用中,一个后端允许实现你的功能,例如:备份用户的数据到云端、向APP客户端提供服务、实时交互和通过Google云消息中心为Android应用发送推送消息等等。App Engine的模块是后端App Engine开发的Java Servlet模块,APP Engine开发的java Endpoints模块用于将服务器端的Java代码注解转换成基于REST的API后端,同时APP Engine后端连接着Google云消息中心从你的服务器发送推送消息到Android设备。

当你使用Android development tools来创建一个新的项目、新的模块时,一些必须的文件、文件夹将会自动为你创建好,只为你生成部分的文件、文件夹,其中一些取决于是否使用Android Studio或Android的工具生成的模块。随着你的项目的复杂性的扩展,你可能需要各种各样的新的资源、目录和文件。

PS:项目文件夹和文件应用在整个Android项目,并覆盖类似的模块文件的设置

Android Project Files

Android Studio项目文件和配置适用于当前项目所有模块的项目范围的配置。

.idea

关于IntelliJ IDEA配置文件目录

app

应用模块的目录和文件。

build

这个目录存储所有项目模块的编译输出。

gradle

包含gradle-wrapper文件

.gitignore

明确Git应当忽略的文件

build.gradle

自定义构建系统属性,你可以编辑当前文件指定被应用模块使用的默认构建配置,同时可以指定你的密钥库、别名以便于构建工具能够在构建释放模式时签署你的应用。此文件是不可或缺的项目文件,以至于在项目源版本控制系统中进行维护。

gradle.properties

项目全局Gradle配置。

gradlew

Unix的Gradle启动脚本。

gradlew.bat

Windows的Gradle启动脚本。

local.properties

自定义构建系统的电脑属性,例如:SDK安装路径。由于该文件的内容是取决于本地安装的SDK,该local.properties不应在源版本控制系统进行维护。

.iml

被IntelliJ IDEA创建的模块文件,用于保存模块信息。

settings.gradle

指定要构建的子项目。

Android Application Modules

Android模块是最终被编译到基于你构建配置的apk文件的模块。它们包括:项目源代码、资源文件,默认为你生成大部分的源码、资源文件,然而其余的文件在需要时被创建。下面的目录和文件构成了Android应用模块:

build/

包括为指定构建不同的文件夹,保存在主应用模块中。

libs/

包括所有的私有库,保存在主应用模块中。

src/

包括根目录的Activity文件,该文件保存在:src/main/java//.java路径下。其它源代码文件(例如:.java或.aidl文件)也保存在这里。

main/java/com..

包含应用于App Activity的Java源代码。

main/jni

包含正在使用的Java本地接口的本地代码,查看详情,点击“Android NDK documentation”:http://developer.android.com/tools/sdk/ndk/index.html

main/gen

包含由Android Studio生成的文件,例如:R.java文件、从AIDL创建的接口文件。

main/assets

这个文件夹是空的,你可以使用它来保存原始的资产文件,你保存在这里的文件被编译进入apk文件中,同时原始的文件名被保留。可以使用的IRI以同样的方式在此目录导航作为一个典型的文件系统,并使用AssetManager读文件作为字节流。例如:这是纹理和游戏数据存放的好位置。

main/res

包含应用的资源,比如:drawable文件,布局文件和字符串值在下面的目录里。具体可以参考Application Resources:http://developer.android.com/guide/topics/resources/index.html

anim/

关于那将被编译成animation对象的XML文件,详情可以参考Animation资源类型:http://developer.android.com/guide/topics/resources/animation-resource.html

color/

关于描述colors的XML文件,详情可以参考Color Values资源类型:http://developer.android.com/guide/topics/resources/color-list-resource.html

drawable/

关于位图文件、.9图片和描述绘制图形或绘制对象的XML文件包括多种状态(标准、按下或聚焦),详情可以参考Drawable资源类型:http://developer.android.com/guide/topics/resources/drawable-resource.html

mipmap/

关于APP启动的图标,Android保留的这些资源在这个文件夹里(同时指定密度的文件夹,比如:mipmap-xxhdpi)不管你要安装APP的设备的分辨率,这样的方式使得启动app时为你APP应用去选择最好的分辨率在桌面屏幕上显示。关于mipmap文件夹更多的介绍,详情可以参考Managing Launcher Icons as mipmap Resources:http://developer.android.com/tools/projects/index.html#mipmap

layout/

关于将要被编译到屏幕布局(或称为屏幕一部分)的XML文件,详情可以参考Layout资源类型:http://developer.android.com/guide/topics/resources/layout-resource.html

menu/

关于定义应用菜单的XML文件,详情可以参考Menus资源类型:http://developer.android.com/guide/topics/resources/menu-resource.html

raw/

关于原始的资产文件。保存在该文件夹中的资产文件本质上和保存在assets/目录下是一样的。唯一的区别是你如何访问它们。这些文件由aapt处理,同时必须由R类唯一标识的应用引用,例如:这个文件夹是放置媒体文件的好地方,比如 MP3或Ogg 文件。

values/

关于XML元素标签定义的XML文件。不像res/目录下的其它资源,这些资源被写入这个文件夹的XML文件不是通过文件名引用,而是XML元素标签控制在XML定义的文件怎么替换成R类

xml/

关于冗余的XML用于配置应用组件的文件。例如:一个XML文件定义了PreferenceScreen,APPWidgetProviderInfo,或 Searchability Metadata。详情可以参考 Application Resources:http://developer.android.com/guide/topics/resources/index.html

AndroidManifest.xml/

该控制文件描述了当前应用和每一个组件的性质。例如,它描述:有关activity,services,intent receivers,和content provider特有的性质;被请求的权限;必须的外在的库;被需要的支持的API设备特性等等。详情可以参考AndroidManifest.xml文档:http://developer.android.com/guide/topics/manifest/manifest-intro.html

.gitignore/

指定被git忽略的文件。

app.iml/

IntelliJ IDEA 模块。

build.gradle/

自定义构建系统的属性。你可以编辑当前文件来重写被manifest文件使用的默认构建配置,同时也可以设置你的密钥库、别名的位置以便于构建工具能够在构建释放模块时签名你的应用。这是项目不可或缺的一个文件,以至于在原版本控制系统中维护。

proguard-rules.pro/

ProGuard的设置文件。

Managing Launcher Icons as mipmap Resources

在多种分辨率上,不同主屏启动应用程序在不同设备上显示应用启动图标。当app资源优化技术移除了未被使用的屏幕密度资源,启动图标可能看起来变得模糊,因为启动的app必须缩放低分辨率的图标来显示。为了避免这些现实的问题,app应该使用mipmap/文件夹存放启动图标。Android系统保护这些资源而无论密度剥离,保证启动的app能够选择最佳的分辨率的图标显示。

通过移动启动图标到指定密度的:res/mipmap/文件夹中(例如:res/mipmap-mdpi/ and res/mipmap-xxxhdpi/ ),确保启动的应用程序显示最佳分辨率图标。当前的mipmap/代替了drawable/文件夹。关于xxhdpi启动图标,一定要加上高分辨率xxxhdpi版本的图标来提高对更高分辨率的设备图标的视觉体验。

PS:即使你对所有的设备建立一个单一的APK,移动你的启动器图标到mipmap/文件夹中仍然是最佳实践。

Manifest update

当你移动你的启动图标到mipmap-[density]文件夹中时,在AndroidManifest.xml文件中改变图标的引用以便于你的manifest引用mipmap/位置。这个例子改变manifest文件引用mipmap/文件夹中的ic_launcher图标。

  1. ...  
  2. <application android:name="ApplicationTitle"  
  3.          android:label="@string/app_label"  
  4.          android:icon="@mipmap/ic_launcher" >  
  5.          ...  

当前文章价值6.06元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/1450.html ,谢谢支持!

资源分享

分类:Android Studio 标签:
浅谈Android DVM 浅谈Android DVM
Android Debug Bridge之Shell命令 Android Debug Bridge之Shel
ProgressBar+WebView实现自定义浏览器 ProgressBar+WebView实现自定
Android学习笔记十二:Android基础知识 Android学习笔记十二:Android

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情