Android Studio入门级教程(二)——项目开发基础(Java新手向))持续更新ing

目录

前言:

一.使用Log工具打印日志

常见语法:

如何使用?

二.工程目录结构

三.编译配置文件build.gradle

四.运行配置文件AndroidManifest.xml

五.界面显示与逻辑处理

六.创建新的app页面

1.包含的步骤

·在layout目录下创建XML文件

·创建与XML文件对应的Java代码

·在AndroidManifest.xml中注册页面配置

2.如何实现跳转?


前言:

笔者参加了一个比赛需要用到安卓开发环境,本来想在网上找文字教程,但是没有找到一个很系统的文档或者博客内容。所以在某站上找了个教程自己整理,讲的挺好的,下面整理的知识点是基于我这个java小白和kotlin小白整理出来的笔记,目的是为了让初学者看懂每一行代码是干什么的。b站教程:

【2022 最新 Android 基础教程,从开发入门到项目实战,看它就够了,更新中】 https://www.bilibili.com/video/BV19U4y1R7zV/?p=16&share_source=copy_web&vd_source=a805ea942de3753e6d0c48c2ded03a6d

一.使用Log工具打印日志

常见语法:

Log.e:表示错误信息,比如可能导致程序崩溃的异常

Log.w:表示警告信息

Log.i:表示一般信息

Log.d:表示调试信息

Log.v:表示冗余信息

如何使用?

Log.d(tag:"ning",msg:"onCreate"):tag是用于在Logcat中找到对应的内容,onCreate是显示的内容

二.工程目录结构

gradle是一个项目自动化构建工具,帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作,类似于流水线

三.编译配置文件build.gradle

一个项目分为很多个module

android{//指定编译用的sdk版本号compileSdkVersion 30//指定编译工具的版本号buildToolsVersion "30.0.3"defaultConfig{//指定该模块的应用编号,也就是app的包名applicationId "com.example,chapter02"//指定App适合运行的最小sdk版本号,表示app最希望在哪个版本的Android上运行targetSdkVersion 30//指定app的应用版本号versionCode 1//指定app的应用版本名称versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
//指定app编译的依赖信息
dependencies{//指定引用jar包的路径implementation fileTree(dir:'libs',include:['*.jar'])//指定编译Android的高版本支持库,如AppCompatActivity必须指定编译appcompat库implementation 'androidx.appcompat:appcompat:1.2.0'...
}

四.运行配置文件AndroidManifest.xml

指定了app的运行配置信息

<?xml version="1,0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.chapter02"><application//是否允许备份android:allowBackup="true"//指定显示的图标android:icon="@mipmap/ic_launcher"//显示的名称android:label="@string/app_name"//指定app的圆角图标android:roundIcon="@mipmap/ic_launcher_round">//指定app的风格android:theme="@style/Theme.MyApplication">//activity是活动页面的注册声明,是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务//第一个运行的主活动是什么<activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application>

五.界面显示与逻辑处理

利用xml标记描绘应用界面,使用java代码书写程序逻辑

例子:

//...前面的package和import部分省略
public class MainActivity extends AppCompatActivity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);//表示出现的第一个界面是activity_main.xmlsetContentView(R.Layout.activity_main);//改变activity_main.xml的定义TextView tv=findViewBuId(R.id.tv);tv.setText("你好,世界!");}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"><TextViewandroid:id="@+id/tv"//这个tv就与MainActivity.java中的R.id.tv对应上了android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World"/>
</LinearLayout>

六.创建新的app页面

1.包含的步骤

·在layout目录下创建XML文件

·创建与XML文件对应的Java代码

·在AndroidManifest.xml中注册页面配置

在<application></application>中加入<activity android:name=".MainActivity2"/>

2.如何实现跳转?

