Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android校招笔试题

Android校招笔试题

作者头像
xiangzhihong
发布于 2022-11-30 07:57:03
发布于 2022-11-30 07:57:03
1.3K00
代码可运行
举报
文章被收录于专栏:向治洪向治洪
运行总次数:0
代码可运行

(一) 单项选择题(每题2分,共30分)

1,Activity的生命周期方法onRestart()方法是在哪个方法执行完后调用(B) A. onStart() B. onStop() C.onPause() D.onResume()

2,要通过adb命令查看已连接的设备,正确的是(A) A. adb devices B. adb show devices C. adb start devices D.adb have devices

3,关于Framelayout下面说法正确的是( B) A.是将组件水平依次排列的布局 B.是将组件全都叠加在左上角的一种布局 C.是将组件垂直依次排列的布局 D.是将组件拉伸铺满父组件的布局

4,Android中,关于service的启动两种方式描述不正确的是( D) A.使用startService()方法启动服务,调用者与服务没有关联,即使调用者退出,服务仍然运行。 B.使用bindService()方法启动服务,调用者与服务绑定在一起,调用者一旦退出,服务也就 终止。 C.使用startService()方法启动服务,如果服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法,可以调用stopService()方法来结束服务。 D.使用bindService()方法启动服务,如果服务未被创建,系统会先调用服务的onCreate()方法,接着调用onBind()方法,可以调用stopService()方法来结束服务。

5, 关于AlertDialog的说法不正确的是(A )

A.要想使用对话框首先要使用new关键字创建AlertDialog的实例 B.对话框的显示需要调用show方法 C.setPositiveButton方法是用来加确定按钮的 D.setNegativeButton方法是用来加取消按钮的

6,Android解析xml的方法中,将整个文件加载到内存中进行解析的是?( C) A.SAX B.PULL C.DOM D.JSON

7, JSONObject obj=new JSONObject(); 通过obj对象存储一个字符串变量name写法正确的是(D ) A. obj.set(“name”,”zhangsan”); B. obj.setValue(“name”,”zhangsan”); C. obj.put(“name”,”zhangsan”); D. obj.putValue(“name”,”zhangsan”);

8, 已知httpClient连接网络的url,通过get方式访问时要传递name参数,下列方式正确的是( A)

A. httpGet.addParams(“name”, name); B. list.add(new BasicNameValuePair(“name”, name)); C. httpGet(url, name); D. url = url + “?name=” + name;

9, 可以用来辅助WebView处理JavaScript对话框的类是 ©

A. WebSettings B. WebChromeClient C. WebViewClient D. WebViewChrome

10, 关于webview加载网页的两种方式,说法不正确的是:( C)

