百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Android 面试试题及答案_2020年android面试题汇总(初级)-简书

toyiye 2024-04-03 23:10 24 浏览 0 评论

AIDL的全称是什么?如何工作?

Android interface definition language (android接口定义语言) ,

用来跨进程的访问方法, 像 游戏中调用支付宝接口就是用的这个。

访问远程的服务的方法. 如何工作。


面试题二:Android程序运行时权限与文件系统权限的区别?

程序运行时权限:Android程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求,打电话,访问网络,获取坐标,写sd卡,读写联系人等..安装的时候会提示用户。

文件系统权限:其实就是Linux的文件系统权限,比如-rw------ 私有权限 -rw-rw-rw- 全局可读可写,(777是可读可写可执行1+2+4)还有sharedpreference里面的Context.Mode_private

Context.Mode.world_read_able Context.Mode_world_writeable夜市文件系统的权限。


面试题三:系统上安装了多种浏览器,能否指定某浏览器访问指定页面?

找到对应的浏览器的意图,传递数据URI , 激活这个意图

Intent .setAction(VIEW)

Intent intent = new Intent();

// com.android.browser/.BrowserActivity

intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");

Intent.setdata(uri);

像腾讯那个检测是否安装自己的浏览器,方法是queryintentactivity(),获取到所有Action。然后查里面有没有自己浏览器的action,没有的话就提示用户。


面试题四:对主线程的理解:

耗时的不能再主线程做,会anr异常,像安卓四大组件都是在主线程里面。


面试题五:Framework工作方式及原理,Activity是如何生成一个view的,机制是什么?

所有的框架都是基于反射 和 配置文件(manifest)的。

Activity创建一个view是通过 ondraw 画出来的, 画这个view之前呢,还会调用onmeasure方法来计算显示的大小.但是Surfaceview 是直接操作硬件的,因为 或者视频播放对帧数有要求,onDraw效率太低,不够使,Surfaceview直接把数据写到显存。


面试题六:android本身的一些限制,比如apk包大小限制,读取大文件时的时间限?

如果在broadCast里面不能超过10秒,

在service里面不能超过20秒

在主线程里面不能超过5秒。

像有些系统不能安装大文件,我们一般是把素材文件放到一个素材包而不是安装包,两者区分开。

面试题七:如何加载的音乐信息,如何改善其效率?

Android提供mediascanner,mediaStore等接口, 音乐文件的信息都会存放到系统的数据库表中,可以通过content provider获取,

显示出来,改善效率,是个常见问题, 可以从以下几个方面作答,

1.分批加载数据, 延时加载数据, 合理使用缓存等...

2.预先加载一些 都会的使用的大的class的字节码, 提前加载.

3.时间换时间

4.空间换时间


面试题八:ListView如何提高其效率?

1.异步加载数据, 分页加载数据,使用 onscallLinster();

2.Static class ViewHolder

3. 使用静态的view对象 避免创建过多的view.

4. 把下载后的数据缓存到数据库里

5. 客户端和服务器 协同 作战,比如说客户端请求图片的时候,先把自己的图片数据和服务器比对一下,如果服务器图片未更新,就拿缓存。看客户端图片的If-modify-since :属性就只掉最后修改时间,在网易新闻客户端就用到了这个。


面试题九:启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?

如果在点击图标进入,就会开启一个新的任务栈,如果startActivity的话默认情况不会开启一个新的任务栈。只有我们在activity制定Flag-- flag_activity_new_task才会开新的。


面试题十:Android程序与Java程序的区别?

1. Android程序用android sdk开发,java程序用javasdk开发.

2. Android SDK引用了大部分的Java SDK,少数部分被Android SDK抛弃,比如说界面部分,java.awt swing package除了java.awt.font被引用外,其他都被抛弃,在Android平台开发中不能使用。

3. android sdk 添加工具jar httpclient , pull openGL

4. 1.6的 不支持 httpUrlconning 获取 last-modified 信息的处理

5. simpleDataFormat 在java中年时小写,在安卓里面是大写。


面试题十一:在Android中,怎么节省内存的使用,怎么主动回收内存?:

<!--[if !supportLists]-->1. <!--[endif]-->尽量多使用内部类 提高程序效率

