Android

本文详细介绍了Android操作系统的体系结构,对比了与Windows的不同,并深入讲解了Android环境的搭建过程,包括配置Java JDK、安装Android Studio、下载模拟器等步骤。此外,文章还概述了Android项目的结构,UI开发的基础知识,如布局管理(线性布局、相对布局、表格布局、网格布局、帧布局和绝对布局)以及组件事件和常用UI组件的使用。对于开发者来说,是深入了解Android开发的良好起点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作系统体系结构

1.1 与Windows操作系统对比
底层:C Linux
上层:Windows:网站; 同学录:app
1.2 体系结构
在这里插入图片描述

二、Android环境搭建(SDK)

配置:8G ->2G 模拟器:2G
2.2.1 下载JavaJDK1.8
配置环境变量
2.2.2 下载AndroidStudio(IntellijIDE)安装目录放到大的盘符下:
启动设置sdk目录;主题自己需要;

第一次启动时下载比较多;大家一定联网;等待自己编译完成。
https://blog.youkuaiyun.com/y74364/article/details/96121530
2.2.3 下载模拟器(Android手机演示)
https://blog.youkuaiyun.com/c137leo/article/details/83451548
三、项目结构
在这里插入图片描述

1.配置文件:配置Android项目基本信息的;

打包和编译工具
Gridle: 编 译 和 打 包 ; JavaWeb:maven功能类似; Eclipse: 项目
Android studio:项目:workspse
笔记本:需要BIOS;开启虚拟器设置需要安装虚拟加速器
尽量联网状态,网速快一点。

第二章 Android UI 开发

2.1 android运行文件

2.1.1 Android主要文件
AndroidManifest.xml: android 应用配置 文件 package 值是Java包的路径,映射到Java代码
在这里插入图片描述

activity_main.xml :布局文件;应用显示样式界面的文件
MainActivity.java : Java程序代码;将布局文件(页面文件)加载到应用程序中。setContentView(R.layout.activity_main);
R类:Android系统自动生成的;

Android的UI

html:
; javaScript: docutoment.ElementbyID(()): web/student/add.html
css: .test{

width:
color:
}
java:事件

2.1.2 UI
•Android应用的界面是由View和ViewGroup对象构建而成的。View类是Android系统平台上用户界面表示的基本单元,View的一些子类被统称为Widgets(工具),它们提供了诸如文本输入框和按钮之类的 UI对象的完整实现。
•ViewGroup是View的一个扩展,它可以容纳多个View,通过ViewGroup类可以创建有联系的子View组成的复合控件。
2.1.3 android布局

  1. 线性布局
    • 线性布局是Android中较为常用的布局方式,它使用标签表示。
    线性布局有两种方式指定控件位置,一种是水平方向,一种是竖直方向标签属性:相当于html css 样式属性; android: 开头

  2. 相对布局
    页面设计复杂建议使用此布局。
    添加一个组件默认:左上角对齐;android:layout_alignParentLeft=“true”
    在这里插入图片描述

  3. 父容器定位属性示意图
    在这里插入图片描述

  4. 根据兄弟组件定位:组件必须要有ID值
    3 TableLayout表格布局

• 表格布局就是让控件以表格的形式来排列组件的,只要将组件或信息放在单元格中,控件就可以整齐 的排列。
• 在TableLayout中,行数由TableRow对象控制的,即布局中有多少TableRow对象,就有多少行。

①如果我们直接往TableLayout中添加组件的话,那么这个组件将占满一行!
②如果我们想一行上有多个组件的话,就要添加一个TableRow的容器,把组件都丢到里面!
③tablerow中的组件个数就决定了该行有多少列,而列的宽度由该列中最宽的单元格决定
④tablerow的layout_width属性,默认是match_parent的,我们自己设置成其他的值也不会生效! 但是layout_height默认是wrapten——content的,我们却可以自己设置大小!
⑤整个表格布局的宽度取决于父容器的宽度(占满父容器本身)
⑥有多少行就要自己数啦,一个tablerow一行,一个单独的组件也一行!多少列则是看
tableRow中 的组件个数,组件最多的就是TableLayout的列数
三个常用属性
android:collapseColumns:设置需要被隐藏的列的序号 android:shrinkColumns:设置允许被收缩的列的列序号 android:stretchColumns:设置运行被拉伸的列的列序号
以上这三个属性的列号都是从0开始算的,比如shrinkColunmns = “2”,对应的是第三列! 可以设置多个, 用逗号隔开比如"0,2",如果是所有列都生效,则用"*"号即可 除了这三个常用属性,还有两个属性,分别就是跳格子以及合并单元格,这和HTML中的Table类似:
android:layout_column=“2”:表示的就是跳过第二个,直接显示到第三个格子处,从1开始算的! android:layout_span=“4”:表示合并4个单元格,也就说这个组件占4个单元格
4 GridLayout(网格布局)
可以自己设置布局中组件的排列方式可以自定义网格布局有多少行,多少列可以直接设置组件位于某行某列
可以设置组件横跨几行或者几列
默认组件放的位置:从第一行第一列开始放组件;行满了之后从下一行开始放组件。
在这里插入图片描述

