- 一、使用Android Studio 开发Android 应用的流程
- 二、一个简单的登陆界面程序
- 1. 程序功能说明
- 2. 创建Android 工程
- 2. 1 了解Android 项目的组织结构
- 2. 2 修改布局文件
- 2. 3 核心逻辑的实现
- 2. 4 运行测试
一、使用Android Studio 开发Android 应用的流程
- 创建一个Android 项目或Android 模块
- 在XML 布局文件中定义应用程序的用户界面
- 在Java 代码中编写业务实现
二、一个简单的登陆界面程序
1. 程序功能说明
- 效果图:
- 主要功能:
输入用户名和密码,点击登陆按钮做简单的判断:如果用户名和密码相同,则弹出一个登陆成功的提示
2. 创建Android 工程
注意:在创建工程的时候,根据业务需要选择合适的SDK版本,目前Android 5.0以上版本占据着很大的市场,所以我们从5.0 以上版本开始学习。
2. 1 了解Android 项目的组织结构
任何一个新建的项目都会 默认使用一个Android模式的项目结构,此结构是被Android Studio 转换过了的,适合快速开发,但不易于理解,切换到Project模式后如下:
大概了解项目的组织结构,重点认识一下重要的几个文件:
- gradle 和 .idea : Android Studio 自动生成的一些文件,无需关心
- app :项目中的代码、资源等内容全部都在该文件下,以后的开发也基本上是 在这个目录下进行的,主要有一下组成:
- build : 不需要关心
- libs : 第三方的 jar 包
- AndroidTest ; 编写测试用例
- java : 放置我们所有 Java 代码的地方。
- res : 项目中使用的所有资源文件:
- drawable : 图片
- layout : 布局文件
- values : 字符串
- AndroidMainifest.xml : 整个项目的配置文件,四大组件都需要在这里注册使用,还包括应用程序权限申明
- test : 编写单元测试
- .gitingore : 将指定 的目录或者文件排除在版本控制之外。
- app.iml : InteliJ IDEA 项目自动生成的文件,不需要关心
- build.gradle : app 模块的 gradle 构建脚本, 指定很多项目的构建相关配置
- proguard-rule.pro : 用于指定代码的混淆规则
- Gradle: 包含了gradle wrapper的配置文件
- .gitignore: 关于版本控制,将制定目录或文件排除在版本控制之外
- build.gradle :项目全局的 gradle 构建脚本,通常不需要修该
- gradle.properties: *全局的 gradle 配置文件,其中属性将会影响到项目的所有 gradle 编译脚本
- gradlew 和gradlew.bat: 用来在命令行中使用gradle 命令,前者是在 Linux/Mac 中使用,后者是在Windows 中使用的。
- xxx.iml :*用于标识这是一个 IntelliJ IDEA 项目
- local.properties : 用于指定本机中的SDK 路径
- settings.gradle : 指定项目中引入的所有模块
然后来了解一下两个重要的 build.gradle 文件:首先要知道 Android Studio 项目是基于Gradle 构建的,至于这个Gradle 是个什么 ┏┛墓┗┓…(((m -__-)m,我也不知道。。。但是不影响我们学习,咱继续
在我们的项目中有两个build.gradle 项目:一个在App目录下,一个在外层目录
- 首先来看 app 下的build.gradle 文件:
由三部分组成:
第一行 : 表明是一个应程序模块
第二个 :是一个Android 闭包,主要内容有:
- 指定项目的编译版本
- 嵌套一个defaultConfig 闭包: 指定了应用程序的包名、最低兼容的Android 版本、在目标版本上做了充分测试、项目的版本号、项目的版本名
- buildTypes 闭包:指定了安装文件的相关配置:一般有两个,一个是Debug版本(可省略),一个是release 版本,来了解一下release 版本的内容:
- minifyEnabled :是否对代码进行混淆
- proguardFiles : 混淆规则,有两个目录可选择:一个是SDK目录下的proguard-android.txt(通用规则),一个是当前目录proguard-rules.pro(自定义的一些混淆规则)
第三个:dependencies 闭包:指定当前项目的所有依赖关系,有三种那个:本地依赖、库依赖和远程依:
- implementation fileTree:本地依赖,表示将libs 目录下的所有.jar 后缀文件都添加到项目的构建路径当中
- 第二行是个远程依赖声明:com.android.support:appcompat-v7:28.0.0-rc01 是标准的远程依赖格式,由 域名 + 组名 +版本号组成
- testImplementation: 用于声明测试用例库,暂时用不到
2. 2 修改布局文件
在app>src>main>java>下找到:MainActivity.java文件
选中 activity_main 按住ctrl 键单击,可以跟踪到 activity_main.xml文件
或者在pp>src>main>res>layout 中找到activity_main.xm文件, 这就是MainActivity配套的XML布局文件,打开该XML文件,进行修改。
- 修改布局方式:先介绍最简单的布局LinearLayout 现行布局。修改如下:
跟默认的XML 文件相比,此处制作了两件事:
- 修改布局方式为:LinearLayout
- 添加了对其方式–为垂直:android:orientation=”Vertical”
- 接着添加两个文本框控件
简单的制定控件的属性:
- Id:制定该控件的唯一标识,用来获取界面控件
- 控件高度、宽度:layout_width layout_height :match_parent(与父容器宽度相同),wrap_content(宽度取决于内容)
- 控件输入类型以及输入框提示语属性:inputType hint
- 最后添加Button 控件
指定属性,添加按钮点击事件:
- 设置控件宽高,提示语等
- 添加按钮点击事件:android:Onclick=” 事件处理函数名称 “
- 在函数名称上按ALT+回车:选择Create event(view) in Mainactivity,之后转到ava代码处:
到此布局文件已完成,可以创建启动虚拟机(这里虚拟机的SDK版本必须和当初创建Android 项目的时候选择的SDK版本一致,否则会出错),根据预览效果再修改相应参数。
2. 3 核心逻辑的实现
- 首先要获取用户名和密码
- 在按钮点击的处理函数中判断用户名和密码是否相等,并给出提示
在MainActivity 中 定义两个EditText 的变量,获取用户名和密码,获取方式是通过findViewById,代码如下:
public class MainActivity extends AppCompatActivity {
EditText name ; //用户名
EditText pass; //密码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 从这里开始写我们自己的代码
name =(EditText)findViewById(R.id.name); //获取用户名
pass =(EditText)findViewById(R.id.pass); //获取密码
登陆验证打代码:
public void Check(View view) {
String mname ="Hello";
String mpass ="15pb";
String user = name.getText().toString().trim();
String pwd = pass.getText().toString().trim();
if (user.equals(mname) && pwd.equals(mpass))
{
Toast.makeText(this,
"恭喜,通过", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(this,
"很遗憾,继续努力", Toast.LENGTH_SHORT).show();
}
}
2. 4 运行测试
在工具栏找App旁边找到 绿色三角形或者 Shift +F10 运行App(选择符合自己项目SDK版本的模拟器)