ANDROID程序员 面试问题

除了algorithm, data structure以及 design pattern以外, 面试中要区别哪些程序员是对[Android开发](http://www.apkbus.com/)比较了解的,  哪些只是刚刚上手等等, 用什么问题呢?  下面提供几个问题, 欢迎大家提供自己的答案:
1. android平台上有四个java类跟sensor的使用有关, 列举并解释各自的目的。
2. contentprovider是什么, 通常如何使用? 你能不能使用intent向一个contentprovider提供数据? 如果不能, 那一般都是怎么跟contentprovider进行数据交互的? 
3. 列举出intent的常见用法。
4. 列举出activity的生命周期函数, 并描述一种情形, 在onPause() 和onStop()没被调用的情况下 onDestroy()被调用了。
5. 以下代码在什么情况下会crash?  你应该如何改进防止这种crash?
Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage); sendIntent.setType(HTTP.PLAIN_TEXT_TYPE); // "text/plain" MIME type startActivity(sendIntent); 6. 通常在屏幕翻转的时候, android会毁掉当前activity, 然后再重建并自动回复所有组件的状态。 你注意到在你的项目中, 有一个组件的值没有被回复到屏幕翻转以前, 可能的原因是什么?
当然, 这些都只是对candidate背景知识考察的一个参考, 能正确全面回答以上问题的, 不一定是好的hire,还要看候选人是不是足够聪明, 足够自信, 对产品是不是感兴趣, personality跟团队是不是合得来!