从零开始学Android开发期末复习重点

news2024/11/18 16:13:51

目录

  • 前言
  • 作业1
  • 作业2
  • 作业3
  • 作业4
  • 作业5
  • 作业6

前言

物联网应用技术课程期末复习重点——学习通作业:

操作系统:Ubuntu22.04

作业1

  1. 简述Android系统架构。
Android 的系统架构和它的操作系统一样,采用了分层的架构.
分为四个层,从高到低分别是程序层、应用程序框架层和Linux核心层。
  1. Android常用的组件有哪些?
Activity、Intent、BroadcastReceiver、ContentProvider、Service
  1. 简述一个Android项目的创建过程。
(1)启动Eclipse,依选择File|New|Project 命令,Eclipse将弹出New Project对话框。


(2)单击 Android下拉箭头,选择 Android Application Project选项,然后单击Next按钮,
跳转到 New Android App 对话框。


(3)在New Android App 对话框中的 Application Name 文本框中输入应用名称 HelloAndroid,
然后单击Next 按钮,切换到 Configure Launcher Icon 界面。


(4)单击 Configure Launcher Icon 界面的 Choose按钮,可以在弹出的对话框中选择任意图标,
作为应用程序图标。然后单击 Next 按钮,切换到 Create Activity 界面。


(5)在Create Activity面中,勾选Create Activity的单选框,创建项目的同时,
也会自动创建 Activity。然后单击Next 按钮,切换到New Blank Activity界面。


(6)在New Blank Activity界面,会自动生成Activity的名称和布局文件的名称。
可以使用默认名称,也可以修改为其他名称。然后单击 Finish 按钮,完成项目创建。
  1. 简述android应用程序结构图。
    1.src:存放程序的源代码。 

    2.gen:系统自动生成,无需手动修改。最重要的就是R.java文件,保存了程序中所在
    用到的所有控件和资源ID。

    3.assets:存放不进行编译加工的原生文件,这里的资源文件不会在Rjava自动生成ID。

    4.drawable-hdpi:存放高分辨率的资源图片。

    5.drawable-ldpi:存放低分辨率的资源图片。

    6.drawable-mdpi:存放中等分辨率的资源图片。

    7.drawable-xhdpi:存放超高分辨率的资源图片,从Android 2.2(APILevel8)才开始增加的分类;

    8.layout:存放项目的布局文件,就是应用程序界面的 XML 文件。

    9.menu: 菜单文件,同样为 XML 格式,在此可以为应用程序添加菜单。 

    10.values:该目录中存放的XML文件,定义了各种类型的key-value键值对。
    一般有 dimens、strings、styles、colors、arrays等。
    通常程序中用到的尺寸、字符串值、样式、颜色、数组等都在该文件中定义,便于使用和修改。

    11.AndroidManifest.xml:这是程序的清单文件。应用程序中用到的所有组件,都要在该文件中注册,
    否则程序无法识别,不能使用。

作业2

  1. Android常见的布局有哪些?
    1、相对父容器布局

    2、相对控件布局

    3、线性布局

    4、表格布局

    5、网格布局

    6、帧布局
  1. 写出一个相对父容器布局的代码。(例如,教材配套光盘2-1)
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

        xmlns:tools="http://schemas.android.com/tools"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

            <Button

                android:id="@+id/button1"

                android:layout_width="200px"

                android:layout_height="150px"

                android:layout_alignParentLeft="true"

                android:layout_alignParentTop="true"

                android:layout_marginTop="64dp"

                android:text="@string/button1"/>

    </RelativeLayout>
  1. 写出一个相对控件布局的代码。(例如,教材配套光盘2-2)
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

        xmlns:tools="http://schemas.android.com/tools"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

            <Button

                android:id="@+id/button1"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:layout_alignParentTop="true"

                android:layout_centerHorizontal="true"

                android:layout_marginTop="64dp"

                android:text="@string/button1"/>

            <Button

                android:id="@+id/button2"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:layout_above="@+id/button1"

                android:layout_marginBottom="38dp"

                android:text="@string/button2"/>

            <Button

                android:id="@+id/button3"

                android:layout_width="200px"

                android:layout_height="150px"

                android:layout_below="@+id/button1"

                android:layout_marginTop="38dp"

                android:text="@string/button1"/>

    </RelativeLayout>
  1. 写出一个水平线性布局的代码。(例如,教材配套光盘2-3)
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        xmlns:tools="http://schemas.android.com/tools"


        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="horizontal"

        android:layout_margin="56dp">

    <Button1

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/button1"/>

    <Button2

        android:id="@+id/button2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="button2"/>

    </LinearLayout>

