android 面试题2017,2017年常见android面试题

五大布局:

LinearLayout线性布局

FrameLayout层叠布局

TableLayout 表格布局

AbsoluteLayout绝对布局

RelativeLayout 相对布局

activity生命周期,对应的生命周期:

onCreate()----onDestroy()

onStart()----onStop()

onResume()----onPause()

fragment生命周期步骤

onAttach()---onCreate()---onCreateView()----onActivityCreated() //这四个对应的是activity的onCreate()

onstart() //对应activity的是onStart()

onResume() //对应activity的是onResume()

onPause() //对应activity的是onPause()

onStop() //对应activity的是onStop()

onDestroyView()----onDestroy()----onDetach() //这三个对应activity的onDestroy()

切换横竖屏activity生命周期:

总结:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

数据存储五种方式:

1 SharedPreferences存储数据

2 文件存储数据

3 SQLite数据库存储数据

4 使用ContentProvider存储数据

5 网络存储数据

ListView优化:

1、convertView重用

2、ViewHolder优化

3、图片加载优化

4、onClickListener处理

5、减少Item View的布局层级

6、adapter中的getView方法尽量少使用逻辑

7、adapter中的getView方法尽量少做耗时操作

8、adapter中的getView方法避免创建大量对象

9、将ListView的scrollingCache和animateCache设置为false

service启动方式:

两种启动方式

startService() -----stopService() 或者 selfStop() 结束service

bingService() -----另外一种 bindService() 方法的意思是,把这个 Service 和调用 Service 的客户类绑起来,如果调用这个客户类被销毁,Service 也会被销毁。用这个方法的一个好处是,bindService() 方法执行后 Service 会回调上边提到的 onBind() 方发,你可以从这里返回一个实现了 IBind 接口的类,在客户端操作这个类就能和这个服务通信了,比如得到 Service 运行的状态或其他操作。如果 Service 还没有运行,使用这个方法启动 Service 就会 onCreate() 方法而不会调用 onStart()。

广播:

两种发送广播方式,

sendBroadcast();同步广播

sendOrderedBroadcast();有序广播----有序广播可以通过设置android:priority="xxx" 优先级

1)静态注册:在AndroidManifest.xml注册,android不能自动销毁广播接收器,也就是说当应用程序关闭后,还是会接收广播。

2)动态注册:在代码中通过registerReceiver()手工注册.当程序关闭时,该接收器也会随之销毁。当然,也可手工调用unregisterReceiver()进行销毁。

//选择排序

for (int i = 0; i < arr.length - 1; i++) {

for (int j = i + 1; j < arr.length; j++) { //i+1最小值已经比较完毕,所以每次i+1对比后面的值

if (arr[i] > arr[j]) { //如果i值大于j 值则换位

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

}

}```

//冒泡排序

```public static void bubbleSort(int[] arr) {

for (int i = 0; i < arr.length - 1; i++) {

for (int j = 0; j < arr.length - i - 1; j++) {

if (arr[j] > arr[j + 1]) {

int temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}

}```

2017常见面试题

[最新2017(Android)安卓面试题级答案(精选版)](http://www.2cto.com/kf/201702/603678.html)

[[android面试题总结加强再加强版(三)](http://blog.csdn.net/scott2017/article/details/51915136)](http://blog.csdn.net/scott2017/article/details/51915136)

[[Android面试题整理](http://blog.csdn.net/scott2017/article/details/51914975)](http://blog.csdn.net/scott2017/article/details/51914975)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值