答案自行整理
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)