作业3

  1. Android常见的基本控件有哪些?
    1、文本类控件

    2、Button类控件

    3、时钟控件

    4、图片控件

    5、日期与时间控件
  1. 写出使用控件实现具体功能的一般步骤。
1、使用super.setContentView(R.layout.某布局layout文件名)来加载布局文件

2、使用super.findViewById(R.id.控件的ID)来获取控件引用

3、使用这个引用对控件进行操作,例如添加监听,设置内容等
  1. 写出button注册监听的两种方法。
1.匿名类方式:
public class MainActivity extends Activity {

private Button button;

@Override

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    button=(Button)findViewById(R.id.textView1);

/**为Button点击事件注册一个监听器*/
button.setOnClickListener(new OnClickListener(){

public void onClick(View v){
		//添加逻辑
                    }
            });
    }
}
2.实现接口类方式:

public class MainActivity extends Activity implements OnClickListener{

private Button saveBtn;

private Button loadBtn;

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    saveBtn=(Button)findViewById(R.id.save_data);

    loadBtn=(Button)findViewById(R.id.load_data);

    saveBtn.setOnClickListener(this);

    loadBtn.setOnClickListener(this);

}

@Override

public void onClick(View v) {

	switch (v.getId()) {                    //获取Button的id
	
		case R.id.load_data:
				//添加逻辑
		    break;
		default:
		    break;}
	}
}
  1. 写出一个button注册监听的程序代码。(例如,教材配套光盘3-4)
布局文件,新建两个button:

<Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/button1"/>

<Button

        android:id="@+id/button2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alighParentLeft="true"

        android:layout_marginTop="60dp"

        android:onClick ="click"

        android:text="@string/button1"/>


逻辑代码

public class MainActivity extends Activity {

    Button button1,button2;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        button1=(Button)findViewById(R.id.button1);

        button2=(Button)findViewById(R.id.button2);

/**为Button点击事件注册一个监听器*/

        button1.setOnClickListener(new OnClickListener(){

            public void onClick(View v){

                //添加逻辑

                    setTitle("Button1注册成功")
                    }});
}

            public void onClick(View v){

                    //添加逻辑

                    setTitle("Button2注册成功")}

}

作业4

  1. Android常见的高级控件有哪些?
1、进度条

2、拖动条

3、自动完成文本控件

4、评分条RatingBar

5、下拉列表Spinner

6、选项卡TabHost

7、图片切换控件ImageSwitcher

8、列表视图ListView

9、网格视图GridView
  1. 进度条控件提供哪四种样式?
Large、Normal、Small和Horizontal
  1. 评分条有哪三种风格?
RatingBarStyle(默认风格)、RatingBarStyleSmall(小风格)、RatingBarStyleIdicator(大风格)
  1. 写出一个tabhost控件的例子,将导航条移到屏幕下方。(例如,教材配套光盘tabhost项目)
    <?xml version="1.0"ending="utf-8"?>
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"

        android:id="@android:id/tabhost"

        android:layout_width="match_parent"

        android:layout_height="match_parent">

    <LinearLayout

            android:id="@android:id/tab11"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"

            android:orientation="vertical">

    </FrameLayout

                android:id="@android:id/tabcontent"

                android:layout_width="fill_parent"

                android:layout_height="fill_parent"

                android:layout_gravity="bottom">

    <TabWidget

                android:id="@android:id/tabs"

                android:layout_width="fill_parent"

                android:layout_height="wrap_content">
               </TabWidget>

            </TextView

                android:id="@android:id/tv11"

                android:layout_width="wrap_parent"

                android:layout_height="wrap_parent"

                android:Text="TAB1"

                android:textSize="11pt"/>

                </TextView

                android:id="@android:id/tv22"

                android:layout_width="wrap_parent"

                android:layout_height="wrap_parent"

                android:Text="TAB2"

                android:textSize="11pt"/>

                </TextView

                android:id="@android:id/tv33"

                android:layout_width="wrap_parent"

                android:layout_height="wrap_parent"

                android:Text="TAB3"

                android:textSize="11pt"/>

        </FrameLayout>

    </LinearLayout>

    </TabHost>


    逻辑代码:
    package com.example.tabhost;
    import android.os.Bundle;
    import android.widget.TabHost;
    import android.app.Activity;

    public class TabHostActivity extends Activity {

        @Override

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_tab_host);

            TabHost tabhost = (TabHost)findViewById(android.R.id.tabhost); 

            tabhost.setup(); 

            tabhost.addTab(tabhost.newTabSpec("tab1").setInd

作业5

  1. Android提供的菜单分为哪三类?分别是什么?
选项菜单OptionsMenu 和子菜单Submenu、上下文菜单ContexMenu
  1. Android提供哪些对话框?
    1、普通对话框Dialog

    2、提示对话框AlertDialog

    3、进度对话框ProgressDialog

    4、日期选择对话框DatePickerDialog

    5、时间选择对话框TimePickerDialog



  1. 写出一个简单的toast项目。(例如,教材配套光盘5-13)
布局代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >


    <Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:layout_marginLeft="104dp"

        android:layout_marginTop="111dp"

        android:text="Button"/>


</RelativeLayout>

逻辑代码:
package com.example.toast;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.app.Activity;


public class ToastActivity extends Activity {

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_toast);

        Button button = (Button)findViewById(R.id.button1);

        button.setOnClickListener(new OnClickListener() {


public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(ToastActivity.this, "注册成功", Toast.LENGTH_LONG).show();
}});}  

