安卓开发考试题库
安卓开发考试题库
直接背好吧,我自己也不会去看解析,答案直接给
时间也不多了,在这提前祝大家新年快乐,加油把这最后一科秒了吧
我也求求了,不要让我反复更新了QAQ
大题的话,这个还真不好背,正常人都是Ctrl大法完成的,尽量背吧
单选题
Android查看应用程序日志的工具是(
A
)- A、 logcat
- B、 console
- C、 ddms
- D、 tomcat
在程序中输出一条日志,下面代码正确的是(
B
)- A、Log.i(context,”msg”);
- B、Log.i(“tag”,”msg”);
- C、Log.i(“msg”);
- D、Log.i();
Android项目中放置常量的string.xml位于哪个目录下(
C
)- A、 res/layout
- B、 layout
- C、res/values
- D、assets
ConstraintLayout中当你想要让多个视图以等宽或等高的方式排列时,你应该使用什么?(
C
)- A. app:layout_constraintWidth_default=”match_parent”
- B. app:layout_constraintHeight_default=”wrap_content”
- C. app:layout_constraintDimensionRatio=”1:1”
- D. app:layout_constraintWidth_percent 和app:layout_constraintHeight_percent
如果在帧布局FrameLayout中放入三个所有属性值相同按钮,能够在屏幕上显示的是(
A
)- A、最后一个被添加的按钮
- B、第一个被添加的按钮
- C、第二个被动添加的按钮
- D、三个按钮都能显示
为了给一个线性布局设置自身相对于父控件的位置,应该怎么设置(
A
)- A、 android:layout_gravity=”right”
- B、 android:gravity=”right”
- C、 android:orientation=”vertical”
- D、 android:layout_height=”match_parent”
在程序中得到一个按钮对象b后,向此按钮添加点击事件,下面代码正确的是(
A
)- A、 b.setOnClickListener( )
- B、 b.setOnclickListener( )
- C、 b.setOnclick( )
- D、 b.setOnLongClickListener( )
下列不属于android布局的是 (
C
)- A、FrameLayout
- B、LinearLayout
- C、TableRow
- D、ConstraintLayout
关于Handler的说法不正确的是(
A
)[本人认为是D]- A、它实现不同进程间通信的一种机制
- B、 它避免了在新线程中刷新UI的操作
- C、 它采用队列的方式来存储Message
- D、 它实现不同线程间通信的一种机制
Activity生命周期中最后一个需要执行的方法是什么(
D
)- A、onStart
- B、onCreate
- C、onStop
- D、onDestroy
Android是如何组织Activity的(
B
)- A、 以堆的方式组织Activity
- B、 以栈的方式组织Activity
- C、 以树形方式组织Activity
- D、 以链式方式组织Activity
一个应用程序如果要访问另一个应用程序的数据库,需要通过(
C
)来实现- A、BroadcastReceiver
- B、Activity
- C、ContentProvider
- D、Service
RecyclerView.Adapter的哪个方法用于创建新的ViewHolder实例(
A
)- A. onCreateViewHolder()
- B. onBindViewHolder()
- C. getItemCount()
- D. onAttachedToRecyclerView()
下列关于内存回收的说明,哪个是正确的(
B
)- A.程序员必须创建一个线程来释放内存
- B.内存回收程序负责释放无用内存
- C.内存回收程序允许程序员直接释放内存
- D.内存回收程序可以在指定的时间释放内存对象
在Android Oreo (API level 26)及以上版本中,创建通知时必须指定什么(
B
)- A. Notification ID
- B. Notification Channel
- C. Notification Title
- D. Notification Icon
Activity生命周期中第一个需要执行的方法是什么(
B
)- A、onStart
- B、onCreate
- C、onReStart
- D、onResume
关于线程说法不正确的是(
B
)[本人认为是A]- A、 在 android 中,我们可以在主线程中,创建一个新的线程
- B、 在创建的新线程中,它可以操作 UI 组件
- C、 新线程可以和 Handler 共同使用
- D、 创建的 Handler 对象,它隶属于创建它的线程
一个Intent对象调用getExtras( )方法返回的是一个什么类型(
D
)- A、int
- B、string
- C、Serializable
- D、Bundle
关于service生命周期的onCreate()和onStartCommand()说法正确的是(
D
)- A、当第一次启动的时候先后调用onStartCommand()和onCreate()方法
- B、当第一次启动的时候只会调用onCreate()方法
- C、如果service已经启动,将先后调用onCreate()和onStartCommand()方法
- D、如果service已经启动,只会执行onStartCommand()方法,不再执行onCreate()方法
关于 BroadcastReceiver 的说法不正确的是(
B
)- A、是用来接收广播 Intent 的
- B、一个广播 Intent 只能被一个订阅了此广播的 BroadcastReceiver 所接收
- C、对有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者
- D、接收者声明的优先级别在的 android:priority 属性中声明,数值越大优先级别越高
使用HttpUrlConnection实现移动互联时,设置读取超时属性的方法是(
B
)- A、setTimeout()
- B、setReadTimeout()
- C、setConnectTimeout()
- D、setRequestMethod()
在ConstraintLayout中,如何设置一个视图与父布局顶部对齐?(
A
)- A. app:layout_constraintTop_toTopOf=”parent”
- B. android:layout_alignParentTop=”true”
- C. app:layout_constraintStart_toStartOf=”parent”
- D. android:gravity=”top”
以下属于调用摄像头硬件的权限的是:(
A
)
1 | A.<uses-permission android:name="android.permission.CAMERA"/> |
什么是Intent的主要用途?(
D
)- A. 启动服务
- B. 发送广播
- C. 进行组件间通信
- D. 所有上述选项
使用HttpURLConnection的Get方式请求数据时,下列哪个属性是必须设置的(
B
)- A、connection.setDoOutput(true)
- B、connection.connect()
- C、connection.setRequestMethod(“POST”)
- D、connection.setDoInput(true)
对于AlertDialog的描述不正确的是(
A
)- A、使用new关键字创建AlertDialog的实例
- B、对话框的显示需要调用show方法
- C、setPositiveButton方法是用来加确定按钮的
- D、setNegativeButton方法是用来加取消按钮的
Android解析xml的方法中,将整个文件加载到内存中进行解析的是?(
C
)- A、SAX
- B、PULL
- C、DOM
- D 、JSON
下列对SharePreferences存、取文件的说法中不正确的是:(
C
)- A、属于移动存储解决方案
- B、sharePreferences处理的就是key-value对
- C、读取xml文件的路径是/sdcard/shared_prefx
- D、信息的保存格式是xml
下列说法哪一个不正确(
B
)- A、Java程序经编译后会产生字节码
- B、java虚拟机加载.java文件
- C、javac是编译的命令
- D、javadoc是文档化的命令
关于Socket通讯正确的是(
A
)- A、服务器端需要ServerSocket需要绑定端口号
- B、服务器端需要ServerSocket需要绑定端口号和IP地址
- C、客户端需要Socket,需要绑定端口号
- D、客户端需要ServerSocket,需要绑定端口号
在Android中,哪种类型的存储适用于保存小量的数据?(
B
)- A. SQLite数据库
- B. SharedPreferences
- C. 文件系统
- D. 网络存储
ScrollView可以有几个子view (
A
)- A. 1个
- B. 2个
- C. 3个
- D. 无限制
Activity从可见状态变为半透明遮盖状态时,生命周期中哪个方法被调用(
B
)- A.onStop()
- B. onPause()
- C. onRestart()
- D.onStart()
一个应用程序如果要访问另一个应用程序的数据库,需要通过(
C
)来实现- A.BroadcastReceiver
- B.Activity
- C.ContentProvider
- D.Service
多选题
下面关于Android触摸事件监听器的说法正确的是(
ACD
)- A. 处理短时间单击按钮事件需要实现OnClickListener接口
- B. 处理长时间单击按钮事件需要实现OnTouchListener接口
- C. 处理屏幕触摸事件需要实现OnTouchListener接口
- D. 响应屏幕触摸事件的方法为onTouch()
关于线程说法正确的是(
ACD
)- A. 在 android 中,我们可以在主线程中,创建一个新的线程
- B. 在创建的新线程中,它可以操作 UI 组件
- C. 新线程可以和 Handler 共同使用
- D. 创建的 Handler 对象,它隶属于创建它的线程
下列哪些可以用来实现Activity之间的数据传递?(
ABD
)[本人认为是ACD]- A. Intent
- B. Bundle
- C. SharedPreferences
- D. Static Variables
哪些是Android支持的网络请求方式?(
ABCD
)- A. GET
- B. POST
- C. PUT
- D. DELETE
下列哪些布局不能实现内部控件的相互重叠 (
AC
)- A. LineaLayout
- B. ConstraintLayout
- C. TableLayout
- D. FrameLayout
下面说法错误的是(
ABCD
)- A.Android采用单线程模型
- B.Android会默认会为线程创建一个关联的消息队列
- C.Handler会与多个线程以及该线程的消息队列对应
- D.程序组件首先通过Handler把消息传送给Looper,Looper把消息放入队列
对于AlertDialog的描述正确的是(
BCD
)- A.使用new关键字创建AlertDialog的实例
- B.对话框的显示需要调用show方法
- C.setPositiveButton方法是用来加确定按钮的
- D.setNegativeButton方法是用来加取消按钮的
在android中使用Menu时可能需要重写的方法有 (
AC
)- A.onCreateOptionsMenu()
- B.onCreateMenu()
- C.onOptionsItemSelected()
- D.onItemSelected()
下列代码可以为TextView设置所显示文字的语句是(
AB
)- A,在配置文件中用属性 android:text=”abc”
- B,在程序中用TextView对象的setText(“abc”)方法
- C,在程序中用TextView的静态方法setText(“abc”)
- D,在配置文件中用属性 android:value=”abc”
下面关于Intent对象与Intent过滤器的说法正确的是(
ACD
)- A. 为了通过匹配,Intent中的每个种类必须与过滤器中的种类匹配
- B. 为了通过匹配,过滤器中的种类必须是Intent对象中种类的子集
- C. 为了通过匹配,Intent对象中的种类必须是过滤器中种类的子集
- D. 过滤器中必须包含至少一个
标签
下列哪些是RecyclerView中常用的布局管理器?(
ABC
)- A. LinearLayoutManager
- B. GridLayoutManager
- C. StaggeredGridLayoutManager
- D. FrameLayout
为了提高RecyclerView的性能,可以采取哪些措施?(
ABCD
)- A. 使用ViewHolder模式
- B. 减少视图层次
- C. 实现缓存策略
- D. 避免在主线程中执行耗时操作
下列关于Toast的说法不正确的是(
ABD
)[本人认为是ACD]- A. 只能通过Toast.makeText()来创建
- B. 可以显示图片
- C. 可以设置显示时间长短
- D. 只能显示文本内容
下面关于Intent 的作用的叙述不正确的是 (
BCD
)- A.intent是连接四大组件的纽带,可以实现界面间切换,可以包含动作和动作数据
- B.是一段长生命周期的没有用户界面的程序, 可以保持应用在后台运行而不会因为切换页面而消失
- C.实现应用程序间的数据共享
- D.处理一个应用程序整体性的工作
在android中使用Menu时可能需要重写的方法有 (
AC
)- A.onCreateOptionsMenu()
- B.onCreateMenu()
- C.onOptionsItemSelected()
- D.onItemSelected()
在web开发领域主要的数据交互格式有(
AC
)- A,XML
- B,HTML
- C,JSON
- D,AJAX
安卓为新建线程与UI线程之间的交互设计了下列哪些类(
ABC
)- A. Handler
- B. Looper
- C. Message
- D. Tools
简答题
1.写出代码实现存储字符串“helloworld”到文件名为data的文件中。
1 | FileOutputStream outputStream=openFileOutput("data", Context.MODE_PRIVATE); |
2.Android应用程序的4大组件是什么?
**Service Activity BroadcastReceiver ContentProvider **
3、简单介绍怎样实现监听每分钟的时间变化,可用代码表示
编写广播接收器类
1 | class TimeChangeReceiver extends BroadcastReceiver{ |
动态注册广播接收器:
1 | IntentFilter intentFilter=new IntentFilter(); |
4、写出Activity的四种启动模式(4分)
standard singletop singletask singleInstance
5、使用SharedPreferences存储两个参数,username=“lucy”,password=“123456”,写出代码。
1 | SharedPreferences sharedPreferences= getApplicationContext().getSharedPreferences("userInfo",0); |
6、写出Android应用程序开发中的常用布局方式,四种以上。
LinearLayout ConstraintLayout FrameLayout TableLayout
7、已知一个自定义广播接收器的过滤器的action属性为“com.example.broadcasttest”,写出代码发送一条广播,让这个接收器接收到
1 | Intent intent=new Intent("com.example.broadcasttest"); |
8、已知一个字符串String hello=“hello world”,简述怎样实现将它分享至朋友圈。可用代码代替。(5分)
1 | Intent intent=new Intent(Intent.ACTION_SEND); |
9、创建任意一个新项目,在Manifest文件中为FirstActivity设置启动方式为singleTop,为SecondActivity设置启动方式为singleTask,ThirdActivity不作设置。在FirstActivity中点击按钮启动SecondActivity,在SecondActivity中启动ThirdActivity,在ThirdActivity中点击按钮启动SecondActivity。简单画出Activity返回栈的图表示以上几个步骤变化。
编程题:
1、利用广播接收器监听广播,实现每隔2分钟弹出一个Toast显示“helloworld”。
广播接收器类:
1 | class TimeChangeReceiver extends BroadcastReceiver{ |
动态注册广播接收器:
1 | IntentFilter intentFilter=new IntentFilter(); |
2、编写一个MainActivity和MyService,在MainActivity中的onCreate()函数中为两个按钮分别设置点击事件监听器,点击第一个按钮启动服务弹出一个Toast显示“您点击了第一个按钮”,点击第二个按钮启动服务弹出一个Toast显示“您点击了第二个按钮”在MainAtivity的onCreate()中写
1 | bt1=(Button) findViewById(R.id.button1); |
在MyService的onStartCommand()中写
1 | String action=intent.getAction(); |
3、写出一个类ActivityCollector实现活动管理,有3个方法分别可以实现添加活动到List、从List移除活动、结束List中的所有活动。
1 | public class ActivityCollector { |
4、在上题的基础上结合文字叙述怎样实现随时随地退出程序。
(1)编写一个Activity的基类
1 | public class BaseActivity extends AppCompatActivity { |
(2)使所有的Activity都继承BaseActivity
(3)不管在什么地方想要退出程序,只需要调用
ActivityCollector.finishAll()即可
祝各位武运昌隆!