`

Android面试题整理(上)

阅读更多
     


1.Android 常用5大布局?

      FrameLayout(框架布局):一般也说是帧布局。特点就是放上去的界面是重叠的,就像抽纸巾一样,抽了一张就是下面一张。
      LinearLayout (线性 布局):LinearLayout:线性布局,每一个LinearLayout里面又
可分为垂直布局和水平布局。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。
      AbsoluteLayout(绝对布局): 绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。
      RelativeLayout (相对布局):相对布局可以理解为某一个元素为参照物, 来定位的布局方式。用的好这个是很犀利的布局。他的效率是最高的。
      TableLayout (表格布局): 表格布局,每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素。每一个布局都有自己适合的方式,这五个布局元素可以相互嵌套应用,做出美观的界面。

2.Android 中的两种动画类型?

      Tween 动画 :移动,放大,缩小,旋转,透明度
      Frame 动画 :传统动画

3.Android 中常用的5种数据存储方式?

      1. SharedPreference
          SharedPreferences存储方式,它是Android提供的用来存储一些简单配置信息的
       一种机制,例如:登录用户的用户名与密码。其采用了Map数据结构来存储数据,以键
       值的方式存储,可以简单的读取与写入.

       2. 文件存储 (FIleInputStream/FileOutputStream)
         文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中
       实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读
       取设备上的文件。
      
       3.SQLite
           此保存方式比较适合游戏的保存和使用,可以保存较大的数据,并且可以将自己
       的数据存储到文件系统或者数据库当中,也可以将自己的数据存储到SQLite数据库中
      
       4.ContentProvider (不推荐用于游戏保存)
            当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,
       就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问
       方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操
       作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读
       写数据。而使用ContentProvider共享数据的好处是统一了数据访问方式
      
       5.网络存储
            网络存储方式,需要与Android 网络数据包打交道

       以上5中存储方式,在以后的开发过程中,根据设计目标、性能需求、空间需求等找到合适的数据存储方式。Android 中的数据存储都是私有的,其他应用程序都是无法访问的,除非通过ContentResolver获取其他程序共享的数据。


4.Android中Activity的生命周期

   onCreate——onStart——onResume——onPause——onStop——onDestroy
      
   onCreate: 在这里创建界面 ,做一些数据 的初始化工作

   onStart:  到这一步变成用户可见不可交互 的

   onResume: 变成和用户可交互 的,(在activity 栈系统通过栈的方式管理这些Activity的最上面,运行完弹出栈,则回到上一个Activity)

   onPause:  到这一步是可见但不可交互 的,系统会停止动画 等消耗CPU的事情,从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在onResume里读出来,注意:这个方法里做的事情时间要短,因为下一个activity不会等到这个方法完成才启动.

   onstop:     变得不可见 ,被下一个activity覆盖了

   onDestroy:  这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方
法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有一个Progress Dialog在线程中转动,请在onDestroy里把他cancel掉,不然等线程结束的时候,调用Dialog的cancel方法会抛异常的。


       Activity正常启动,他们被调用的顺序是 onCreate -> onStart -> onResume
       Activity被干掉,他们被调用的时顺序是onPause -> onStop -> onDestroy
       Activity如果中止的时候新出的一个Activity是全屏的那么:onPause->onStop
       Activity恢复的时候onStart->onResume
       Activity如果打断  这个应用程序的是一个Theme为Translucent 或者Dialog 的Activity那么只是onPause ,恢复 的时候onResume 。

5.Android四大组件,以及作用?

Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑

service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的食物,定义好需要接受的Intent提供同步和异步的接口

Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径

BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型
      
6.如何启用Service,如何停用Service。

Context.startService()  and  Context.bindService().
Context.stopService()  Service.stopSelf() or Service.stopSelfResult()

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics