Android必知必会 简答题

Android必知必会 简答题,第1张

概述问题:Android开发环境(AndroidStudio)需安装什么?JavaJDK:Java开发环境,需配置环境变量;AndroidStudio:AndroidStudio是开发Android应用程序的官方IDE,基于IntellijIDEA;AndroidSDK:对应版本的Android软件开发包; 问题:Android四大组件是什么?Activity:用户可视化界面;S

问题:AndroID开发环境(AndroID Studio)需安装什么?

Java JDK:Java开发环境,需配置环境变量;

AndroID Studio:AndroID Studio 是开发 AndroID 应用程序的官方 IDE,基于 Intellij IDEA;

AndroID SDK:对应版本的AndroID软件开发包;

 

问题:AndroID四大组件是什么?

Activity:用户可视化界面;

Service:后台运行服务,不提供界面呈现;

broadcast Receive:接收广播;

Content ProvIDer:支持多个应用中存储和读取数据;

 

问题:res文件夹的作用是什么?其有什么特殊性。

res文件夹可存放项目的资源文件夹。如图片、文本等。 res文件夹下的所有资源,都会在R.java文件下生成对应的资源ID(32位二进制)。

如:public static final int del=0x7f020002;

项目中对资源的访问,都需通过资源ID来完成。

问题:举例res文件夹中常见的资源文件夹

res/values/

存放值文件。可被编译成很多种类型的XML文件。如:

array.xml     定义数组资源

colors.xml   定义颜色资源

dimens.xml 定义尺寸资源。

strings.xml  定义字符串资源

 

问题:新建Activity时,默认会新建哪2个文件?作用是什么?

布局文件:activity_main.xml,决定界面显示效果

Java文件: MainActivity.java, 实现逻辑功能

 

问题:在布局文件中表示资源ID的方式是?