<!--[if !supportLists]-->2. <!--[endif]-->把bean里面的字段都定义成public :Bean private public

<!--[if !supportLists]-->3. <!--[endif]-->回收已经使用的资源

<!--[if !supportLists]-->4. <!--[endif]-->合理的使用缓存

<!--[if !supportLists]-->5. <!--[endif]-->合理设置变量的作用范围 比如不是全局使用就不要定义为application对象

<!--[if !supportLists]-->6. <!--[endif]-->未来的某一段时间执行 System.gc();


面试题十二:不同工程中的方法是否可以相互调用?

可以,aidl就是这样子的。支付宝服务。


面试题十三:dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念?

Dvm的进程是dalivk虚拟机进程,每个android程序都运行在自己的进程里面,

每个android程序系统都会给他分配一个单独的liunx uid(user id),

每个dvm都是linux里面的一个进程.所以说这两个进程是一个进程.


面试题十四:如何判断是否有SD卡?

if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))


面试题十五:嵌入式操作系统内存管理有哪几种, 各有何特性。?

这是大学里面操作系统的知识,包括纯分页,纯分段和段页式存储。


面试题十六:什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

实时操作系统分为两种,硬实时和 软实时,硬实时一般用在军工,比如火星探测器,航空啊等等,是一旦又中断产生就会立即响应中断,而软实时是基于一套算法,可以不立即响应中断,我们一般的操作系统都是软实时操作系统,Android也不例外。


面试题十七:Linux中跨进程通信的几种方式?

管道( pipe ),信号量( semophore ),信号 ( sinal ),共享内存( shared memory ),套接字( socket )。


面试题十八:谈谈对Android NDK的理解:

1.实时性要求高的软件。比如游戏,图形渲染, opencv (人脸识别)

2.调用C或者c+++的代码库,第一是性能好,第二是人家写好了直接能用了,而java的代码库太少了。ffmpeg , rmvb mp5 avi 高清解码. ffmpeg, opencore

3.优点:效率高,缺点:出错之后不好调试,写起来也麻烦。软件升级的时候也不方便。


面试题十九:Android UI中的View如何刷新。

分主线程和子线程中两种情况:‘

主线程用控件调用Invalide()方法。iv.invalidate();

子线程用控件调用postInvalidate();---iv.postInvalidate();

一般情况下第一轮都是基础面试,需要扎实的基础

最常用的Android 基础知识

Java 基础知识

了解一些 常用东西的原理,例如:handler, thread 等

项目中的技术点

第二轮的时候需要了解更深层次的东西

Android 事件分发机制原理

Android 绘图机制原理

WindowManager 的相关知识

进程间传输方式

Java 内存管理机制

一些常用的 list,map 原理,以及子类之间的差别

能进入第三轮基本没什么问题,但是要注意以下问题

该轮一般是 老大或者部门负责人,问的问题一般都看 深度与广度

当问及薪水的时候,要说一个合适的,小公司随意,大公司一定要慎重,当心里没底的时候,可以告诉对方,让对方给一个合理的薪资。一般都是在原工资基础之上增长,听猎头说一般涨幅都在15%-30%,超 NB 的可以要30%及以上,如果感觉自己还不错的,挺厉害的,建议最高20%,一般人就定在15% 左右最靠谱。公司内部一般有一套机制,根据公司情况而定。

我们的面试原则就是拿到合理薪资,得到 offer

个人发展情况,这个问题很难回答,如果和公司方向不符合,极有可能和公司无缘。建议多试探性的问问公司缺少什么,你能否给予公司对应的东西。当然对于有自我追求的人,那可以放心大胆的提。我的方向就是架构师,哈哈哈,挺极端的,别学我哦。我感觉选择都是双向的,因此我知道自己需要的是什么。

你最擅长什么UI 还是其他什么?这个问题更不好回答。你要说你擅长 UI,是不是意味着你其他能力就不行?虽然我不知道面试官的用意,但是我能感觉到,这个问题不是那么好回答,我会回答说自己都行,来什么业务接什么需求。可能回答不太好,总之和公司的职位吻合就行,这样总不至于出错吧。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码