android面试题

1.android 内存存储方式                    
sharedPreferences(它是一个轻量级应用程序内部轻量级的存储方案);文件;SQLite;content Provider(一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。也就是说,一个程序可以通过实现一个Content Provider的抽象接口将自己的数据暴露出去。如何通过一套标准及统一的接口获取其他应用程序暴露的数据?Android提供了ContentResolver,外界的程序可以通过ContentResolver接口访问ContentProvider提供的数据。 );网络

2.怎样适应不同的分辨率                
这一个比较复杂,也没有公认的快捷方便的办法。其中最麻烦但是最能贴切 各种分辨率的方法 就是设置多布局文件,让不同的分辨率有与之匹配的布局文件,而且Android程序本身就支持多布局文件。(如果还让说)(0dp法,在一些简单的布局中采用线性布局,将宽或者高的值设为0dp。利用layout_weight设置各元件的大小)

3.android常用的分辨率有哪些
Android按长宽比一般分为4:3,5:3和16:9几种,而在大屏幕的设备中一般是16:9,比如所谓的标清,720p 。分辨率为1280*720  高清,1080p。分辨率为1920*1080

4.java设计模式

5.常用开发框架

6.android出现“等待 关闭程序”是由什么引起的
出现这种问题有多种可能性,但一般原因是因为在主线程中做了一些比较费时的操作才引起的。解决办法一般就是把一些比较费时的操作放在其他线程中处理

备注
1)Android出现“程序意外停止”是有什么原因引起的
在开发中出现这种问题的可能性有多种,比如经常见得空指针异常,角标越界等,当然在Eclipse的logcat中能够直观的查看原因。在发布版本后出现这种问题大部分是由内存溢出引起的吧

2)内存溢出一般有什么引起
1.代码的效率问题  2.手机的内存问题 3.代码中一些需要手动释放的对象没有释放(例如  EPGIS对象在程序中一般只实例化一次,如果多次实例化就可能会引起内存溢出)

3)仔细看看下边的第七个,这个是最需要了解的,可能问到(1)Android的四大组件是什么,简单介绍下。(2)什么是Intent (3)activity和service的区别,两者的生命周期

4)Android的布局有哪些


1、什么是Android?
 Android是手机操作系统,是Google的产品。
 
2、说说Android有哪些特性?
       Android应用程序基本特性(官方总结)
 1、.apk是android应用程序安装格式,.dex是android二进制执行文件格式
 2、Android操作系统是基于Linux的多用户操作系统,每一个应用程序都是使用不同的用户
 3、默认情况下,一个应用程序一个userid,系统设定,不需要手动去设定,针对这样的应用程序,该用户有权限进行所有操作
 4、每一个进程有自己的虚拟机实例,所以每个应用程序相对独立
 5、默认情况下,应用程序都有自己的linux进程,当资源不够的时候,系统会 决定何时关闭它
 6、然而,也有例外:
       |-可以给两个应用程序共享同一个userid,让彼此之间共享资源
       |-应用程序可以请求访问系统资源,比如通讯录,短信等,但需求安装被授权
 
3 、Android的系统架构的理解
 linux 内核,运行库,应用程序框架层,应用程序层
 
 1、  Linux kernel
 开源,C开发;优化内存管理;有自己的进程和线程机制;驱动模型比较好;支持驱动模型加载。
 2、  HAL layer(硬件抽象层:负责核心驱动的沟通)Libraries、android Runtime
 使用C、C++类库层;定义接口与驱动打交道;建立一种与硬件的逻辑关系;定制额外的需求。
 3、  Application Framework
 该层使用JNI调用倒数第二层的核心类库,即调用C++程序
 4、  Application
 核心的应用程序,该层直接调用上层的java类库,非常方便
 
4、执行eclipse的Run或者debug时候,发生了什么事情?
 所有的操作都是由ADT控制
 1、  将项目所有的源代码编译成dex二进制文件
 2、  打包成APK
 3、  选择target设备,发布的地方(模拟器)
 4、  上传APK
 5、  安装APK
 6、  启动主activity

5、掌上设备开发的局限性会制约我们的需求通常有哪些?
 1、  更低的处理器
 2、  有限的内存
 3、  有限的存储能力
 4、  小屏幕和低分辨率(HVGA、QVGA、WVGA)
 5、  数据传输的高成本
 6、  数据传输的低速度和高延迟
 7、  不稳定的数据连接
 8、  有限的电量
 
6、做手机开发经常需要思考哪些问题?
 性能(更快更灵敏),响应能力(拒绝ANR),无缝(用户使用自然),安全(对操作权限的考虑) 

 1、  性能(更快和更灵敏)官网有答案
 2、  响应能力(拒绝ANR)
 |-什么是ANR:应用程序无响应 application no response
 |-何时会ANR:点击事件和按键事件5秒钟无响应;接收到消息后10秒钟没有处理返回
 |-处理准则:IO操作(File,Sql,Network)和复杂的运算(游戏)最好用异步
 3、  无缝:用户使用自然(与第三方程序的交互,前台后台的切换)
 4、  安全:对操作权限的考虑

7、什么构成了android应用程序?(六大件)
 activity,service, content provider broadcast receiver intent Launcher widget nitification

 1、  应用程序四大组件
 ①    Activity
 |-Activity是android应用程序的一个界面,可以通过这个界面查看联系人,打电话,玩游戏
 |-一个应用程序通常包含多个Activity
 |-Activity通过布局管理添加各种View组件
 |-通过setContentView(int)方法可以将试图呈现出来
 ②    Service
 |-Service运行在后台,负责处理一些用户看不到,并且会有持续时间的事情。如下载数据。
 |-Service不生成UI,是不可见的
 |-所有用户实现的Service必须继承系统的Service类,并且在配置文件中进行注册
 ③    Content Provider
 |-数据在android当中是程序私有的
 |-Content Provider提供了多个程序间数据交互的机制
 |-Content Provider暴露出来一些标准的API来对数据进行操作
 ④    Broadcast Receiver(广播消息)
 |-Broadcast Receiver负责对外部事件做出响应
 |-Broadcast Receiver不生成UI,是不可见的
 |-所有用户实现的Broadcast Receiver必须继承系统的Broadcast Receiver类,需要在程序中进行注册
 |-应用程序可以通过Context.sendBraodcast()将自己的intent广播出去。其他程序通过自身的Broadcast Receivers截获后进行事件处理
 
 2、  重要对象Intent(四大组件中,三个组件[Activity/Service/Broadcast Receiver]都要Intent的支持)
 |-传递Intent启动一个Activity,startActivity,startActivityForResult
 |-传递Intent启动一个Service,startService,bindService
 |-通过Intent新加入一个广播,sendBroadcast,sendOrderedBroadcast(),sendStickyBroadcast()
 |-执行一个查询,ContentResolve的query()
 
 3、  其他:Launcher(系统级应用程序)&Widget(小插件);Notification(提醒功能)

 

sharedpreferencs  ,  content provider  ,  文件 , SQLite数据库,网络

 

//安卓碎片化
通俗的讲亦是指整个安卓平台的差异化越来越大。安卓平台最大的缺点就是碎片化严重:设备繁多,品牌众多,版本各异,分辨率不统一等等,
这些都逐渐成为安卓系统发展的障碍,碎片化严重不仅造成安卓系统混乱,也导致安卓应用的隐形开发成本的增多。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值