❤️【Android精进之路-03】创建第一个Android应用程序竟然如此简单❤️

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。
本文会重点介绍如何创建第一个Android应用,以及如何使用Android Studio进行调试

干货满满,建议收藏,需要用到时常看看。小伙伴们如有问题及需要,欢迎踊跃留言哦~ ~ ~。

前言

上一篇文章我们介绍了Android Studio的安装以及Android SDK的目录结构。这篇文章将介绍如何使用Android Studio创建第一个Android应用,重点介绍Android Studio的目录结构。

创建第一个Android应用

首先,让我们来创建第一个Android应用。在欢迎页面点击New Project按钮。
在这里插入图片描述
进入下一个界面之后选中Basic Activity 按钮,创建一个基本视图的Android应用。
图1
接着进入下一个界面,在这个界面中可以填写项目名,包名等等。这里我新建了一个名为HelloWorld项目。
图2
设置完成之后点击Finish 按钮。即可完成第一个Android项目的创建。应用加载完成之后项目HelloWorld的目录结构如下图所示:
图3
程序加载没问题之后,就可以设置一个模拟器,操作步骤如下图所示,这里我设置了Nexus S API 30和Pixel2 API 30 两个模拟器,每个模拟的尺寸都不相同。
图4
图5
设置好模拟器之后,如果只需要运行项目的话则点击下图左边的按钮,如果要对代码进行调试(debug模式)的话则需要点击下图右边的按钮。
图6
运行结果如下图所示:
图7

Android应用的目录结构

说完了Android应用程序的创建之后,接下来就来看下这个HelloWold 应用程序的目录结构吧。
Android Studio主窗口
如果Project窗口没有出现,则依次选择 View->Tool Windows->Project。选择好窗口之后,从该窗口的下拉列表中选择Android视图。然后,你就能看到如下文件。

  1. app-> java->com.jay.helloworld->MainActivity
    这是主Activity。它是应用的入口,当您构建和运行应用时,系统会启动此Activity的实例并加载其布局,

public class MainActivity extends AppCompatActivity {

    private AppBarConfiguration appBarConfiguration;
    private ActivityMainBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
//        调用父类的onCreate方法
        super.onCreate(savedInstanceState);

        binding = ActivityMainBinding.inflate(getLayoutInflater());
//    调用setContentView方法显示视图界面
        setContentView(binding.getRoot());
//     设置对工具栏ToolBar的支持
        setSupportActionBar(binding.toolbar);

        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);
        appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build();
        
        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
//  点击事件
        binding.fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }
    ·······省略部分代码
    }

MainActivity 继承于AppCompatActivity,并重写了onCreate方法,AppCompatActivity类是Android Studio中默认的构建自定义Activity的模板类。
这里其实还涉及到FirstFragment和SecondFragment两个Fragment。它们两个是用来控制图7中的点击按钮的。
4. app->res->layout->activity_main.xml
此XML文件定义了activity界面(UI)的布局,整体布局都是采用CoordinatorLayout布局,这个布局是support v7系统新增的布局,具有便于协调子布局的特点,该布局是增强版的FrameLayout布局,它通常与ToolBar和FloatingActionButton合用。

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/Theme.HelloWorld.AppBarOverlay">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/Theme.HelloWorld.PopupOverlay" />

    </com.google.android.material.appbar.AppBarLayout>

    <include layout="@layout/content_main" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_marginEnd="@dimen/fab_margin"
        android:layout_marginBottom="16dp"
        app:srcCompat="@android:drawable/ic_dialog_email" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

其中ToolBar是图7中显示HelloWorld的蓝色工具栏,具有承载系统菜单的功能。FloatingActionButton是图7中右下侧的邮箱图标的按钮。
<include layout="@layout/content_main" />
这行代码将content_main.xml 的布局嵌入activity_main布局中。content_main.xml的代码为:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <fragment
        android:id="@+id/nav_host_fragment_content_main"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:defaultNavHost="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:navGraph="@navigation/nav_graph" />
</androidx.constraintlayout.widget.ConstraintLayout>
  1. app->manifests->AndroidMainifest.xml
    清单文件描述了应用的基本特性并定义了每个应用组件,是整个项目的配置资源,里面配置的内容包括当前应用程序所在的包,应用程序中的Activity,应用程序的访问权限等等。
    在这里插入图片描述
  2. Gradle Scripts -> build.gradle
    这里是gradle构建项目的文件,一个针对项目Project:HelloWorld,一个针对应用模块Project:HelloWorld.app。每个模块均有自己的build.gradle文件。但此项目当前仅有一个模块,所以只有一个针对应用模块。

Android Studio的调试

学会用Android Studio进行代码调试是开发者的一项必备技能。

设置断点

双击需要添加断点的代码行的左侧。出现如下红点说明断点设置成功。
在这里插入图片描述

调试

断点设置好之后,还需要在调试模式下运行,才能是断点生效。点击下图的小乌龟进入调试模式。
在这里插入图片描述
运行之后可以看到Debugger和Console两个tab页面,Debugger页面主要是用来记录方法的调用栈以及查看运行时的变量的值。Console则是控制台。
在这里插入图片描述

总结

本文首先详细介绍了如何创建第一个Android应用程序,接着介绍了如何用Android Studio进行调试。

Java知识图谱

