整理面试相关
来源:互联网 发布:男朋友活好体验 知乎 编辑:程序博客网 时间:2024/05/29 19:59
1.Json解析与XML解析
Gson解析和FastJson ,FastJson解析效率高
XML解析,SAX解析、DOM解析、Pull解析
2.Android中几种数据存储方式
(1)使用SharedPreferences存储数据
(2)文件存储数据
(3)SQLite数据库存储数据
(4)使用ContentProvider存储数据
(5)网络存储数据
3.Handler消息机制
Handler消息机制主要包括handler、MessageQueue、Looper
MessageQueue:消息队列,内部存储一组消息,以队列的形式向外提供插入和删除的工作,是采用单链表的数据结构来存储消息
Looper:消息循环,用来处理消息,Looper会以无限循环的形式去查找是否有消息,有就处理,没有就等待
Handler创建时会采用当前线程的Looper来构建内部消息循环系统,如果当前线程没有Looper,就会报错。
4.String、StringBuffer、StringBuilder的区别?
String 类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁
StringBuffer、StringBuilder对象代表一个字符序列可变的字符串
两个类的构造器和方法也基本相同,不同的是StringBuffer是线程安全的,StringBuilder是线程不安全的,StringBuilder的效率要高于StringBuffer
5.Android系统架构
(1)Linux内核层
Android的核心系统服务依赖于Linux2.6内核
(2)系统运行库层
Android包含一些C/C++库
(3)应用测序框架层
开发人员可以访问应用程序所使用的API框架
(4)应用程序层
开发人员开发的应用
6.Activity的生命周期
onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()
最后还有一个onRestart()
7.Fragment的生命周期
onAttach()->onCreate()->onCreateView()->onActivityCreate()->onStart()->onResume()->onPause()->onStop()->onDestroyView()->onDestroy()->onDetach()
8.Service生命周期
(1)当启动服务的时候,首先调用onCreate()方法,然后调用onStartCommand()方法,当第二次在启动服务的时候,只会调用onStartCommand()方法
(2)当关闭服务的时候,调用方法onDestory()
(3)当调用绑定服务的时候,调方法onCreate()->onBind()
(4)调用unbindService()后,调用方法:onUnbind()->onDestory()
9.Android中的动画
(1)帧动画
原理是将一张张单独的图片连贯的进行播放,从而产生一种动画的效果
(2)View动画:位移动画、透明度动画、旋转动画、缩放动画
(3)属性动画
API11之后才可以使用
10.Android中的四大组件
Activity、BroadCastReceiver、ContentProvider、Service
11.Android中的常用布局
线性布局、相对布局、帧布局、表格布局、绝对布局
百分比相对布局、百分不帧布局
12.Android的数据存储
(1) 使用SharedPreference存储
(2)文件存储
(3)SOLite数据库存储
(4)使用ContentProvider存储数据
(5)网络存储数据
13Activity的启动模式
(1)standard:标准模式,也是系统默认的启动模式,每次启动一个Activity都会重新创建新的实例,不论这个实例在任务栈中是否存在
(2)singleTop:栈顶复用模式
假如,Activity A启动了Activity B ,就会判断A所在的任务栈栈顶是否是B的实例。如果是,则不创建新的 activity B 实例而是直接引用这个栈顶实例,同时 onNewIntent 方法会被回调,通过该方法的参数可以取得当前请求的信息;如果不是,则创建新的 activity B 实例。
(3)singleTask:栈内复用模式
如果不存在,就会重新创建一个任务栈
如果存在,就调到栈顶
(4)singleInstance:单实例模式
Activity只能单独存在一个任务栈中
14.Android中的广播
自定义一个类继承BroadCastReceiver,实现onReceive方法
有两种注册方式:在清单文件中注册(静态注册)、在代码中注册(动态注册)
两种注册方式的区别:
静态注册是常驻型广播,动态注册是非常驻型广播
在静态注册广播中启动Activity会报错,在动态注册广播中不会报错
15.Android中的ANR
ANR的全称application not responding 应用程序未响应
Android规定,Activity如果5秒之内无法响应屏幕触摸事件或者键盘输入事件就会出现ANR,而BroadcastReceiver如果10秒之内还未执行完操作也会出现ANR
不要在UI线程中做过多的耗时操作,不要在子线程中更新UI,避免在广播里做耗时操作或者计算
/data/anr/traces.txt 文件,定位ANR发生的原因
- 整理面试相关
- 面试笔试相关收集整理
- JAVA面试相关问题整理
- Android 相关面试知识点整理
- Java程序员Spring相关的面试要点整理
- 搜集整理的一些面试经验相关的材料
- 面试常见问题及相关答案整理(持续更新中)
- selenium 自动化测试的相关知识和面试整理
- 面试整理
- 面试整理
- 面试整理
- 面试整理
- 面试整理
- 面试整理
- 面试相关!
- 面试相关
- 面试相关
- 面试相关
- BI EE 安装补丁
- GDI+图像去污——四周去污
- 【27】你以为border-radius只是圆角吗【各种角度】
- Android可伸缩布局-FlexboxLayout(支持RecyclerView集成)
- 3:十进制数转二进制数(类似大整数除法)
- 整理面试相关
- 计算字符串的相似度-两种解法
- shadowsocks-libev
- Linux下的IO监控与分析
- android 通过Scroller实现过渡滑动效果
- swagger介绍
- LaTex转Image
- 面试遇到的问题
- 单例设计模式