安卓面试宝典

1.关于内存回收机制正确的是:

内存回收程序负责释放无用内存。

2.运行时异常有那些:

ArithmeticException(运算条件异常)、illegalArgumentException(不合法参数异常)、NullPointerException(空指针异常)、BufferUderflowException(缓冲区溢出异常)。

3.Math.round(11.5)等于12,Math.round(-11.5)等于11。

4.对一些资源以及状态的操作保存,最好时保存在生命周期的onStart中函数中。

5.intent可以传递的数据类型有serializable、charsequence、Parcelable、Bundle。

6.Intent的作用时实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带。

7.Sax解析SML文件的优点:不用事先调入整个文档,占用资源少。

8.自定义style方式:

<Resources>

     <style name="mystyle">

          <item name="android:layout_width">

          fill_parent

         </item>

</Resources>

9.在安卓中使用Menu时可能需要重写的方法有 onCreateOptionsMenu()、onOptionsitemSelected().

10.使用SqliteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库的版本进行管理的方法是:getWriteableDatabase()、getReadableDataBase()。

11.Service生命周期的onCreate和onStart方法的生命周期:第一次启动Service时执行onCreate()和onStart()方法,Service已经启动则不会执行onCreate方法只会执行onStart方法。

12.GLSurFaceView的特性是:管理一个surface,这个surface就是一块特殊的内存,能直接排版到andorid的视图View上、管理一个EGL display,它能让opengl把内容渲染到上述surface上。让渲染器在独立的线程里运作和UI线程分离。

13.注册一个Broadcast的方法:

<receiver android:name="NewBroad">

<intent-Filltter>

<action andorid:name="android.provider.action.NewBroad">

</action>

</intent-Filltter>

</receiver>

14.关于ContentValues:他和HashTble比较类似,也是负责存储一些名值对,但是名为String类型而值都是基本类型。

15.线程销毁方法时onDestroy。

16.Activity退出的方式有finish()、抛异常退出、onStop()

17.安卓的动画有:Tween和Frame。

18.安卓 dvm进程和linux进程的关系:DVM指的时dalivk虚拟机,每一个安卓应用程序都在他自己的进程中运行,都有一个Dalvik虚拟机实例,而每个Dalvik都是Linux中的一个进程,所以可以认为时同一个概念。

19.安卓下的assets目录是用来放置多媒体等数据文件的。

20.res/raw中的文件会原封不动的存放到设备中不会转换为二进制格式。

21.NDK编程:NDK时一系列工具的集合、NDK提供了一份稳定、功能有限的API头文件申明、使JAVA加C开发方式成为官方支持的开发方式、NDK将是Andorid平台支持C开发的开端。

22.安卓中四个常用布局为:FrameLayout,Linenarlayout , relativelayout , tablelayout.

23.安卓的四大组件时 Activity , Broadcast , contentProvider, Service.

24.Java中的ObjectoutputStream 和 ObjectInputStream主要用于对象的读写。

25.安卓中Service的实现方法有:StartService和BIndService.

26.在安卓中会重载7个方法用来维护其生命周期,他们分别是onCreate、onStart()、onResume , onRestart , onpause , on stop , ondestroy.

27.安卓中数据的存储方式有:Sharepeference 数据库存储 文件存储 contentProvider 网络.

28. 当启动一个Activity并且新的Activity执行完后需要返回到启动的Actitvity来执行的回调函数时StartActivityForResult.



29.NDK编程的步骤。

1.安装和下载cygwin,下载安卓NDK工具包。

2.在NDK项目中JNI接口的设计。

3.使用C、C++实现本地方法。

4.JNI动态生成链接库.so文件。

5.将动态链接库复制到JAVA工程中,在Java工程中调用即可。


30.安卓应用程序的结构

Linux Kernel(Linux内核层)、Libraries(系统运行库或者是C/C++核心库)

FrameWork层(开发框架包) Applications(核心应用程序)


31.Sqlite数据库的建立。

通过SqliteOpenHelper的Oncreate建表,onUpgrade更新数据库。

32.安卓运行权限由Dalvik也就是安卓授权,文件系统由Linux内核授权。

33.安卓系统的优缺点。

1、开放性、挣脱运营商的束缚、丰富的硬件选择、不任何限制的开发商、无缝结合的谷歌应用。

2、安全和隐私、同类机型用户减少、缺少标准配置。

34.DDMS时一个程序执行查看器,在里面可以查看线程和堆栈等信息,TraceView时程序性能分析器。

5. Android中的动画有哪几类,它们的特点和区别是什么? 两种.一种是Tween动画.还有一种是Frame动画. Tween动画,这种实现方式可以使视图组件移动.放大.缩小以及产生透明度的变化; 另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影. 6. 什么是嵌入式实时操作系统,Android操作系统属于实时操作系统吗? 嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统.主要用于工业控制,军事设备,航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统.又可分为软实时和硬实时两种,而Android是基于linux内核的,因此属于软实时. 7. Handler机制的原理? Andriod提供了Handler和Looper来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(Message Exchange). 1)Looper:一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列). 2)Handler:你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从Message Queue取出)所送来的消息. 3) Message Queue(消息队列):用来存放线程放入的消息. 4)线程:UI thread通常就是main thread,而Android启动程序时会替它建立一个Message Queue.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值