作业6

  1. Android系统将进程分为哪五类进行管理?
1、Activity生命周期

2、单界面程序

3、多界面程序

4、两个Activity之间传递数据

5、Intent和IntentFilter
  1. 简述activity的四种基本状态。
Active(活动):一个新 Activity 启动入栈后,它显示在屏幕最前端,Activity处于活动状态,此时Activity处于栈顶,此时它处于可见并可和用户交互的激活状态。

Paused(暂停):当Activity失去焦点时,或被一个新的非全屏的Activity,或被一个透明的Activity放置在栈顶时,Activity就转化为暂停状态。

Stopped(停止):当一个Activity被另一个Activity完全覆盖时,被覆盖的Activity就会进入Stopped状态。

kill(销毁):当Activity被系统回收掉时,Activity就处于Killed状态。
  1. 画activity的生命周期图
    在这里插入图片描述

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

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

相关文章

前端开发需要学什么?零基础前端学习路线看这一篇就够了!

是的&#xff0c;自学前端可以帮助您找到工作&#xff0c;参加培训是根据个人学习能力和经济实力来自己决定的。前端开发是一个相对容易入门的领域&#xff0c;并且许多人通过自学成功地找到了前端开发的工作。以下是好程序员的一些建议&#xff0c;可以帮助您在自学前端时提高…

离线语音控制新方案,NRK3303语音识别芯片在智能风扇的应用

随着科技的不断发展&#xff0c;智能家居已经成为人们日常生活中不可或缺的一部分&#xff0c;涌现出越来越多的智能设备&#xff0c;如智能门锁、智能灯泡、智能冰箱等&#xff0c;这些设备为人们的生活带来了更多的便利和创新。其中作为常见的风扇通过添加智能语音控制功能&a…

分布式运用之Filebeat+Kafka+ELK 的服务部署

1. Kafka 架构深入了解 1.1 Kafka 工作流程及文件存储机制 Kafka 中消息是以 topic 进行分类的&#xff0c;生产者生产消息&#xff0c;消费者消费消息&#xff0c;都是面向 topic 的。 topic 是逻辑上的概念&#xff0c;而 partition 是物理上的概念&#xff0c;每个 parti…

路径规划算法:基于哈里斯鹰优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于哈里斯鹰优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于哈里斯鹰优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

leetcode 2.两数相加(链表操作)

题目描述跳转到leetcode 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0…

消除字母-第14届蓝桥杯省赛Scratch中级组真题第6题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第141讲。 消除字母&#xff0c;本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组真题第6题&#xf…

Windows提权:利用MySQL数据库

目录 数据库提权的基本条件 MySQL UDF提权 什么是UDF UDF如何应用到提权 利用思路 MSF提权实战 MySQL 启动项提权 原理&#xff1a;通过MySQL数据库把木马写到Windows启动项中 Windows启动项位置 MSF提权利用实战 MySQL 反弹shell提权 数据库提权的基本条件 知道数据…

路径规划算法:基于鸟群优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于鸟群优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于鸟群优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法鸟群…

Linux:centos:计划任务管理《at》

