【Android应用开发】基础知识

Android

Android应用开发

1. 开发环境搭建

下载Android studio,提示下载sdkAPI32/33,创建新项目,选择empty activity。

创建虚拟机:点击右侧Device Manager,点击create device,选择界面外观与系统。创建成功后点击小箭头,开始运行虚拟机。

2. App开发基础

Gradle解释:自动化构建工具

2.1 App开发特点

App的运行环境
App的开发语言
App连接的数据库

**困境:**手机上的App不能直联MySQL、Oracle等。(数据库软件也需要安装到操作系统,MySQL不提供Android系统的安装包)

机制:

1.客户端(App代码、SQLite):负责手机上的用户交互与信息处理,面向用户,用户与APP通过屏幕交互。

2.服务端(Java Web:后端代码、MySQL):负责后台的业务逻辑和数据库操作,面向App,服务端与客户端通过HTTP接口交互。

3.客户端与服务端之间通过HTTP接口通信:

客户端——(发送信息/获取信息)——>服务端,客户端向服务端发起HTTP请求,服务端收到请求,完成数据处理,将结果返回给客户端。

4…多(客户端)对一(服务端)

**总结:**客户端可以操作内置数据库SQLite,不能操作企业级数据库MySQL;客户端通过HTTP接口与服务端进行通信,由服务端操作数据库服务器。

2.2 App工程结构

2.3 App设计规范

2.4 App的活动页面

创建新的App页面
创建XML文件

res-layout-new-XML-layout XML file

创建Java代码

java-new-java class

  1. 继承AppCompatActivity
  2. onCreate() 选择一个参数
  3. setContentView(R.layout.activity_main2) 指定布局
注册页面信息

在AndroidManifest文件中注册该页面:

application:

<activity android:name=".MainActivity2"/>
快速生成页面源码

一键完成上述全部操作:

java-new-activity-empty activity

跳到另一个页面

XML

<Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转"/>

JAVA-MainActivity

Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                //联系上下文
                intent.setClass(MainActivity.this,MainActivity2.class);
                startActivity(intent);
            }
        });

练习题

1.填空题

(1)usb调试

(2)原生开发

(3)build.gradle

(4)Gradle

(5)startActivity(源页面.this,跳转页面.class)

2.判断题

错 客户端

对 一个项目至少有一个模块,可以有多个

错 drawable

3.选择题

C

D +A 处于锁屏状态/选择了充电模式

C App可以直连的数据库

D XML

A

4.简答题

1.一个界面可以被多个Java代码复用,2.一个Java代码可以适用于多个界面 3. 方便预览

5.动手练习

3. 简单控件

3.1 文本显示

设置文本内容

方式1:XML文件中使用android:text设置文本

android:text="你好,世界!"

方式2:Java代码中使用setText方法设置文本

TextView tv_hello = findViewById(R.id.tv_hello);
tv_hello.setText("hello,world!");

android:gravity setGravity(int) 当文字小于视图,指定如何对齐文本视图的X或Y轴。

没有layout_gravity属性

引用字符串资源

问题:提示Hardcoded string “你好,世界!”, should use @string resource

解释:最好将常量写进values-string文件,方便一次性更改多个常量。(类似于变量)

strings.xml:<string name="hello">你好,世界!</string> //hello为变量名,你好,世界!为具体内容
XML:android:text="@string/hello"
Java:tv_hello.setText(R.string.hello)
设置文本大小

方式1:XML文件中使用android:textSize,需要指定单位

px手机屏幕的最小显示单位,与设备的显示屏有关;相同尺寸的屏幕,越清晰,则像素密度越高,以px计量的分辨率越大。
dp与设备无关的显示单位,只与屏幕的尺寸有关;相同尺寸的屏幕以dp计量的分辨率是相同的。
sp专门用来设置字体大小,系统中可以调整/setTextSize默认使用该单位

方式2:Java代码中使用setTextSize方法

补充:

px(pixel)基本单位,单个像素大小不定,跟随屏幕大小和像素数量变化
resolution(分辨率)屏幕的垂直和水平方向的像素数量
dpi(像素密度)屏幕上每英寸距离中有多少个像素点
density(密度)屏幕上每平方英寸中含有的像素点
dip/dp(设备独立像素)长度单位,同一个单位在不同的设备上有不同的显示效果

实验:

对于相同分辨率的手机,屏幕越大,用DP的组件占用屏幕比例越小;

对于相同尺寸的手机,分辨率大小影响用DP的组件的占用屏幕比例。

——>由此可知,用DP的组件占用屏幕比例只与手机尺寸有关

设置文本颜色

方式一:Java代码

系统自带:Color.Green
编码规则:0xFF00FF00
直接引用:

方式二:XML

编码规则:#FF00FF00
直接引用:

设置文字背景颜色:

XML: android:background=""
Java: tv_values.setBackgroundColor();

3.2 视图基础

设置视图宽高

XML:

三种取值:

