Android面试题整理(上)

8) 8) 8) 8) 8) 8)


[b]1.Android 常用5大布局?[/b]

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

[b]2.Android 中的两种动画类型?[/b]

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

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

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

[b]2. 文件存储 (FIleInputStream/FileOutputStream)[/b]
文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中
实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读
取设备上的文件。

[b]3.SQLite[/b]
此保存方式比较适合游戏的保存和使用,可以保存较大的数据,并且可以将自己
的数据存储到文件系统或者数据库当中,也可以将自己的数据存储到SQLite数据库中

[b]4.ContentProvider (不推荐用于游戏保存)[/b]
当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,
就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问
方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操
作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读
写数据。而使用ContentProvider共享数据的好处是统一了数据访问方式

[b]5.网络存储[/b]
网络存储方式,需要与Android 网络数据包打交道

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


[b]4.Android中Activity的生命周期[/b]

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 。

[b]5.Android四大组件,以及作用?[/b]

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

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

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

[b]BroadCast Receiver:[/b]接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型

[b]6.如何启用Service,如何停用Service。[/b]

Context.startService() and Context.bindService().
Context.stopService() Service.stopSelf() or Service.stopSelfResult()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值