Android_面试题集(1)

来源:互联网 发布:渔趣网淘宝 编辑:程序博客网 时间:2024/05/22 05:05
1、开发Android项目的主要流程。 
   首先,我们要编写文档资料,然后在工具中建立项目,我们要配置AndroidManifest.xml文件,设置好启动的Activity,应用的Style,以及可能用到的权限等;其次,我们需要在xml文件中为Activity设置布局,如果要做屏幕适配可能还要准备多个布局文件;然后在Activity中setContentView(),一个Activity基本就显示出来了。基于此,我们就可以拿到各控件,进行业务逻辑的处理。编写完成项目后,可以打包成apk文件,发布项目。 
2、当用户点击home键时,Activity生命周期如何回调? 
    1、调用onPause()2、调用onStop()3、此时Activity已从用户屏幕中消失了,但是它并没有销毁,还可能存在于系统后台中,当系统内存不够时,就有可能把这个Activity销毁。 
3、当用户返回这个Activity时,其生命周期如何回调? 
    1、分情况讨论:如果此Activity已经销毁,那么就重新调用onCreate -- onStart -- onResume。如果此Activity还在后台,那就调用onReStart -- onStart --onResume。 
4、说说Service的生命周期? 
    分情况讨论:如果此Service是从startService调用,那么它会经历 onCreate -- onStartCommond(2.0版本前调用onStart)此时服务进入活动状态,它与调用者的生命周期无关,只有调用stopService才能结束此服务,这时,会回调onDestroy方法。如果此服务从bindService调用,它会经历onCreate -- onBind此时client已经绑定了Service,可以与其通信。其通信机制可以使用Intent加Broadcast实现。当应用销毁或者unBind服务,onUnBind方法将被调用,如果此时服务没有其它的客户端绑定,那onDestroy方法会被调用,服务将被销毁。 
5、Android的长度单位有哪些? 
   1、px像素,即屏幕的像素点个数。 
   2、dp 设备无关像素, 与px的换算关系 px= dp (dpi /160 ) 当dpi = 160 800px480px屏幕上,px = dp     3、sp,这个单位一般用于设置字体,与dp差不多,可以根据设备字体改变大小。 
6、Android中如何做手机屏幕适配? 
  1、为应用准备不同的布局文件,其后跟上限定词,常用的有land(横屏)、large(大屏)、sw600dp(最小600dp)、系统会自动根据当前设备的环境选择合适的文件。 
  2、为防止图片变形,应为不同的像素ldpi、mdpi、hdpi、xhdpi等准备不同大小的图片。也可以使用放缩图片不会变形的点9图和SVG图。 
  3、尽量使用相对布局、wrap_content、match_parert、dp、sp这些来代替具体的像素值。 
7、Android中如何自定义View? 
  1、确定View的属性和公开的方法 
  2、在arrs.xml中定义属性 
  3、在java文件中通过AttrbuteSet获得属性,使用TypeArray得到每个参数(设置在xml中的)的值,将它们初始化到View的字段中。 
  4、如果View中包括其它的View(就是ViewGroup),就必须设onLayout方法。 
  5、实现onMeasure()方法,告诉系统如何计算View的宽高策略。测量流程是:父控件确定自己的子View应该以什么模式,什么大小显示,然后通过MeasureSpec把这两个参数传递给子View,子View根据这两个参数,和自己想要显示的大小,做个比较,确定自己到底需要多大,然后使用setMeasureDimension()保存这个大小。 
  6、实现onDraw(),决定自己如何被绘制出来,离不开Paint和Canvas两个类。Paint相当于画笔,控制绘制的类型,绘制的颜色等,而Canvas决定具体绘制什么图形。
   7、如果View还需要监听点击事件,还需要处理onTouchEvent方法,复杂的话还需要处理手势操作。 
8、View的测量模式有哪些?分别介绍它们 
   1、AT_MOST告诉子View最多能达到的大小,一般设置wrap_content时,或者精确值时。
   2、EXACTLY告诉子View自己最大的大小,一般是match_parent时。 
   3、UNSPECIFIED告诉子View想多大就多大,无限制。
0 0
原创粉丝点击