android学习笔记——面试题

来源:互联网 发布:北京3a甲级数据分析 编辑:程序博客网 时间:2024/05/18 01:52

答案自行整理

1.Activity的生命周期

七大生命周期

①onCreate :当Activity第一次启动的时候,触发该方法,完成初始化。(主要在该方法中:绑定布局,初始化控件,绑定监听器,绑定适配器等)
②onStart : 启动 该方法的触发表示所属Activity将被展现给用户。(保存初始状态,加载数据)
③onResume:交互 当一个Activity和用户发生交互的时候,触发该方法(执行这个方法时,用户可与之交互)
④onPause:  挂起 当一个正在前台运行的Activity因为其他的Activity需要前台运行而转入后台运行的时候,触发该方法。(在该方法中保存当前状态及数据)
⑤onStop: 停止一个活动不再需要展示给用户的时候,触发该方法。如果系统内存紧张,则会直接结束这个Activity,而不会触发 onStop 方法。所以如果有要保存的数据时,应该在onPause时做,可以认为onPause方法或许是Activity触发的最后的方法,之后就无法主观控制了。(解绑服务,注销广播)
⑥onRestart:  重启当处于停止状态的Activity需要再次展现给用户的时候,触发该方法。
⑦onDestroy: 销毁当Activity销毁的时候,触发该方法。和 onStop 方法一样,如果内存紧张,系统会直接结束这个Activity而不会触发该方法。

特别注意: 当Activity不是被用户主动销毁(被系统销毁)的时候会触发onSaveInstanceState(Bundle b)方法为了避免在系统销毁Activity时发生数据丢失现象,有必要在该方法中保存数据。一般情况下保存成员变量的值到b中,控件的数据不用保存,Android架构中每一个控件都有onSaveInstanceState(Bundle b)该方法,只有当控件有id的时候,它的数据及状态会被保存,如果没有id则不会被保存
onSaveInstanceState 适合保存时效比较短的数据,onPause一般保存的是持久化数据


2.广播的使用


2.1广播有哪几种注册方式

一、 静态注册。AndroidManifest.xml文件中配置。
    这类BroadcastReceiver特点:常驻型的。
二、 动态注册。代码中动态的指定广播地址并注册。
    这类BroadcastReceiver特点:不是常驻型的,广播会跟随程序的生命周期。
注:注册BroadcastReceiver类似于给收音机加选台按钮。

2.2广播的生命周期

BroadcastReceiver生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,就会报错。所以不要在BroadcastReceiver的onReceiver()方法中执行耗时的操作,如果确实需要根据Broadcast来完成比较耗时的任务,则可以考虑通过Intent启动一个Service来完成操作。


3.资源文件分别存在于那些文件

2.3广播有哪几种形式

一、普通广播:
1、普通广播对于多个接收者来说是完全异步的。
2、每个接收者都无需等待即可以接收到广播,接收者相互之间不会有影响。
3、对于这种广播,接收者无法终止广播,即无法阻止其他接收者的接收动作。

二、有序广播:
1、每次只发送到优先级较高的接收者那里,然后由优先级高的接受者再传播到优先级低的接收者那里,优先级高的接收者有能力终止这个广播。


*4.服务的生命周期

4.1服务的生命周期

①public static final int START_CONTINUATION_MASK常量继续执行Service

②public static final int START_STICKY常量用于显式的启动和停止Service

③public abstract IBinder onBind(Intent intent)普通设置Activity和Service之间的绑定

④public void onCreate()普通当一个Service创建时调用

⑤public int onStartCommand(Intent intent, int flags, int startId)普通启动Service,由startService()方法触发

⑥public void onDestroy()普通Service销毁时调用,由stopService()方法触发

4.2服务有几种启动方式

服务有两种启动方式:startService启动方式和bindService启动方式

①startService启动方式

使用startService启动的Service的生命周期:

onCreate()--->onStartCommand()(onStart()方法已经过时)--->onDestory

如果服务器已经开启,不会重复执行onCreate(),而是会调用onStart()和onStartCommand().服务停止的时候调用onDestory().服务只会被停止一次。

特点:一旦服务器开启跟调用者(开启者)就没有任何关系了。

开启者退出了,服务还会在后台长期运行。

开启者不能调用服务器里面的方法。

②bindService启动方式

使用bindService启动的Service的生命周期:

onCreate()——>onBind()——>onunbind()——>onDestory()

绑定服务器不会调用onstart()方法或者onstartcommand()方法

特点:bindService的方式开启服务器,绑定服务,启动bindService的方法结束后,Service也会跟着结束

绑定者可以调用服务里面的方法


5.android体系结构

Android体系结构划分为四层:应用层(Application)、应用框架层(Application Framework)、系统运行库层以及Linux内核层 。


6.动画有几种

三种:Frame Animation(逐帧动画)、TweenAnimation(补间动画)、Property Animation(属性动画)

一、Frame Animation:(逐帧动画)

一帧帧的播放图片、利用人眼视觉残留原理、给我们带来动画的感觉。

二、Tween Animation(补间动画)

补间动画就是我们只需指定开始、结束的“关键帧”、而变化中的其他帧由系统来计算、不必自己一帧帧的去定义。

三、Property Animation(属性动画)

属性动画、这个是在Android3.0中才引进的、它可以直接更改我们对象的属性。这样可以让我们稍作一些处理工作、提高效率与代码的可读性。

四、这三种动画的优缺点:

①Frame Animation(帧动画)

优:使用简单方便

缺:需要事先准备好每一帧图片

②Tween Animation(补间动画)

优:只需要定义开始与结束的关键帧、不用准备每一帧图片

缺:只改变了对象绘制、而没有改变View本身属性。因此如果改变了按钮的位置、还是需要点击原来按钮所在位置才有效。

③Property Animation(属性动画)

优:使用简单、降低实现的复杂度、直接更改对象的属性、几乎可适应于任何对象而仅非View类

缺:需要3.0以上的API支持、限制较大!目前国外有个开源库、可以提供低版本支持!

相关文章地址


*7.List的优化

优化一:复用convertView

优化二:使用viewHolder

优化三:分页加载

优化四:图片优化()

优化五:单布局加载

优化六:尽量固定ListView的

ListView的其他优化

1、尽量避免在BaseAdapter中使用static 来定义全局静态变量:

2、尽量使用getApplicationContext: 

3、尽量避免在ListView适配器中使用线程:

相关文章地址


8.Android的存储方式

①使用SharedPreferences存储数据

②文件存储数据

③SQLite数据库存储数据

④使用ContentProvider存储数据

⑤网络存储数据


9.常用的布局方式有哪些

①线性布局:LinerLayout

②表格布局:TableLayout

③相对布局:RelativeLayout

④帧布局:FrameLayout

⑤绝对布局:AbsoluteLayout

绝对布局绝对不用、绝对布局屏幕适配效果非常不好


*10.屏幕适配方案:4种

①采用权重方案

②自定义尺寸法

③Java代码中设置控件的高度和宽度

④多布局(不到万不得已不要使用)

⑤图片适配方案:一个是使用9patch图,二是创建不同分辨率的drawable文件夹,把不同分辨率图片放入相应的drawable文件夹内。

相关文章地址

11.android的四大组件

①Activity

②Service

③Content provider

④Broadcast Receiver


12.面向对象的特点(Java)

OOP


OOM


OOA

面向对象分析

OOD

ANR


13.Java中有几种基本数据类型(Java)


14.Java什么是标识符(Java)

1 0
原创粉丝点击