5 FrameLayout(帧布局) 层次
刮奖效果: 两个属性:
android:foreground:*设置改帧布局容器的前景图像android:foregroundGravity:设置前景图像显示的位置
6 AbsoluteLayout(绝对布局)

绝对布局需要通过指定x、y坐标来控制每一个控件的位置,放入该布局的组件需要通过
android:layout_x和android:layout_y两个属性指定其准确的坐标值,并显示在屏幕上。
2.1.4 组件事件
• 当用户通过手指触摸UI时, 系统会自动创建对应的Event对象
•Android中提供了多种方式拦截处理不同类型的事件
• 视图本身就可以处理发生在该视图上的事件

  1. 定义布局文件里相应组件

  2. 获取到相应组件

  3. 给组件注册相应事件

  4. 使用匿名内部类
    2.1.5 常用UI组件
    布局文件里可以用属性设置相应组件的属性值;Java端也可以使用组件的方法设置。
    dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
    px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
    pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用; sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

  5. TextView文本标签
    作用:显示文本内容;很少使用交互;

aaa<\b>:可以显示html标签。ClickListener:单击

Android 页 面 内 容 输 入 android:inputType:设置输入类型:文字,数字 ,日期android:hint:设置提EditText示文字
ClickListener:单击

  1. Button普通按钮

  2. ImageView: 图片视图显示图片(htmlimg)

  3. CheckBox: 多选框
    页面多选按钮; 题选择;爱好。多个选项时使用,

  4. RadioButton单选按钮必须放到一个按钮组当中;

  5. OptionMenu选项菜单

  6. 重写两个方法: onCreateOptionsMenuonOptionsItemSelected; 2.添加菜单MenuItem:

menu.add()
3.处理:
item.getItemId():判断单击了哪个菜单

  1. ContextMenu上下文菜单
    •View:setOnCreateContextMenuListener(listener)–滚动窗口,为某个视图添加创建ContextMenu的监听(需要长按触发)
    •Activity: onCreateContextMenu(menu, view, menuInfo)–显示菜单的回调方法
    •Activity: onContextItemSelected(MenuItem item)–当选择某个菜单项的回调方Activity:.registerForContextMenu()将上下文菜单注册到某个组件上

  2. PopMenu弹出菜单用于在某个组件上:

  3. 进度条 Progressbar
    进度条:下载时候,播放视频分类:精确精度条 带进度,
    不精确进度条:圆圈 ;文件加载,视频加载时。
    属性名 描述
    android:animationResolution 超时的动画帧之间的毫秒 ;必须是一个整数值,如“100”。
    android:indeterminate 超时的动画帧之间的毫秒 ;必须是一个整数值,如“100”。

android:indeterminateBehavior 定义当进度达到最大时,不确定模式的表现;该值必须为repeat或者cycle,repeat表示进度从0重新开始;cycle表示进度保持当前值,并且回到0
android:indeterminateDrawable 定义不确定模式是否可拉
android:indeterminateDuration 时间不定的动画
android:indeterminateOnly 限制为不定模式
android:max 定义进度的最大值
android:maxHeight 进度Widget最大高
android:miniHeight 进度Widget最小高

属性名 描述
android:animationResolution 超时的动画帧之间的毫秒 ;必须是一个整数值,如“100”。
android:indeterminate 超时的动画帧之间的毫秒 ;必须是一个整数值,如“100”。

android:indeterminateBehavior 定义当进度达到最大时,不确定模式的表现;该值必须为repeat或者cycle,repeat表示进度从0重新开始;cycle表示进度保持当前值,并且回到0
android:indeterminateDrawable 定义不确定模式是否可拉
android:indeterminateDuration 时间不定的动画
android:indeterminateOnly 限制为不定模式
android:max 定义进度的最大值
android:maxHeight 进度Widget最大高
android:miniHeight 进度Widget最小高

a属n性dr名oid:maxWidth 进描度述Widget最大宽
android:minWidth 进度Widget最小宽
android:mirrorForRtl 定义了相关画板如果需要反映在RTL模式
android:progress 设置进度的默认值,值介于0到max之间

android:secondaryProgress 定义二级进度值,值介于0到max。该进度在主进度和背景之间。比如用于网络播放视频时,二级进度用于表示缓冲进度,主进度用于表示播放进度。
android:progressDrawable 自定义drawable显示
android:interpolator 设置动画速度

进 度 条 样 式 : @android:style/Widget.ProgressBar.Horizontal:水平进度条(可以显示刻度,常用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值