§1.2 Android项目结构及“Hello World”应用解析

书接上文,我们创建一个新的Android项目,进入Android Studio开发页面,如下图:

左侧为项目工具窗口,通过项目工具窗口可以管理整个项目的相关文件
右侧为代码编辑区,我们可以在这里进行Android程序的开发工作
底部为调试区,在调试区可以进行程序的断点调试、日志打印,可以监视整个程序的内存消耗,从而有针对性的进行性能优化。

首先,通过查看左侧的项目工具窗口区,为大家介绍一个Android项目的基本结构:

如上图所示,在这里我们只需要关注图中app目录下的内容:

  • build目录:构建目录,相当于Java SE开发中的bin目录,该目录为自动生成的,我们不需要关心里面的内容,也没必要改动其中的内容。
  • libs目录:依赖包目录,我们通常将第三方jar包放置在该目录下
  • src目录:src目录是我们日常开发中经常打交道的一个目录,其中androidTest目录和test目录用于测试,此处不做介绍,我们着重介绍的是main目录,main目录分为:java目录、res目录、AndroidManifest.xml文件

????java目录:存放Java代码

????res目录:存放资源文件,其中:
????drawable存放图片资源
????layout存放布局文件
????mipmap也是存放图像资源的,在使用上和drawable没什么区别,但在缩放方面做了一定的优化,因此,我们通常将图标存在在mipmap中。
????value存放了一些字符串资源,我们在后面章节会详细介绍

????AndroidManifest文件:是对整个Android项目的配置文件

运行代码,得到运行结果:

可以看到,在手机上显示出了“Hello World”字符串

以盖房子为例,我们首先要有一张图纸,即我们要盖什么样的房子;
然后,我们要根据图纸建造房子;当然,我们还要为房子在“有关部门”登记。

其实Android程序的运行和盖房子的流程是类似的。

首先,查看xml布局文件代码:activty_main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:id="@+id/activity_main"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     android:paddingBottom="@dimen/activity_vertical_margin"
 8     android:paddingLeft="@dimen/activity_horizontal_margin"
 9     android:paddingRight="@dimen/activity_horizontal_margin"
10     android:paddingTop="@dimen/activity_vertical_margin"
11     tools:context="com.rongma.helloworld.MainActivity">
12
13     <TextView
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:text="Hello World!" />
17 </RelativeLayout>

暂时不必知道这个布局文件代码的含义,我们只需要知道,这个文件是用来“告诉机器”,我们要在手机上显示“Hello World”字符串。(类比到盖房子,其实这就是图纸)

然后,查看Java代码:MainActivity.java

1 public class MainActivity extends Activity {
2     @Override
3     protected void onCreate(Bundle savedInstanceState) {
4         super.onCreate(savedInstanceState);
5         setContentView(R.layout.activity_main);
6     }
7 }

不是什么人都可以盖房子的,为了解锁“盖房子”的技能,我们要让MainActivity继承自Activity类,即所有描述独立页面的类都要继承自Activity类(或Activity的后代类),以此来获得“盖房子”技能。

然后,我们可以看到在onCreate方法中,调用了setContentView方法来获取布局。其中传入的参数为R.layout.activity_main. 这个方法用于获取到我们的“图纸”,并根据“图纸”来盖这个房子,并对房子进行操作。那么,此处的图纸就是R.layout.activity_main.

R.java文件是根据应用的资源文件自动生成的Android应用字典,在这个文件里,我们可以找到Android布局资源、图片资源、字符串资源等相关的映射。在这里,R.layout.activity_main 其实相当于调用了layout资源文件夹下的activity_main.xml布局文件

最后,要将“房子”登记到“有关部门”:

Android程序的“有关部门”------AndroidManifest.xml

之所以称AndroidManifest请单文件为“有关部门”,因为它是整个Android应用的全局描述文件,它说明了该应用的名称、图标、权限、组件等。
这是初始状态下,系统生成的AndroidManifest.xml清单文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.rongma.helloworld">
 4
 5     <application
 6         android:allowBackup="true"
 7         android:icon="@mipmap/ic_launcher"
 8         android:label="@string/app_name"
 9         android:supportsRtl="true"
10         android:theme="@style/AppTheme">
11         <activity android:name=".MainActivity">
12             <intent-filter>
13                 <action android:name="android.intent.action.MAIN" />
14                 <category android:name="android.intent.category.LAUNCHER" />
15             </intent-filter>
16         </activity>
17     </application>
18 </manifest>

在activity节点,我们可以看到android:name=".MainActivity" 此处相对应的就是com.rongma.helloworld.MainActivity文件。也就是对MainActivity这个文件进行了登记。
每一个页面新建之后,都需要在清单文件下进行注册,注册方法:

<activity android:name="Activity的文件名">
</activity>

如果这个页面是“主页”,即刚进入app时显示的第一个页面,其注册方法:

<activity android:name="Activity的文件名">
<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

总结:

我们要让“Hello World”显示在界面上:

首先,要在res/layout文件夹下,写一个xml布局文件(图纸)
然后,新建一个类,继承自Activity(解锁建造技能),通过setContentView方法获取布局文件(获取图纸)
最后,在AndroidManifest.xml文件下,进行注册(有关部门处登记)

时间: 2024-10-27 13:20:34

§1.2 Android项目结构及“Hello World”应用解析的相关文章

Android项目结构 以及体系结构

学习Android平台的人一般对Android的平台的应该有点认识 其它的就不多讲了 Android项目一般由以下几个部分构成 以上是一个简单的Android项目结构目录图 1. src  主要是 源文件目录 放置业务逻辑代码以及相应的UI代码 2. gen 下面有个R.java文件夹 该文件是建立Android项目自动生成的  该文件是只读文件 不可以更改 里面有很多静态 类名字与res的中资源文件一一对应 一般有attr ,drawable id raw layout string xml

Android之什么是Activity和常用的ADB命令以及Android项目结构的认识

总结一下之前学习Android的一些内容 一:  Android常用的ADB命令(adb android调试桥)      1.adb devices   查看模拟器设备并重新连接. 2.adb kill-server   关掉所有模拟器设备. 3.adb install-r  url(安装路径),安装,-r表示替换. 4. adb uninstall url(卸载路径) ,卸载. 5.adb push<本地文件><远程路径>   上传文件. 6.adb pull <远程路径

重新规划Android项目结构

我们需要重新规划Android项目的目录结构,分两步走: 第一步:建立AndroidLib类库,将与业务无关的逻辑转移到AndroidLib. AndroidLib中应该包括哪些业务无关的逻辑呢?应至少包括五大部分. 这几部分的说明如下: activity包中存放的是与业务无关的Activity基类.Activity基类要分两层,如图1-3所示. AndroidLib下的基类BaseActivity封装的是业务无关的公用逻辑,主项目中的AppBaseActivity基类封装的是业务相关的公用逻辑

Android项目结构(翻译)

原文链接 项目概述 一个Android Studio的项目包含了一个应用的所有资源,包括源码.依赖资源.测试代码.build的配置等.创建一个新的项目,Android Studio创建了所有必要的文件并显示在左边的"Project"窗口里(点击View>Tool Windows>Project).下面介绍了项目的核心组件. Modules 一个module是一个源文件和build的配置的集合,可以让你将项目分割成不同的功能模块.一个项目可以有一个或多个module,一个mo

Android项目结构

近期说要上手Android项目所以看了一些资料.新建项目以后.看见项目结构真的好多东西啊,瞬间有点儿蒙圈,带大家来了解一下. 总体结构如图: 接下来一步一步的介绍: (1)src:java源码存放文件夹,java代码文件就存放到这个里面.如图: (2)gen:自己主动生成文件夹,存放全部由Android开发工具自己主动生成文件.文件夹中最重要的就是R.java文件.这个文件由Android开发工具自己主动产生的.Android开发工具会自己主动依据你放入res文件夹的资源,同步更新改动R.jav

Android项目结构介绍

src/存放Java源代码gen/中存放系统自动生成的配置文件Android 4.4.2下包含android.jar文件,这是一个Java归档文件,其中包含构建应用程序所需的所有的Android SDK库(如Views.Controls)和APIsassets/存放资源文件,不会自动升恒id且不会自动占用空间bin/存放应用被编译后生成的可执行文件(.apk),以及应用被打包到apk中的资源文件drawable/存放不同密度的图片资源res/存放应用用到的所有资源,如图片布局等 layout/存

android第一行代码-1.项目结构

0.项目结构 一个简单的android项目结构大致如下 入口就是MainActivity这个类,如果对于一个陌生的项目,最好的办法是看AndroidMainifest.xml,如下 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="act

Android系列教程之Android项目的目录结构

一: Android 项目的目录结构 Android 项目结构概览.其实 Android 项目的目录结构和 Java 的差不多,没有太大变化,如下图:  可以看到 src 文件夹里的是源文件, Android2.2 是引用的类库,这些和 java 的都一样,那么下面的这个 gen 是什么呢?这个里面的类就是 ADT 自动生成的啦,一般只有一个 R.java 文件,是不能修改的,那么他是怎么生成的呢,看到下面的 res 文件夹了吗? R.java 就是根据资源文件夹 res 生成的 ,R.java

Android项目文件结构

一.Project项目结构 app/build/ app模块build编译输出的目录 app/build.gradle app模块的gradle编译文件 app/app.iml app模块的配置文件 app/proguard-rules.pro app模块proguard文件 build.gradle 项目的gradle编译文件 settings.gradle 定义项目包含哪些模块 gradlew 编译脚本,可以在命令行执行打包 local.properties 配置SDK/NDK MyAppl