A. loadUrl()可以打开远程网址、也可以加载本地Html数据; B. loadData()显示中文网页内容(含空格的处理); C. 通过webView.loadData(“http://www.baidu.com”);可以打开百度页面; D. 通过webView.loadUrl(“http://www.baidu.com”);可以打开百度页面;

11, 可以用来辅助WebView设置其一些属性和状态的类是(A )

A. WebSettings B. WebViewClient C. WebChromeClient D. WebViewChrome

12, 下列哪个接口是Camera中处理快门关闭的接口( A )

A.android.hardware.Camera.ShutterCallback B.android.hardware.Camera.PreviewCallback C.android.hardware.Camera.ErrorCallback D.android.hardware.Camera.AutoFocusCallback

13, 使用openGL ES开发要有一个回调类需要实现一个接口是( D)

A. android.opengl.GLSurfaceView.OpenGL B. android.opengl.GLSurfaceView.Renderer C. android.opengl.GLSurfaceView.Render D. android.opengl.GLSurfaceView.OpenGLEs

14, 以下可以设置Frame动画可以循环播放的属性是:(A )

A. android:oneshot=“false” B. android:drawable="@drawable/start_icon1" C. android:background="@anim/start_animation" D. android:duration=“20”

15, 下列哪个选项是正确进行电话簿查询的过程:( A)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
A. Uri uri=  ContactsContract.Contacts.CONTENT_URI;
Cursor cs=getContentResolver().query(uri, null, null, null, null); while(cs.moveToNext()){
   int uid=cs.getInt(cs.getColumnIndex(ContactsContract.Contacts._ID));
   String name=cs.getString(cs.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
   Log.d("mylog",""+uid+":"+name);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
B. Uri uri=  new Uri(ContactsContract.Contacts.CONTENT_URI);
Cursor cs=getContentResolver().query(uri, null, null, null, null); while(cs.moveToNext()){
   int uid=cs.getInt(cs.getColumnIndex(ContactsContract.Contacts._ID));
   String name=cs.getString(cs.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
   Log.d("mylog",""+uid+":"+name);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C. Uri uri=  ContactsContract.Contacts.CONTENT_URI;
Cursor cs=getContentResolver().query(uri);
while(cs.moveToNext()){
   int uid=cs.getInt(cs.getColumnIndex(ContactsContract.Contacts._ID));
   String name=cs.getString(cs.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
   Log.d("mylog",""+uid+":"+name);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D. Uri uri=  new Uri(ContactsContract.Contacts.CONTENT_URI);
Cursor cs=getContentResolver().query(uri);
while(cs.moveToNext()){
   int uid=cs.getInt(ContactsContract.Contacts._ID));
   String name=cs.getString(ContactsContract.Contacts.DISPLAY_NAME));
   Log.d("mylog",""+uid+":"+name);
}

(二) 多项选择题(每题4分,共20分)

1, 要在我们的应用中使用百度地图需要( ABC)

A. 下载百度地图的API jar包 B. 申请使用该api的密钥key C. 将百度api jar包引入我们的项目 D. 向百度付费购买地图服务

2, 在为ListView列表提供数据的Adapter中有两个方法是必须实现的,他们是(CD )

A. getItem B. getItemId C. getCount D. getView

3, 下列属于AsyncTask的方法是( BCD)

A. run B. execute C. doInBackground D. onPostExecute

4, 创建MediaPlayer对象播放音乐时,读取音乐文件可以通过以下哪些方法进行?(AB )

A. MediaPlayer.create(this, Uri.parse("/sdcard/music.mp3")); B. mediaplayer.setDataSource("/sdcard/music.mp3"); C. MediaPlayer.read("/sdcard/music.mp3"); D. mediaplayer.getDataSource("/sdcard/music.mp3");

5, 关于res/raw和assets描述正确的是(ABD )

A. res/raw中的文件会被映射到R.java文件中 B. assets文件夹下的文件不会被映射到R.java中 C. res/raw可以有目录结构,也就是res/raw目录下可以再建立文件夹 D. assets可以有目录结构,也就是assets目录下可以再建立文件夹

(三) 填空题(每题2分,共10分) 1, 全局定时器中设置周期性执行某个任务的方法是______________。 2. 解除 Android 的蓝牙配对的方法是 ________ 3. 若有点坐标数值float vertices[] = { -1.0f, 1.0f, 0.0f, -1.0f, -1.0f, 0.0f, 1.0f, -1.0f, 0.0f, 1.0f, 1.0f, 0.0f }; 那么这些点组成的图形是 。 4. 要注册各种传感器需要先获取______对象。 5. 通过org.json.JSONObject和org.json.JSONArray构建json数据时,需要捕获________异常。

答案: 1.setRepeating 2.removeBond 3.一个平面的正方形 4.SensorManager 5.JSONException

(四)问答题 第一题, 简述Fragment的生命周期。

答: 1、 onAttach:当 f ragment 第一次与 Activity 产生关联时就会调用以后不再调用 。 2、onCreate:在 on Attach 执行完后会立刻调用此方法,通常被用于读取保存的状态值,获取或者初始化一些数据,但是该方法不执行,窗口是不会显示的,因此如果获取的数据需要访问网络,最好新开线程。 3、onCreateView:创建 Fra gment 中显示的 view, 其中inflater 用来装载布局文件, container 表示 标签的父标签对应的 ViewGroup 对象,savedInstanceState 可以获取 Fragment 保存的状态 4、onActivityCreated:在 Activity.onCreate 方法调用后会立刻调用此方法,表示窗口已经初始化完毕,此时可以调用控件了 5、onStart():开始执行与控件相关的逻辑代码,如按键点击 6、onResume():这是 Fragment 从创建到显示的最后一个回调的方法 7、onPause():当发生界面跳转时,临时暂停,暂停时间是500ms ,0.5s 后直接进入下面的 onStop 方法 8、onStop():当该方法返回时, Fra gment 将从屏幕上消失 9、 onDestroyView():当 fragm ent 状态被保存,或者从回退栈弹出,该方法被调用 10、onDestroy():当 Fra gment 不再被使用时,如按返回键,就会调用此方法 11、 onDetach(): Fragment 生命周期的最后一个方法,执行完后将不再与 Activity 关联,将释放所有 fragment 对象和资源

第二题:解析下什么是ANR ANR是Application NotResponding的缩写,指应用没有响应。Broadcast超时时间为10秒,按键无响应的超时时间为5秒,前台Service无响应的超时时间为20秒,后台Service为200秒。

产生的原因: 潜在的耗时操作,例如网络或数据库操作,或者高耗时的计算如改变位图尺寸,应该在子线程里(或者以数据库操作为例,通过异步请求的方式)来完成。然而,不是说你的主线程阻塞在那里等待子线程的完成——也不是调用 Thread.wait()或是Thread.sleep()。替代的方法是,主线程应该为子线程提供一个Handler,以便完成时能够提交给主线程。以这种方式设计你的应用程序,将能保证你的主线程保持对输入的响应性并能避免由于5秒输入事件的超时引发的ANR对话框。

解决方法: 1、运行在主线程里的任何方法都尽可能少做事情。特别是,Activity应该在它的关键生命周期方法(如onCreate()和onResume())里尽可能少的去做创建操作。(可以采用重新开启子线程的方式,然后使用Handler+Message的方式做一些操作,比如更新主线程中的ui等)

2、应用程序应该避免在BroadcastReceiver里做耗时的操作或计算。但不再是在子线程里做这些任务(因为 BroadcastReceiver的生命周期短),替代的是,如果响应Intent广播需要执行一个耗时的动作的话,应用程序应该启动一个 Service。(此处需要注意的是可以在广播接受者中启动Service,但是却不可以在Service中启动broadcasereciver,关于原因后续会有介绍,此处不是本文重点)

3、避免在Intent Receiver里启动一个Activity,因为它会创建一个新的画面,并从当前用户正在运行的程序上抢夺焦点。如果你的应用程序在响应Intent广 播时需要向用户展示什么,你应该使用Notification Manager来实现。

第三题:如何创建Socket

客户端编程步骤:

a) 创建客户端套接字(指定服务器端IP地址与端口号) b) 连接(Android 创建Socket时会自动连接) c) 与服务器端进行通信 d) 关闭套接字

服务器端:

a) 创建一个ServerSocket,用于监听客户端Socket的连接请求 b) 采用循环不断接受来自客户端的请求 c) 每当接受到客户端Socket的请求,服务器端也对应产生一个Socket

