转 使用Android Studio 创建第一个Android 应用

2023-11-18

转自:https://blog.csdn.net/u013926216/article/details/81977815
一、使用Android Studio 开发Android 应用的流程
二、一个简单的登陆界面程序

  1. 程序功能说明
  2. 创建Android 工程
  3. 1 了解Android 项目的组织结构
  4. 2 修改布局文件
  5. 3 核心逻辑的实现
  6. 4 运行测试
    一、使用Android Studio 开发Android 应用的流程
    创建一个Android 项目或Android 模块
    在XML 布局文件中定义应用程序的用户界面
    在Java 代码中编写业务实现
    二、一个简单的登陆界面程序
  7. 程序功能说明
    效果图:

主要功能:
输入用户名和密码,点击登陆按钮做简单的判断:如果用户名和密码相同,则弹出一个登陆成功的提示
2. 创建Android 工程
注意:在创建工程的时候,根据业务需要选择合适的SDK版本,目前Android 5.0以上版本占据着很大的市场,所以我们从5.0 以上版本开始学习。

  1. 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版本一致,否则会出错),根据预览效果再修改相应参数。

  1. 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);  //获取密码

1
2
3
4
5
6
7
8
9
10
11
12
登陆验证打代码:

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();
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2. 4 运行测试
在工具栏找App旁边找到 绿色三角形或者 Shift +F10 运行App(选择符合自己项目SDK版本的模拟器)


作者:冷_心
来源:CSDN
原文:https://blog.csdn.net/u013926216/article/details/81977815
版权声明:本文为博主原创文章,转载请附上博文链接!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转 使用Android Studio 创建第一个Android 应用 的相关文章