基本格式为:属性=“@****/*****”

androID:drawabletop="@drawable/tab_menu_channel" 

androID:textcolor="@color/tab_menu_text" 

 

问题:在java文件中表示资源ID的方式是?

基本格式:R.*****.******(R.资源类型.资源名)

setContentVIEw(R.layout.activity_main); 

 

xml文件和java文件是怎么关联的?

setContentVIEw(R.layout.activity_main); 

 

问题:描述在布局文件中标记一个控件的基本方法?

输入<,后接控件的标记名称;

添加属性对控件进行修饰;例:TextVIEw控件的标记方法

 

问题:描述在布局文件中标记一个控件的基本方法?

一般控件由/>结尾;容器由</容器标记>结尾。

 

问题:如何设置VIEw的宽度和高度?

设置宽度(WIDth)和高度(Height);常用属性值:

wrap_content自适应内容;

match_parent匹配父容器;和父容器一样。

 

问题:如何给控件添加ID的别名?

androID:ID="@+ID/@R_404_5555@" 

 

如何在java文件中初始化控件?

先声明对象的类型和名字;

用findVIEwByID方法初始化对象;参数:R.ID.布局文件中标记的别名;

左右类型不匹配,使用Alt+Enter修复错误,添加强制转换;

新版本可不用再写强制转换;

 

请列举一些TextVIEw控件的常用属性。

androID:text设置显示的文本内容

androID:textSize设置字体大小

androID:textcolor设置字体颜色

androID:background设置背景颜色

 

描述单选按钮(Radiobutton)的使用方法

 

问题:描述ListVIEw和Spinner的基本使用方法。

列表ListVIEw控件和下拉列表Spinner控件和普通的UI控件最主要的区别在于,其数据需要通过静态或动态的方式绑定到控件上之后方可使用。

静态方式:在布局文件中设置数据来源。

动态方式:在java文件中设置数据来源。

 

问题:描述ListVIEw和Spinner的基本使用方法。

静态方式:

在res/values文件夹中新建array.xml文件,用以存放所需的数组。 在array.xml文件中,新建数组,并添加所需的数据项。 在Spinner的entrIEs属性中设置数据源。

 

问题:描述ListVIEw和Spinner的基本使用方法。

动态方式:

初始化控件对象; 在java文件中准备所需要的数据,如:字符串数组、List; 初始化适配器(Adapter); 在对象上绑定适配器;

 

问题:描述gravity和layout_gravity的区别。

layout_gravity设置当前控件在父容器中的对齐效果

gravity设置当前控件中的内容的对齐效果

 

问题:描述padding和margin的区别。

padding设置内边距

margin设置外边距

 

问题:例举集中常用的布局,并描述其效果。

线性布局:linearLayout

线性布局具有垂直方向与水平方向的布局方式

通过设置属性“androID:orIEntation”控制方向,属性值垂直(vertical)和水平(horizontal),默认水平方向。

 

问题:例举集中常用的布局,并描述其效果。

表格布局:tableLayout

表格布局,适用于多行多列的布局格式,每个tableLayout是由多个tableRow组成,一个tableRow就表示tableLayout中的每一行,这一行可以由多个子元素组成。

 

问题:例举集中常用的布局,并描述其效果。

帧布局:FrameLayout

最简单的一种布局,从屏幕左上角按照层次堆叠方式布局,后面的控件覆盖前面的控件。没有任何的定位方式。

在只需要一个容器进行填充时,较为常用。

 

问题:例举集中常用的布局,并描述其效果。

相对布局:relativeLayout

相对布局可以让子控件相对于兄弟控件或父控件进行布局,可以设置子控件相对于兄弟控件或父控件进行上下左右对齐。

当布局嵌套过多时,可使用此布局。

 

问题:如何在布局文件中修改TextVIEw的显示文本?

在TextVIEw控件中寻找合适的属性,以达到需要的目的:

androID:text表示显示的文本内容

 

问题:如何在java文件中修改TextVIEw的显示文本?

根据布局文件中所需的属性,寻找对应的java方法。

修改显示的文本对应属性:androID:text,其对应方法为setText();

 

问题:如何在java文件中让RadioGroup在界面中不可见?

在布局文件中,找到可实现不可见的属性;找到其对应的java方法; 根据方法的说明完成调用;

 

问题:如何在java文件中让RadioGroup在界面中不可见?

radioGroup.setVisibility(VIEw.INVISIBLE); 

 

问题:描述使用匿名内部类的方式实现按钮单击事件的过程?

初始化按钮控件; 按钮控件调用seton*****Listener()方法实现单击事件;

 

问题:什么是Activity?

Activity是AndroID的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互。 Activity用于显示用户界面,用户通过Activity交互完成相关 *** 作 , 一个App允许有多个Activity。

 

问题:什么是Activity的生命周期?

表示一个Activity从开始运行到最后销毁的过程。

 

问题:Activity的生命周期共有几种状态?

共有4种状态,如下所示:

Resumed(运行状态):Activity处于前台,且用户可以与其交互。此时Activity位于返回栈的栈顶。Paused(暂停状态): Activity被在前台中处于半透明状态或者未覆盖全屏的其他Activity部分遮挡。 暂停的Activity不会接收用户输入,也无法执行任何代码。 Stopped(停止状态):Activity被完全隐藏,且对用户不可见;被视为后台Activity。 停止的Activity实例及其诸如成员变量等所有状态信息将保留,但它无法执行任何代码。Destroy(销毁状态):当一个Activity从返回栈中移除后就变成了销毁状态。 

 

问题:什么堆栈?

堆栈是一种后进先出(liFO)的数据结构。

liFO:Last In First Out 后进先出

 

问题:什么是AndroID返回栈?

每当启动一个新的Activity时,它会被放入返回栈中,并处于栈顶的位置。每当我们按下Back键或调用activity的finish()方法去销毁一个活动时,处于栈顶的Activity会出栈,这时前一个入栈的Activity就会重新处于栈顶的位置。系统总是会显示处于栈顶的Activity给用户。

 

问题:Activity有几种回调方法,各是什么?

共有7种回调方法。

onCreate():这个方法在每一个Activity类都会有,当新建一个Activity类时,一定会重写父类的onCreate方法,onCreate方法会在Activity第一次被创建时调用。应该在这个方法中完成Activity的初始化 *** 作,比如说加载布局,初始化布局控件,绑定按钮事件等。 onStart():这个方法在OnCreate()方法之后调用,或在Activity由不可见变为可见时调用。 onResume():在Activity准备好和用户交互的时候调用。 onPause():在系统准备去启动或者恢复另一个Activity的时候调用。 onStop():在Activity完全不可见的时候调用。它和onPause()方法的主要区别在于如果启动的新Activity是一个对话框式的activity,那么,onPause()方法会得到执行,而onStop()方法并不会执行。 onDestory():在Activity被销毁之前调用,之后Activity的状态将变为销毁状态。 onRestart():在Activity由停止状态变为运行状态之前调用,也就是Activity被重新启动了。

 

问题:如何启动新的Activity?

在Activity与Activity中相互通信,即为AndroID的组件间的相互通信,必须通过Intent对象完成。

初始化Intent对象,设置当前界面和需启动的界面; 通过StartActivity方法启动界面;

 

问题:如何获得目标界面跳转回当前页面的返回结果?

startActivity( ):仅仅是跳转到目标页面,若是想跳回当前页面,则必须再次调用startActivity( )。startActivityForResult( ) :当使用此方法从Activity_A跳转到Activity_B,当Activity_B调用了finish()方法以后,程序会自动跳转回Activity_A,并调用Activity_A中的onActivityResult( )方法。

具体调用顺序如下:

在Activity_A跳转到Activity_B时采用startActivityForResult(intent, 0);在Activity_A中重写onActivityResult方法,用来接收处理Activity_B回传的数据。在Activity_B中回传数据时采用setResult方法,并且之后调用finish方法。(调用setResult()方法必须在finish()之前)

 

resultCode常用两个常量:RESulT_CANCELED  和 RESulT_OK

 

问题:列举几种常见的消息输出方式?

Toast类:以短小信息的形式通知给用户,在一段时间之后会自动消失。

Log类:AndroID Studio中的日志工具类。Log可以通过过滤器来进行筛选,方便用户查看。

Log.v():打印一些最为繁琐、意义不大的日志信息。

Log.d():打印一些调试信息(输入小技巧:logd+Tab)

Log.i():打印一些比较重要的数据,可分析用户行为数据(输入小技巧:logi+Tab)

Log.w():打印一些警告信息,提示程序该处可能存在的风险(输入小技巧:logw+Tab)

Log.e():打印程序中的错误信息(输入小技巧: loge+Tab)

Log中Tag标签输入小技巧:

反复输入Tag标签很麻烦,可在OnCreate()方法外输入:logt+Tab,添加Tag常量。

 

问题:SharedPreferences 的数据存储形式是什么?数据存在哪儿?

key-value pairs

primitive data: booleans, floats, ints, longs, and strings.

Xml文件的形式,存放在data/data/包名/shared_prefs

 

问题:SharedPreferences 的使用过程?

To get a SharedPreferences object for your application, use one of two methods:

getSharedPreferences() getPreferences()

 

问题:AndroID文件存储包括哪两种?

内部文件存储 外部文件存储

 

问题:内部文件存储的主要过程?

一、写 *** 作:

(1)通过openfileOutput方法(需给出文件名及 *** 作模式),初始化fileOutputStream;;

(2)使用write()方法,以字节的方式写入数据;

(3)清除缓存;flush();

(4)关闭输出流;close();

 

问题:AndroID文件存储包括哪两种?

内部文件存储 外部文件存储

 

问题:内部文件存储的主要过程?

一、写 *** 作:

(1)通过openfileOutput方法(需给出文件名及 *** 作模式),初始化fileOutputStream;;

(2)使用write()方法,以字节的方式写入数据;

(3)清除缓存;flush();

(4)关闭输出流;close();

 

(1)通过openfileinput方法(需给出文件名),初始化fileinputStream;

(2)使用read()方法,以字节的方式读数据;

(3)关闭输入流;close();

 

问题:提供 *** 作sqlite数据库API的类是什么?其具有什么方法?

sqliteDatabase类,相关方法包括:

(1)onCreate(sqliteDatabase db)创建数据库时调用

(2)onUpgrade(sqliteDatabase db,int oldVersion , int newVersion)版本更新时调用

(3)getReadableDatabase()创建或打开一个可读写数据库

(4)getWritableDatabase()创建或打开一个可读写数据库

区别:

n getReadableDatabase()方法中会调用getWritableDatabase()方法

如数据库的磁盘空间满了, getWritableDatabase()方法会打开失败,而getReadableDatabase() 打开失败后会尝试以只读方式打开数据库

 

问题:Cursor类是什么类,有哪些差用方法?

Cursor类为游标类,可以认为是数据集。

moveto***** ()移动指针的相关方法;

get*****(int i)返回第几列的***类型的数据;

getCount()返回记录的数量;

getColumnCount()返回共几列;

getColumnIndex(String s)根据列名返回第几列;

 

问题: *** 作sqlite数据库的过程是什么?

(1)自定义类,继承sqliteOpenHelper类;并重写onCreate()和onUpdate()方法、构造方法;

sqliteOpenHelper为sqliteDatabase的辅助类。

(2)使用execsql()方法,直接执行无需返回值的SQL语句完成 *** 作。

(3)用query()或rawquery()方法执行查询语句。结果记录在Cursor对象中。

(4)通过Cursor对象来对游标进行 *** 作,以获取需要的数据

 

问题:sqlite数据库存放路径?

data/data/包名/database

问题:调试sqlite数据库可用什么工具?

可用SDK目录下platform-tools中的sqlite3.exe

在cmd的命令行提示符下,使用adb shell可以快速进入模拟器的文件系统进行调试。中文乱码,在cmd下输入:chcp 65001  

 

广播分为哪些类型?

标准广播:完全异步执行的广播,所有广播接收器都会收到该广播消息,无法终止广播。

有序广播:同步执行的广播,根据广播接收器的优先级的先后顺序来接收广播消息。只有这个广播接收器的逻辑执行完成后才可以继续传递广播。

 

广播的发送步骤?

1、创建Intent对象。

2、向Intent对象中添加执行的动作、传递的数据等信息。

3、调用相应的方法发送Intent。

sendbroadcast() 发送普通广播

sendOrderedbroadcast() 发送有序广播

 

广播的接收步骤?

1、创建广播接收器类broadcastReceiver,并重写OnReceive()方法。

2、在AndroID系统中注册广播接收器,分为静态和动态两种注册方式。

 

静态注册:

在AndroIDManifest文件中进行注册

在<Application>节点中添加标签<Receiver>,并设置过滤器<intent-filter>

添加感兴趣的广播的<action>

注:注册广播时,可能需要添加权限

 

动态注册:

在Java文件中指定广播地址并进行注册。

1、定义Intent-Filter对象。

2、调用Context.registerReceiver()方法进行注册。

取消注册:Context.unregisterReceiver()方法。

动态注册需要App启动后才可以接收广播,静态的不用启动亦可接收。

 

总结

以上是内存溢出为你收集整理的Android必知必会 简答题全部内容,希望文章能够帮你解决Android必知必会 简答题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存