因为学习安卓需要良好的Java基础,这里推荐一下CSDN最新出的Java知识图谱,属实不错! 《Java知识图谱》,尺寸 870mm x 560mm,展开后有一张办公桌大小,也可以折叠成一本书的尺寸,有兴趣的小伙伴可以了解一下------扫描下图中的二维码即可购买。
在这里插入图片描述
我本人也已经用上了,感觉非常好用。图谱桌上放,知识心中留。

我是码农飞哥,再次感谢您读完本文

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 2
    评论
目录 第1章 概要 8 1.1. 文档目的 8 1.2. 文档范围 8 1.3. 参考文献 8 第2章 产品介绍 9 2.1. 产品定义 9 2.1.1. 产品描述 9 2.1.2. 起源及发展条件 9 2.1.3. 产品logo设计 10 2.1.4. 产品发展目标 10 2.2. 开发背景及必要性 10 2.3. 主要功能 10 2.4. 特色服务 19 2.4.1. 特色服务-精品化推荐 19 2.4.2. 专家化定位 19 2.4.3. 精细化评分 19 2.4.4. 特色服务-地图 20 2.4.5. 特色服务-在线订餐 20 2.4.6. 特色服务-摇一摇 21 2.4.7. 特色服务-语音识别 21 2.5. 辐射范围 21 2.6. 建设意义 21 第3章 盈利模式与商业价值 22 3.1. 盈利模式 22 3.1.1. 佣金收入 22 3.1.2. 线下服务 22 3.1.3. 无线增值 22 3.1.4. 网络广告 22 3.2. 成本效益分析 23 3.3. 投资与经营预测 24 3.4. 商业价值 25 第4章 竞争对手及产品分析 25 4.1. APP产品市场分析 25 4.1.1. 市场规模 26 4.1.2. 市场结构 27 4.2. 目标市场的设定 28 4.2.1. 影响APP产品市场需求的主要因素 28 4.2.2. APP产品市场发展阶段 28 4.2.3. APP产品市场趋势预测和市场机会 29 4.3. 竞争对手产品分析 30 4.3.1. 豆果美食 30 4.3.2. 特有服务 31 4.3.3. 优点 32 4.3.4. 缺点 32 4.3.5. 盈利点 33 4.4. 大众点评 33 4.4.1. 特有服务 34 4.4.2. 优点 35 4.4.3. 缺点 36 4.4.4. 盈利点 37 4.5. 好豆菜谱 38 4.5.1. 特有服务 38 4.5.2. 优点 39 4.5.3. 缺点 41 4.5.4. 盈利点 41 4.6. 下厨房 41 4.6.1. 特有服务 42 4.6.2. 优点 42 4.6.3. 缺点 44 4.6.4. 盈利点 44 4.7. 食神摇摇 44 4.7.1. 特有服务 45 4.7.2. 优点 45 4.7.3. 缺点 47 4.7.4. 盈利点 47 第5章 建设方案 48 5.1. 总体设计 48 5.1.1. 整体架构 48 5.2. 平台门户建设 49 5.3. 建设原则 49 5.3.1. 前瞻性 49 5.3.2. 人性化 49 5.3.3. 可靠性 49 5.3.4. 开放性 50 5.3.5. 可维护性 50 5.3.6. 拓展性 50 5.4. 整体建设规划 50 5.4.1. 需求概述 50 5.4.2. 建设目标 51 5.4.3. 延展系统 51 5.5. 社交平台运营推广方案 51 5.5.1. 微信公共账号管理平台(详见第六章) 51 5.5.2. 智能客服 51 5.5.3. 增值工具 51 5.5.4. 会员管理 52 第6章 微信平台建设方案 52 6.1. 微信的发展 52 6.2. 微信订阅号和服务号 52 6.2.1. 微信订阅号 52 6.2.2. 微信服务号 53 6.3. 微信公众账号的核心功能 53 6.3.1. 自助问答类 53 6.3.2. 帮助系统 54 6.3.3. 其他引导性关键词 54 6.3.4. 会员服务 54 6.3.5. 自助查询类 54 6.3.6. 活动类服务 55 6.3.7. 其他特色类 55 6.4. 微信公众号设计 56 6.4.1. 会员服务 56 6.4.2. 产品介绍 56 6.4.3. 活动展示 57 6.4.4. 商家推荐 57 6.4.5. 微信支付 57 6.4.6. 便民查询 60 第7章 APP移动互联的建设方案 61 7.1. APP功能与界面设计 61 7.1.1. 客户端启动 61 7.1.2. 首页设计 61 7.1.3. 菜单指南 61 7.1.4. 智能导航 61 7.1.5. 语音解说 61 7.1.6. 活动速览 61 7.1.7. 分享互动 61 7.1.8. 会员和积分管理 61 7.1.9. 系统设置 61 7.1.10. 导览界面 61 7.1.11. 模式设置 61 7.1.12. 查询功能 61 7.2. APP后台管理 61 7.2.1. 后台功能管理 61 7.2.2. 应用内容管理 62 第8章 运营 62 8.1. 市场概述 62 8.2. 运营定位 62 8.2.1. 以企助建,促进平台业务快速发展 62 8.2.2. 整合各类业务的整合营销平台,节省营销成本,提升效益 63 8.2.3. 借助平台培养用户使

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:Age of Ai 设计师:meimeiellie 返回首页
评论 2

打赏作者

码农飞哥

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值