MyException - 我的异常网
当前位置:我的异常网» Android » android面试题之4

android面试题之4

www.MyException.Cn  网友分享于:2013-09-29  浏览:11次
android面试题之四

十六、Android中Dalvik和JVM的区别是什么?

1. Dalvik基于寄存器,而JVM基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

2. Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,Dalvik专门针对同时高效运行多个虚拟机进行了优化,其代码在虚拟机的解释下得以执行。

3. Dalvik并未遵守jvm规范,两者也不兼容。jvm运行的是java字节码(.class文件),Dalvik运行的是其专有的dexDalvik Executable)文件。dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。Dalvik虚拟机有自己的 bytecode,并非使用 Java bytecode。

 

十七、通过Intent传递一些二进制数据的方法有哪些?

1.使用Serializable接口实现序列化,这是Java常用的方法。

2.实现Parcelable接口,这里Android的部分类比如Bitmap类就已经实现了,同时ParcelableAndroid AIDL中交换数据也很常见的。

 

十八、能说下Android应用的入口点吗?

其实在android.app.Application这个包的onCreate才是真正的Android入口点,只不过大多数开发者无需重写该类,他的继承关系如下图:

java.lang.Object
? android.content.Context
? android.content.ContextWrapper
? android.app.Application

 

android.app.Application类包含了4个公开的方法

void onConfigurationChanged(Configuration newConfig)
void onCreate() //
这里才是真正的入口点。
void onLowMemory()
void onTerminate()

所以希望大家,记住真正的Android入口点是applicationmain,你可以看下androidmanifest.xml的包含关系就清楚了,并不是每个应用都必须有Activity的。

 

十九、Android都有哪些XML解析器,都熟练掌握吗?

XML解析主要有三种方式,SAXDOMXmlPull

至于SAXDOM区别在http://blog.csdn.net/u010142437/article/details/11956383中已经介绍过。

XmlPullSax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序。因为是基于流的处理,因此XmlpullSax都比较节约内存资源,不会象Dom那样要把所有节点以对橡树的形式展现在内存中。但XmlpullSax更简明,而且不需要扫描完整个流。

 

二十、SQLite支持事务吗? 添加删除如何提高性能?

SQLite作为轻量级的数据库,比MySQL还小,但支持SQL语句查询,提高性能可以考虑通过原始经过优化的SQL查询语句方式处理。

 

二十一、assetsres/raw的不同?

assets:用于存放需要打包到应用程序的静态文件,以便部署到设备中。与res/raw不同点在于,ASSETS支持任意深度的子目录。这些文件不会生成任何资源ID,必须使用/assets开始(不包含它)的相对路径名。

Res:用于存放应用程序的资源(如图标、GUI布局等),将被打包到编译后的Java中。不支持深度子目录;

res/menu:存放基于XML的菜单描述;

res/raw:存放通用的文件,该文件夹内的文件将不会被编译成二进制文件,按原样复制到设备上;

res/values:存放字符串、尺寸值。

res/xml:存放通用的XML文件。

 

二十二、Android的优势与不足?

Android平台手机 5大优势:

开放性:在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

挣脱运营商的束缚:在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自iPhone上市 ,用户可以更加方便地连接网络,运营商的制约减少。互联网巨头Google推动的Android终端天生就有网络特色,将让用户离互联网更近。

丰富的硬件选择:这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。

不受任何限制的开发商:Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。

无缝结合的Google应用:如今叱诧互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。

 

Android的5大不足:

安全和隐私:

由于手机与互联网的紧密联系,个人隐私很难得到保守。除了上网过程中经意或不经意留下的个人足迹,Google这个巨人也时时站在你的身后,洞穿一切,因此,互联网的深入将会带来新一轮的隐私危机。

首先开卖Android手机的不是最大运营商:众所周知,T-Mobile在23日,于美国纽约发布 了Android首款手机G1。但是在北美市场,最大的两家运营商乃AT&T和Verizon,而目前所知取得Android手机销售权的仅有T-Mobile和Sprint,其中T-Mobile的3G网络相对于其他三家也要逊色不少,因此,用户可以买账购买G1,能否体验到最佳的3G网络服务则要另当别论了!

运营商仍然能够影响到Android手机:在国内市场,不少用户对购得移动定制机不满,感觉所购的手机被人涂画了广告一般。这样的情况在国外市场同样出现。Android手机的另一发售运营商Sprint就将在其机型中内置其手机商店程序。

同类机型用户减少:在不少手机论坛都会有针对某一型号的子论坛,对一款手机的使用心得交流,并分享软件资源。而对于Android平台手机,由于厂商丰富,产品类型多样,这样使用同一款机型的用户越来越少,缺少统一机型的程序强化。举个稍显不当的例子,现在山寨机泛滥,品种各异,就很少有专门针对某个型号山寨机的讨论和群组,除了哪些功能异常抢眼、颇受追捧的机型以外。

过分依赖开发商缺少标准配置:在使用PC端的Windows Xp系统的时候,都会内置微软Windows Media Player这样一个浏览器程序,用户可以选择更多样的播放器,如Realplay或暴风影音等。但入手开始使用默认的程序同样可以应付多样的需要。在 Android平台中,由于其开放性,软件更多依赖第三方厂商,比如Android系统的SDK中就没有内置音乐 播放器,全部依赖第三方开发,缺少了产品的统一性。

 

二十三、静态变量和实例变量的区别?

1.在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

2.在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

 

二十四、jdk中哪些类是不能继承的?

不能继承的是类是那些用final关键字修饰的类。一般比较基本的类型防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在jdkSystem,String,StringBuffer等都是基本类型。

 

二十五、sim卡的EF 文件有何作用

SIM卡里的所有文件按树来组织:
主文件MF(Master File)——每一块SIM卡只有一个唯一的主文件,其他所有文件都是它的子孙, 主文件只有文件头里面存放着整个SIM卡的控制和管理信息
专用文件DF(Dedicated File)——也是只有一个文件头,里面存放着整个目录的管理控制信息,专用文件相当于一个目录的根
.
基本文件EF(Elementary File)——既有文件头,也有文件体,文件头存放该文件的位置和控制信息, 文件体存放真正的数据,整个SIM卡中只有基本文件有文件体,也只有基本文件才用来存放数据.

sim卡的文件系统有自己规范,主要是为了和手机通讯,sim 身可以有自己的操作系统,EF就是作存储并和手机通讯用的

 

文章评论

旅行,写作,编程
旅行,写作,编程
一个程序员的时间管理
一个程序员的时间管理
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
我是如何打败拖延症的
我是如何打败拖延症的
编程语言是女人
编程语言是女人
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
漫画:程序员的工作
漫画:程序员的工作
为什么程序员都是夜猫子
为什么程序员都是夜猫子
总结2014中国互联网十大段子
总结2014中国互联网十大段子
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员都该阅读的书
程序员都该阅读的书
那些争议最大的编程观点
那些争议最大的编程观点
 程序员的样子
程序员的样子
中美印日四国程序员比较
中美印日四国程序员比较
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员的鄙视链
程序员的鄙视链
每天工作4小时的程序员
每天工作4小时的程序员
程序员和编码员之间的区别
程序员和编码员之间的区别
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
Java程序员必看电影
Java程序员必看电影
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
鲜为人知的编程真相
鲜为人知的编程真相
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
代码女神横空出世
代码女神横空出世
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员应该关注的一些事儿
程序员应该关注的一些事儿
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
如何成为一名黑客
如何成为一名黑客
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
10个调试和排错的小建议
10个调试和排错的小建议
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有