第四题:简述Handler的工作过程。

Looper:是一个消息分发器,在主线程创建的时候就会创建一个Looper对象 messageQueue :消息队列,是由message组成的一个 队列 handler:从messageQueue中获取到message,然后执行动作,可以再主线程和子线程中互相传递数据

在主线程创建之后会创建一个Looper对象,创建Looper对象的时候会去创建一个messageQueue,而Looper是一个轮询器,会不停的轮询messageQueue中的消息,在获取到消息之后就会把这个消息交给handler来进行处理,在主线程中创建一个handler对象,这个handler对象不仅可以获取到消息进行处理,也可以把一个消息放到消息队列中。

第五题: 简述View、SurfaceView和GLSurfaceView的作用。 View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。 SurfaceView:基于view视图进行拓展的视图类,更适合2D游戏的开发;是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快。 GLSurfaceView:基于SurfaceView视图再次进行拓展的视图类,专用于3D游戏开发的视图;是SurfaceView的子类,openGL专用。

View和SurfaceView区别: View:必须在UI的主线程中更新画面,用于被动更新画面。 surfaceView:UI线程和子线程中都可以。在一个新启动的线程中重新绘制画面,主动更新画面。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何监控别人的手机
关于大家一直说怎么使用,我来简单的说明一下吧,讲工程文件中的apk文件安装在你想监控的人的手机中,然后随便找个手机给他
知识与交流
2023/03/25
2.3K0
如何监控别人的手机
笔记37 | Android App优化之ANR详解
地址 http://www.jianshu.com/u/c187b887771f ---- 什么是ADR ANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框. 在Android里, App的响应能力是由Activity Manager和Window Manager系统服务来监控的. 通常在如下两种情况下会弹出ANR对话框: 5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等). Broadca
项勇
2018/06/19
1.4K0
100家大公司java笔试题汇总
一:单选题 1.下列哪一种叙述是正确的() A. abstract修饰符可修饰字段、方法和类 B.抽象方法的 body部分必须用一对大括号{ }包住 C .声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号
爱明依
2022/04/01
6450
Android 这 13 道 ContentProvider 面试题,你都会了吗?
前言 ---- 作为 Android 的四大组件之一,ContentProvider 可以说是无处不在了。 但是对于我而言,开发过程中看似 ContentProvider 用得很娴熟,却一直没能形成一个完整的体系。 也许大家也有着和我类似的烦恼,于是我特地花了几天的时间,总结了我所知道的知识点,以及面试中可能遇到的问题。将本文分享给大家,希望能帮助大家重新梳理下我们的这个老朋友 ContentProvider 。 最后,希望大家阅读愉快! 文章目录 ContentProvider 应用程序间非常通
圆号本昊
2021/09/24
9870
Android 这 13 道 ContentProvider 面试题,你都会了吗?
Java精选笔试题
volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对volatile的写操作,无法保证线程安全。
全栈程序员站长
2022/09/15
4770
【Android 应用开发】View 与 SurfaceView 区别
1. View 主线程刷新 UI : View 的更新是在 UI 主线程中进行更新 , 如果更新中执行耗时操作 , 会阻塞主线程 , 甚至出现 ANR 异常 ;
韩曙亮
2023/03/27
6760
Java笔试题大全(附带答案)「建议收藏」
1. 下列哪一种叙述是正确的(D ) A. abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{ }包住 C. 声明抽象方法,大括号可有可无 D. 声明抽象方法不可写出大括号
全栈程序员站长
2022/09/08
8.1K0
OpenGL ES 与 GLSurfaceView 渲染视频帧
大家好,本文是 iOS/Android 音视频专题 的第六篇,该专题中 AVPlayer 项目代码将在 Github 进行托管,你可在微信公众号(GeekDev)后台回复 资料 获取项目地址。
100001509164
2022/01/20
2.6K0
Android ContentProvider_1 使用方法
ContentProvider 是进程间内容共享的统一接口。注意:ContentProvider 的作用不是实现进程间通信,它只是为进程间通信提供了一套统一接口,真正实现进程间通信的是底层的 Binder 机制。
大公爵
2022/11/07
7230
Android ContentProvider_1 使用方法
100 道 Linux 笔试题,能拿 80 分就算大神!
本套笔试题共100题,每题1分,共100分。(参考答案在文章末尾) 1. cron 后台常驻程序 (daemon) 用于: A. 负责文件在网络中的共享 B. 管理打印子系统 C. 跟踪管理系统信息和错误 D. 管理系统日常任务的调度 2. 在大多数Linux发行版本中,以下哪个属于块设备 (block devices) ? A. 串行口 B. 硬盘 C. 虚拟终端 D. 打印机 3. 下面哪个Linux命令可以一次显示一页内容? A. pause B. cat C. more
小小科
2018/06/20
8570
「 互联网笔试题 」No.2 2018酷狗秋招笔试题
一.单选题 1、在命中率极高的缓存设计中,时间复杂度最差的数据结构是( ) A. 数组 B. 链表 C. 树 D. 哈希表
KEN DO EVERTHING
2019/01/17
2.4K0
Android查缺补漏--ContentProvider的使用
本文主要介绍了如何在Android应用中通过ContentProvider将自定义数据源添加到Android的联系人应用中,包括自定义ContentProvider、自定义SQLiteOpenHelper以及自定义UriMatcher。同时,本文还提供了完整的示例代码以及详细的注释,帮助读者更好地理解整个实现过程。
codingblock
2017/12/28
7720
Android必知必会的四大组件--ContentProvider
作为四大组件之一,它的地位绝对不容许轻视的。但是我们在哪里有用到过他呢?其实很多场景都有,比如说你在使用app时,是不是经常的会询问你是否开启通讯录的访问,如果你同意了,这个时候ContentProvider就发挥了他的作用。
ClericYi
2020/06/23
5540
2-AIV--使用ContentProvider查询联系人
零、前言 [1].顾名思义,内容提供者,目的:实现跨进程间数据共享 [2].基于数据库提供数据 [3].如电话簿,短信,歌曲信息都是以数据库存储存储,都可以通过ContentProvider获取 [4].不太熟悉安卓运行时权限的童鞋可以看一下我封装的权限申请类: TI--安卓运行时权限完美封装 [5].如果只是想使用的人,直接把静态方法拷贝即可,想知道原理的,图片和注释认真看一下,也可以自己分析一下联系人的表。 [6].本文只打印一下查询结果:ListView篇将会界面展示数据,Xml篇将会
张风捷特烈
2018/09/26
5680
ocjp考试题之三
12. public static void main(String [] args) {
张哥编程
2024/12/17
580
「 互联网笔试题 」No.4答案与解析
1、下列哪个修饰符的方法不能被子类调用?( C ) A. Public B. Protected C. Private
KEN DO EVERTHING
2019/01/17
6910
JAVA实习生/应届生面试笔试题(一)
1. 下列哪一种叙述是正确的(D ) A. abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{ }包住 C. 声明抽象方法,大括号可有可无 D. 声明抽象方法不可写出大括号
全栈程序员站长
2022/07/25
2.1K0
android经常使用的电话操作[通俗易懂]
给大家分享一下我的一个Android工具类,能够获取手机里面的各种信息,包含拨打电话。 获取全部联系人姓名及电话,插入联系人姓名及电话,插入联系人姓名及电话。插入通话记录。获取用户全部短信。批量插入短信,读取文件从SDcard,写入文件到SDcard。
全栈程序员站长
2022/07/08
5880
2019 Android 高级面试题总结 从java语言到AIDL使用与原理
a.建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景比如最常见的AlertDialog,拿我们开发过程中举例,比如Camera开发过程中,可能需要设置一个初始化的相机配置,设置摄像头方向,闪光灯开闭,成像质量等等,这种场景下就可以使用建造者模式
Android技术干货分享
2019/03/27
8990
移动互联APP复习题
4.无论Service是以启动方式还是绑定方式运行都要重写onBind方法(T )
花狗Fdog
2021/01/06
9970
相关推荐
如何监控别人的手机
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档