随机推荐

  • 改善服务器响应时间,一种改进WWW服务器响应时间的调度方法

    一种改进WWW服务器响应时间的调度方法 这篇论文提出了一种基于控制因子 处于先来先服务和最短作业优先调度方法之间的分类调度方法 它是非抢占的 且不会发生HTTP请求长期等待而未得到WW 本文共3页 阅读全文 gt gt 公共交通是城市居民出
  • element UI 对导航el-menu 样式的修改

    element UI 对导航el menu 样式的修改 对样式进行修改时 el menu horizontal gt el submenu el submenu title el menu horizontal gt el submenu
  • 关于unity3的中关于创建方法的总结

    关于创建基本物体 有些情况会使用上 物体碰撞 游戏里怪物和英雄的触发事件上 创建一个简单物体 隐藏mesh可以作为简单的触法器使用 多次创建预制体Prefab 方法Instantiate original Object position V
  • 基于蜣螂算法优化的SVM数据分类预测-附代码

    基于蜣螂算法优化的SVM数据分类预测 附代码 文章目录 基于蜣螂算法优化的SVM数据分类预测 附代码 1 数据集 2 SVM模型建立 3 基于蜣螂算法优化的SVM 4 测试结果 5 参考文献 6 Matlab代码 7 python代码 摘要
  • IP数据包格式各字段详解说明

    1 版本 指IP协议的版本 为0100或0110 即IPv4和IPv6两种版本 通信双方使用的IP协议版本必须一致 2 首部长度 占 4 位 可表示的最大十进制数值是15 请注意 这个字段所表示数的单位是32位字 即0001表示1个32位字
  • android 中的的 sp/wp/RefBase

    转自 http blog csdn net innost article details 6752443 5 1 概述 初次接触Android源码时 见到最多的一定是sp和wp 即使你只是沉迷于Java世界的编码 那么Looper和Hand
  • STM32CubeIDE IAP原理讲解,及UART双APP交替升级IAP实现

    随言 IAP应该是我唯一想写的文章 从创建这个账号开始 但是不知不觉几年过去了 一直没去写这文章 现在就随便写写吧 曾做过4G模块UART协议与STM32通讯实现远程无线迭代升级 一共2个APP bootloader优先选择稳定高版本的AP
  • 最详解决:jupyter notebook不会自动打开浏览器问题

    一 宝刀未老的老Amy回归之 问题描述 好久木有在 csdn 上写文章了 那是什么原因让 开摆一年 的老Amy 开写 了呢 噔噔蹬蹬 答案是 老Amy的一颗责任心 言归正传 最近替别的老师上几节课 刚好告诉大家如何安装 jupyter 以及
  • 线程复习(针对面试)

    问题一 请说明一下进程和线程的区别 一个进程运行要给他分配系统资源 维护他的代码段和数据段 堆栈等 而线程跟他共享这些 节俭的多任务操作方式 典型的UNIX Linux进程可以看成只有一个控制线程 一个进程在同一时刻只做一件事情 有了多个控
  • (附源码)spring boot西安市中小学生护眼平台开发 毕业设计 080855

    springboot西安市中小学生护眼平台开发 摘要 俗话说 眼睛是心灵的窗户 可在这个科学技术日新月异发展的大千世界里 戴眼镜的人却随处可见 特别是我国在校学生3 2亿 平均近视率超过60 其中小学生为35 初中生为65 高中生达79 更
  • CAD螺纹lisp程序_公英制螺纹标注方法及加工大全

    普通螺纹的标记 螺纹公差带代号的标注在螺纹代号之后 中间用 分开 如果螺纹的中径公差带代号不同 则分别注出 前者表示中径公差带 后者表示顶径公差带 如果中径公差带与顶径公差带代号相同 则只标注一个代号 例如 M10 5g6g M10 1 6
  • shell是什么?ssh 与 git bash linux或cmd与 shell区别

    什么是shell Bash介绍及内容 1 认识Bash这个Shell 管理整个计算机硬件就是操作系统的内核 而内核是需要被保护的 不能让用户随便去修改不然系统崩溃了怎么办 所以一般用户只能通过Shell来跟内核沟通 shell的定义 什么是
  • ajax上传netcore插件,.NET Core Web 文件分片上传,带进度条实用插件

    git CMD命令 git initgit add 添加文件至暂存区 git commit m 描述性语句 随意写即可 git branch gh pages 创建仓库分支 git checkou 使用ARM模板部署自动扩展的Linux V
  • canvas圆形和正方形碰撞检测

    1 圆形碰撞检测 弧度转角度 function d2a n return n Math PI 180 角度转弧度 function a2d return n 180 Math PI window onload function let oC
  • 技术干货的选择性问题

    今天准备整理下微信的收藏夹 因为我发现好像在里面已经收藏了太多文章 这些收藏的文章并不是已经读过觉得不错故而收藏的 而是全没读过的 而其中的很大部份都是所谓的技术干货型文章 因为这类文章一方面比较长 另一方面比较费脑 所以我总是习惯在碰到的
  • 微软2013暑假实习生笔试题

    自己mark一下 以作后备 下面提交原文链接 原文博客 部分题目答案不确定 会持续更新 1 Which of the following calling convention s support s supportvariable leng
  • 报警服务器物理内存,从内存告警谈ESXi主机内存管理——内存构成

    在 如何处理ESXi主机的黄色告警 一文中我们提到了在没有冗余的管理网络或启用SSH的情况下 ESXi主机图标右下方将会出现黄色的告警 除了上述配置导致告警之外 另一种常见的告警就是ESXi主机的内存使用率过高 ESXi主机内存告警 当ES
  • osgEarth的Rex引擎原理分析(六十七)TileNode中的_surface(SurfaceNode)作用是什么

    目标 五十五 中的问题138 每个瓦片TileNode都有一个 surface SurfaceNode 这里面会存放瓦片的几何信息 drawable TileDrawable 这个几何信息会传给DrawTileCommand 用于绘制该瓦片
  • protobuf的安装使用

    简介 Protobuf是Protocol Buffers的简称 它是Google公司开发的一种数据描述语言 是一种轻便高效的结构化数据存储格式 可以用于结构化数据串行化 即序列化 它很适合做数据存储或 RPC 数据交换格式 可用于通讯协议
  • 转 使用Android Studio 创建第一个Android 应用

    转自 https blog csdn net u013926216 article details 81977815 一 使用Android Studio 开发Android 应用的流程 二 一个简单的登陆界面程序 程序功能说明 创建And