一、使用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版本的模拟器)