public class MainActivity extends AppCompatActivity{@Overrideprotected void onCreate(Bundle savaedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button=findViewById(R.id.button);//setOnClickListener用于设置按钮的点击事件监听器button.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v){//Intent用于在应用程序的不同组件之间传递信息Intent intent=new Intent();//创建的Intent对象,准备用来启动一个新的活动//setClass用于指定Intent要启动的类,指定的是当前的MainActivity和目标的MainActivity2//MainActivity2是指新创建的这个页面的java文件的名称intent.setClass(packageContext:MainActivity.this,MainActivity2.class);startActivity();}})}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp集成安卓原生录屏插件以及使用

概述 我们知道UniApp的出现简化了开发者的工作流程&#xff0c;并减少了代码的重复编写。开发者可以使用一套代码编译到iOS、Android、以及各种小程序的应用&#xff0c;节省了人力和时间成本&#xff0c;但是涉及到与系统交互的时候&#xff0c;比如录屏、录音、录像、文件操…

Java 每日一题: for 与 foreach 的区别 ?

for 循环&#xff1a;是最基本的循环结构&#xff0c;可以通过初始化语句、循环条件和迭代语句来控制循环的执行。 foreach 循环&#xff08;也称为增强型 for 循环&#xff09;&#xff1a;用于遍历集合或数组中的元素&#xff0c;简化了遍历过程&#xff0c;没有显式地控制索…

vercel 如何部署 express 项目

注意&#xff1a;如果你是用 express-generator 生成的 express 项目&#xff0c;请检查是否有依赖 jade &#xff0c;如果有的话删除目录下的 views 文件夹&#xff0c;并把所有渲染页面的方法改成 res.send() !!!!!! 然后在项目根目录创建文件 vercel.json {&qu…

获取后端返回的图形验证码

如果后端返回的直接就是一个图形&#xff0c;有以下几种方式展示 一、直接在img标签里面的src里面调用接口 <img :src"dialogSrc" class"photo" alt"验证码图片" click"changeDialog">let orgUrl "/api/captcha" …

通过 WSL 2 在Windows 上挂载 Linux 磁盘

原文查看 曾为了传输或者共享不同系统的文件频繁地在 Windows 和 Linux 系统之间切换&#xff0c;效率过低&#xff0c;所以尝试通过 WSL 2 在Windows 上挂载 Linux 磁盘。 先决条件 需要在Windows 10 2004 及更高版本&#xff08;Build 19041 及更高版本&#xff09;或 Win…

基础复习(集合)

集合 Collection单列集合 1.特点 2.常用方法&#xff08;Collection都可用&#xff09; 遍历方式 迭代器遍历 Iterator<String> it c.iterator();//此处c是之前定义好的集合//第二步&#xff1a;用于判断当前位置是否有元素可以获取 //解释&#xff1a;hasNext()方…

OWS开放式耳机真的火了:漫步者、悠律、小米开放式耳机各具特点

开放式真无线耳机作为的蓝牙耳机二级分类&#xff0c;在近几年的发展趋势可以说超乎了所有人的想象。 2024 年第一季度中国线上蓝牙耳机销量达到 1757 万副,同比增长 15%,其中开放式耳机市场份额达到 14.4%,较去年同期增长 7.7%,销量同比大幅增长 148%&#xff0c;是整体耳机市…

CMakeList学习笔记

设置项目&#xff1a;project project(planning VERSION 1.0.0 LANGUAGES CXX) # 项目的名字 版本 1.1.0 编程语言 CXX 设置包含目录&#xff1a;include_directories、targer_include_directories 设置编译类型&#xff1a;add_executable、add_library add_executable(demo d…

Mysql中(基于GTID方式)实现主从复制,单主复制详细教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

精密电路设计中的高精电阻:分流电阻

精密电路设计要求电路元件具有极高的精度和稳定性。在这些设计中&#xff0c;分流电阻扮演着至关重要的角色。本文将探讨分流电阻的基本原理、选择标准、应用场景以及在现代精密电路设计中的重要性。 在电子测量和控制领域&#xff0c;电流的精确测量是实现电路精确控制的关键。…

FPGA:3-8译码器的设计

1、什么是3-8译码器&#xff1f; 3-8译码器&#xff0c;顾名思义&#xff0c;三个输入&#xff0c;八个输出&#xff0c;构成3-8译码器。根据二进制特性&#xff0c;三位二进制数有八种可能&#xff0c;对应的真值表如下所示(该译码器输出低电平有效)&#xff1a; 3-8译码器(…

关于使用宝兰德bes中间件进行windows部署遇到的问题——license不存在

报错信息 日志文件中是这么报错的 遇到的具体情况&#xff1a; 实例按照**的文档手册正常步骤下去节点部署的时候没有报错&#xff0c;成功启动&#xff0c;但是日志里会有报错信息&#xff0c;也是license不存在实例创建的时候失败了&#xff0c;报错信息如下所示 解决方法…

Fork软件笔记:一键拉取仓库所有模块

Fork是一个好用的git工具&#xff0c;只是没有中文而已&#xff08;不过不用翻译也能看使用&#xff09;。 工具下载地址&#xff1a;https://fork.dev/ 界面展示&#xff1a; 当项目中仓库模块比较多时&#xff0c;可以看到每个模块都是一个分页&#xff0c;每一个都要手动切换…

ML.NET:一个.NET开源、免费、跨平台的机器学习框架

前言 今天大姚给大家分享一个.NET开源、免费、跨平台&#xff08;支持Windows、Linux、macOS多个操作系统&#xff09;的机器学习框架&#xff1a;ML.NET。并且本文将会带你快速使用ML.NET训练一个属于自己的图像分类模型&#xff0c;对图像进行分类。 ML.NET框架介绍 ML.NET…

ubuntu一些好用的开发工具及其配置

1 终端模糊搜索fzf https://github.com/junegunn/fzf 输入某命令&#xff0c;比如 conda &#xff0c;按下ctrlR&#xff0c;会显示和该命令匹配的历史命令的列表 有了这个工具再也不用记忆太复杂的命令&#xff0c;只需要知道大概几个单词&#xff0c;输入即可搜索。 其搜索…

IP地址专用SSL证书申请指南——六步完成

IP地址SSL证书是一种专门设计用于IP地址的SSL/TLS证书&#xff0c;部署IP地址SSL证书可以实现IP地址HTTPS加密。 一&#xff1a;前提条件 1&#xff1b;申请IP地址SSL证书,必须拥有这个IP地址的管理权限 2&#xff1b;非内网IP&#xff0c;以下是常见的内网IP字段 10.0.0.0…

计算机网络知识点总结————物理层

前言 一、物理层的基本概念 物理层解决什么问题 物理层的主要特性 二、传输媒体 导引型传输媒体 同轴电缆 双绞线 光纤 非导引型传输媒体 三、数据通信的基础知识 1.术语 2.编码方式 总结 前言 我站在清醒和麻木的边缘&#xff0c;不能堕落也不能解脱 一、物理层的…

鸿蒙OpenHarmony Native API【raw_dir.h与raw_file.h】 头文件

raw_dir.h Overview Related Modules: [Rawfile] Description: 提供rawfile目录相关功能 功能包括遍历和关闭rawfile目录 Since: 8 Version: 1.0 Summary Typedefs Typedef NameDescription[RawDir]typedef struct [RawDir] 提供对rawfile目录的访问 Functions Fun…

算法-KMP字符串匹配

题目一 解题思路 KMP算法详解 详解next数组 next[i] 就是使子串 s[0…i] 有最长相等前后缀的前缀的最后一位的下标。 总体来说解next数组和模板串匹配的过程很相似&#xff0c;触类旁通 代码模板 #include<iostream> using namespace std; const int N1e510; char …

AI绘画入门实践 | Midjourney:使用 --ar 控制图片宽高比

参数 Aspect ratio&#xff0c;缩写为 --ar&#xff0c;作用是设置生成图像的宽高比。 使用格式&#xff1a;--ar 宽:高 futuristic portrait of a beautiful human-droid hybrid woman --ar 16:9 futuristic portrait of a beautiful human-droid hybrid woman --ar 9:16 你也…