date 查看当前时间或管理时间 年-月-日 周几 时间 时间标准 如果想把他改成2024年6月1日12&#xff1a;30 使用 date 060112302024 06 6月 01 1日 1230 12&#xff1a;30 2024 2024年 使用at之前要安装他 有些用户没有安装的情况下 最好使…

死锁的成因和解决方案

死锁&#x1f512;的成因和解决方案&#x1f4d1; 锁是操作系统和程序语言中常用的同步机制&#xff0c;用于保证共享资源的互斥访问&#xff0c;防止多个线程或进程同时访问共享资源&#xff0c;导致数据不一致或程序崩溃。 死锁是我们在进行并发编程中需要时刻避免的一个问…

路径规划算法:基于引力搜索优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于引力搜索优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于引力搜索优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

iPhone遇到错误53该如何快速修复?

在所有手机中&#xff0c;iphone是出现问题较少的一款手机&#xff0c;但有时候用户会偶尔遇到一些系统问题。例如&#xff0c;错误53是许多用户常见反馈问题之一。如果你还得到错误53 今天小编的就分享如果iphone遇到系统错误53的解决办法。 当我们尝试通过iTunes工具来恢复或…

TDengine 时序数据的保留策略

“TDengine除vnode分片之外&#xff0c;还对时序数据按照时间段进行分区。每个数据文件只包含一个时间段的时序数据&#xff0c;时间段的长度由DB的配置参数days决定。这种按时间段分区的方法还便于高效实现数据的保留策略&#xff0c;只要数据文件超过规定的天数&#xff08;系…

win10 Mysql8.0以上重置初始密码

第一步&#xff1a;关闭Mysql服务 首先&#xff0c;确保自己已经关闭了Mysql的服务 net stop mysql 问题&#xff1a;关闭时报错 原因是&#xff1a;因为net start 服务名&#xff0c;启动的是win下注册的服务。此时&#xff0c;系统中并没有注册mysql到服务中。即当前路径下…

【社区图书馆】《深入理解高并发编程:JDK核心技术》读后感

作者简介 首先要隆重介绍的肯定是《深入理解高并发编程&#xff1a;JDK核心技术》的作者&#xff1a;冰河&#xff0c;作为互联网资深技术专家、数据库技术专家、分布式与微服务架构专家。他多年来一直致力于分布式系统架构、微服务、分布式数据库、分布式事务与大数据技术的研…

【P41】JMeter 简单控制器(Simple Controller)

文章目录 一、简单控制器&#xff08;Simple Controller&#xff09;参数说明二、测试计划设计 一、简单控制器&#xff08;Simple Controller&#xff09;参数说明 该组件&#xff0c;是一个占位符&#xff0c;用于脚本模块化管理&#xff0c;无任何逻辑作用&#xff0c;也不…

0604嵌套路由与路由传参-react路由-react

文章目录 1 嵌套路由1.1 使用1.2 总结 2 路由传参2.1 示例准备2.1 传递params参数2.2 传递search参数2.3 传递state参数2.4 路由参数总结 结语 1 嵌套路由 1.1 使用 示例效果如下图1.1-1所示&#xff1a; 该示例代码其他部分和上一篇相同&#xff0c;这里主要讲解下嵌套路由的…

CVPR2023 I NeRF-Supervised Deep Stereo:不需要任何ground-truth数据

论文题目:NeRF-Supervised Deep Stereo 作者:Fabio Tosi ;Alessio Tonioni; Daniele De Gregorio等人 作者机构:University of Bologna(博洛尼亚大学);Google Inc(全球最大的搜索引擎之一);Eyecan.ai(韩国专注于开发眼动追踪技术的公司) 在公众号「3D视觉工坊」后台回复「…

老电脑重生:深度剖析各部件的羁绊关系

目录 引言&#xff1a; 正文&#xff1a; 主板&#xff1a; CPU 参数&#xff1a; 分类 接口 intel CPU升级推荐 AMD CPU升级推荐 CPU散热器&#xff1a; 内存条 硬盘 独立显卡 电源 机箱 总结 引言&#xff1a; 在科技日新月异的时代&#xff0c;我们与…

【从零到Offer】- HashMap与HashSet

​ HashMap与HashSet是我们日常最常使用的两个集合类。在实现上&#xff0c;两者也有很大的相似性。HashSet基本就是对HashMap的一个简单包装。 ​ 为了更好的理解Hash结构的实现原理&#xff0c;从而更好的指导我们的代码使用&#xff0c;本文就主要对HashMap的实现及设计做分…