一、新建项目
1)运行android studio工具; 2)打开一个创建项目页面;
3) 根据的不同功能选择不同的模板
备注:选择不同的模板,在生成工程时会默认生成不同的代码,方便应用开发
4) 填写项目基础信息
![](https://img-blog.csdnimg.cn/20201009104950748.png)
5) 创建成功
二、项目结构讲解
1)app模块下的Androidmanifest
AndroidManifest.xml是每一个Android程序的入口文件。在该文件中,可以配置APP使用的权限(调用摄像头、进行网络请求、GPS获取等)、APP相关的基础信息(主程序包名、版本号、APP名称和logo等)、第三方服务和组件(调用百度地图服务)。
2)app模块下的Java
由于我们在创建项目时,选择的Java语言,所以这里会出现Java文件夹。在该文件夹下,存放的是程序涉及到的Java代码和测试代码。
3) app模块下的res模块
drawable:存放app中会使用到的图片,调用方式为:R.drawable.demo(调用drawable下的demo.png)
layout:存放app中涉及到的界面,编译器提供了代码构建界面和图形化构建界面,编写页面时刻自由切换。
mipmap:存放一些尺寸较小的图片,例如:app的logo,界面中的图标等。
values:定义一些app的简单样式,默认生成的文件,都在AndroidManifest.xml中设置app基本信息时调用了。
备注: 详细介绍链接.
4)build.gradle配置文件
android studio是采用gradle文件进行项目构建的,默认会在生成项目时,产生两个gradle文件:一个属于project,一个属于Module。
下面将依次介绍:
project:配置项目会使用到的maven库和插件、gradle编译版本等。
buildscript {
//这里是gradle脚本执行所需依赖,分别是对应的maven库和插件
repositories {
google()
//从Android Studio3.0后新增了google()配置,
//可以引用google上的开源项目
jcenter()
//是一个类似于github的代码托管仓库,
//声明了jcenter()配置,可以轻松引用 jcenter上的开源项目
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
//此处是android的插件gradle,
//gradle是一个强大的项目构建工具
}
}
allprojects {
//这里是项目本身需要的依赖,比如项目所需的maven库
repositories {
google()
jcenter()
}
}
// 运行gradle clean时,执行此处定义的task任务。
// 该任务继承自Delete,删除根目录中的build目录。
// 相当于执行Delete.delete(rootProject.buildDir)。
// gradle使用groovy语言,调用method时可以不用加()。
task clean(type: Delete) {
delete rootProject.buildDir
}
module:程序中每引用一个模块,就需要配置一个与其对应的gradle。例如:以模块的方式引入opencv时,系统就会生成一个与其对应的gradle文件。每一个gradle由三个部分组成:apply、android、dependencies。
(1)apply模块
apply plugin表示应用了一个插件,该插件有两种可选值:com.android.application表面该gradle属于程序模块,可直接运行,可打包成apk。com.android.library表示该gradle属于库模块,必须依附于程序模块来运行,打包成aar文件。
(2)android模块
补充:<1> 为gradle添加自动化打包配置signingConfig,可以方便带签名进行打包,在android系统中,同一签名的程序会运行在一个进程中,方便数据共享和程序升级。
<2> 添加sourceSets,配置目录指向。libs文件夹中,可放一些需要使用的jar包。
(3)dependencies模块
该模块为项目定义了依赖关系,使得项目可以引用本地依赖、远程依赖、库依赖。
备注:详细介绍.
5)wrapper配置文件
wrapper其实是对gradle的一层封装,Android项目需要使用gradle来进行构建,但不同版本的项目需要使用不同版本的gradle,而wrapper可以改变当前项目的构建版本。备注:详细介绍.
三、知识补充
1)Activity模块
(1)什么是Activity?
Activity属于app的组件,每一个Activity对应一个用户界面(界面UI来自于res模块下的layout中),通常情况下,一个app拥有多个Activity组件,但只有一个主Activity,该Activity需要在Androidmanifest中定义。
不同Activity之间可相互跳转,以便执行不同操作,当新Activity启动时,旧的Activity会停止,这便涉及到了Activity的生命周期:创建(onCreate)、开始(onStart)、重新开始(onRestart)、恢复(onResume)、暂停(onPause)、停止(onStop)、销毁(onDestroy)。其中,onCreate是必须实现的接口,在该方法中,应该初始化Activity必要的组件和调用setContentView(),用来定义Activity用户界面布局(XML文件)。
备注:详细介绍.
2) Fragment模块
(1)什么是Fragment?
Android可运行在各式各样尺寸的设备中,为了防止不同分辨率所带来的自适应问题, android 3.0开始新增Fragment(碎片),依赖于Activity,不可独立存在。Fragment是一种可嵌入Activity当中的UI片段,可以说一个Activity是由多个Fragment组成的。与Activity相似,Fragment拥有自己的布局和生命周期,接收自己的输入事件,并可以从Activity中动态添加和删除。
(2)Fragment的优势
模块化:不需要把所有代码写在同一个Activity中
可重用:多个Activity可以重用一个Fragment
可适配:根据不同尺寸实现布局
3)UI界面构建
app程序中所使用到的UI界面(xml)统一存放到res文件夹下的layout中,我们可以通过直接编码或者使用切换到可视化界面,进行图像排版进行UI界面的实现。
四、实战小Demo
Demo介绍:UI界面由image和button组成,点击button可显示或隐藏image。
目标一:直接在Activity中编写界面和操作逻辑
目标二:通过Fragment编写界面和操作逻辑
1)通过Fragment编写界面和操作逻辑
(1)新建一个工程项目(略)
(2)新建一个Fragment,取名为FragmentOne,并继承Frag
(3)创建对应xml文件,并实现简单的UI界面
(4)在Fragment中实现一些生命周期方法,并在OnCreateView中指定该Fragment对应的xml文件,实例化xml文件中的对象(按钮、imageView等)
(5)在主Activity中,添加Fragment的引用
(6)逻辑代码编写
(7)结果展示
github代码