match_parent 与上级视图保持一致

wrap_content 与内容自适应

以dp为单位

marginTop 间距

Java代码:

设置视图间距

####设置视图对齐方式

当前相对于上级视图 layout_gravity

下级视图相对于当前视图 gravity

3.3 常用布局

线性布局

ctrl+shift+/

相对布局
网格布局

让文字居中,使用gravity

android:layout_columnWeight="1" 列权重,与线性结构不同。
滚动布局

3.4 按钮触控

按钮控件

点击事件和长按事件
禁用与恢复按钮
(Button)v.getText() can't reslove the method getText in view
((Button)v).getText() 加了括号解决了问题,注意。

3.5 图像显示

图像视图

加入图片的方式:将图片复制到 D:\AndroidStudioProjects\MyApplication\chapter03\src\main\res\drawable 路径下即可

图像按钮
同时展示文本与图像

Button 指定图片和文字的间距:drawable_padding

padding 指定当前视图和下级视图的间距

<style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBare">
.Bridg 加入,消去默认背景颜色

3.6 实战项目:计算器

滚动视图
<ScrollView>
 线性布局
 <LinearLayout>
 </LinearLayout>
</ScrowllView>

<ScrollView>
 <LinearLayout>
 </LinearLayout>
</ScrowllView>

4. 活动Activity

4.1 启停活动页面

Activity启动与结束
Activity的生命周期
启动模式
默认启动模式
栈顶复用模式
栈内复用模式
全局唯一模式
动态设置启动模式
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_SINGLE_TOP
FLAG_ACTIVITY_CLEAR_TOP

4.2 在活动之前传递消息

显式Intent和隐式Intent
向下一个Activity发送数据
向上一个Activity返回数据

4.3 为活动补充附加信息

利用资源文件配置字符串
利用元数据传递配置信息
给应用页面注册快捷方式
体验与总结

对于复刻代码,重点是不要有差误。一个大小写,一个数据,都可能导致程序无法运行;

5. 中控组件

5.1 图形定制

图形
形状图形
九宫格图形
状态列表图形

5.2 选择按钮

复选框
开关按钮
单选按钮

5.3 文本输入

编辑框 EditText

登录 用户名;密码

<EditText	默认文字hint	inputType="text/password"

边框消失 background=“@null”

自定义边框

<selector	
	focus时:
	定义形状 <shape solid stroke padding corner
	没有focus:
	改变边框颜色
焦点变更监听器

校验手机号码长度,不满11位不通过

未满十一位就点击密码框,弹出提示文字,自动跳回手机输入框。

maxLength
setOnFocusChangeListener

先进行判断,是否满11位

不满,则请求焦点,显示提示信息。

文本变化监听器

长度达标隐藏键盘 自动关闭软键盘

六位/十一位输入对了,键盘收起

addTextChangedListner
afterTextChanged
工具包

5.4 对话框

提醒对话框

AlertDialog.Builder

日期对话框

DatePicker

日期选择器

时间对话框

5.5 实战项目:找回密码

6. 数据存储

6.1 共享参数SharedPreferences

轻量级存储工具,存储结构键值对。
XML文件
保存路径是:/data/data/应用包名/shared_prefs/文件名.xm

使用场景:
数据单一且独立;文本类型数据;持久保存的数据。
实际开发中,个性化设置、用户行为信息、临时需要保存的片段信息。

共享参数的用法
实现记住密码功能
利用设备浏览器寻找共享参数文件

6.2 数据库SQLite

SQL的基本语法
数据库管理器
数据库帮助器
优化记住密码功能

6.3 存储卡的文件操作

私有存储文件与公共存储文件
在存储卡上读写文本文件
在存储卡上读写图片文件

6.4 应用组件Application

Application生命周期
利用Application操作全局变量
利用Room简化数据库操作

6.5 实战项目:购物车

##7. 内容共享

###7.1 在应用之间共享数据

通过ContentProvider封装数据
通过ContentResolve访问数据

7.2 使用内容组件获取通讯信息

运行时动态申请权限
利用ContentResolver读写联系人
利用ContentObserver监听短信

7.3 在应用之间共享文件

使用相册图片发送彩信
借助FileProvider发送彩信
借助FileProvider安装应用

8. 高级控件

8.1 下拉列表

下拉框
数组适配器
简单适配器

8.2 列表类视图

基本适配器
列表视图
网格视图

8.3 翻页类视图

翻页视图
翻页标签栏
简单的启动引导页

8.4 碎片Fragment

碎片的静态注册
碎片的动态注册
改进的启动引导页

8.5 实战项目:记事本

9. 广播组件 Broadcast

9.1 收发应用广播

收发标准广播
收发有序广播
收发静态广播

9.2 监听系统广播

接收分钟到达广播
接收网络变更广播
定时管理器

9.3 捕获屏幕的变更事件

竖屏和横屏的切换
回到桌面与切换大豆任务列表

Service

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值