问题一、你知道MVC开发模式吗?说说你对MVC的理解
我的回答:MVC指的是模型,视图和控制器。 视图是用户看到并且与之交互的界面;模型表示业务数据,并将数据提供给视图;控制器接受用户输入的并调用模型和视图去完成用户的需求。
问题二、 安卓大概分为几个层 ?
我的回答: 这个我记不大清,但是我知道那个架构图,好像是五个层。(安卓应该分为4层)——Linux内核层,系统运行库层,应用框架层,应用层 ,其中系统运行库层可分为两部分(libraries 和 android runtime )。
问题三、 我们开发应用程序一般是在哪个层上开发?
我的回答:我只记得是那个框架图上的第一层,叫啥我记不大清了。面试官告诉我说:对,是最上面一个层,叫application层,也就是应用层。
问题四、了解Activity生命周期吗?谈谈你对Activity生命周期的理解。
我的回答: 恩,Activity在创建的时候就会执行onCreate()方法,然后执行onStart()方法,再执行onResume()方法,由于Activity是创建在栈中,遵循先进后出的原则,当有另外一个Activity覆盖或锁屏,就会执行onPause()方法,当由被覆盖状态回到前台或解锁,就会执行onResume()方法。当跳转到新的Activity或home键退到后台的时候,就会执行onPause->onStop()方法,进入停滞状态。在这个状态下会发生两种可能,一是回到当前Activity,那么系统会调用onRestart()方法—>onResum()方法;另一种就是系统内存不足,系统杀死这个Activity,即会执行onDestory()方法,退回到这个Activity的时候就会调用onCreate->onStart()->onResume()方法,同时还会执行一个onInstanceState()方法,这个方法用来存储之前的信息。当用户退出Activity的时候就会执行onPause()->onStop()->onDestory()方法。至此,一个完整的Activity生命周期就结束了。
问题五、谈谈在Android中有消息传递机制。
我的回答:我之前做过的两个项目中传递消息和数据的只用过两个,一个Intent(意图),用来发送一些数据,另一个是用Handler,发送消息。Intent可以发送的数据必须是已经序列化的数据,或者自己实现Serializable接口或者Parcelable的数据。(这么回答我自己都觉得好像是偏了。。。。。)
问题六、那你谈谈Handler,Looper ,Message , MessageQueen
我的回答:之前谈过Handler用来传递消息,里面的用法需要特别注意的是如果在主线程中创建Handler实例,可以很方便的使用Handler进行消息传递,但是如果在子线程中创建实例的话,在创建实例之前需要先Looper.repare()一下,就是需要先“准备”一下,然后再去创建实例。在创建完实例之后还要Looper.loop一下才能去传递消息。MessageQueen中存储Message是以一个执行时间长短的链表的形式去存储的,在Looper类中去一条条的取Message,这就是我了解的Handler,Looper, Message,MessageQueen之间的关系。(其实我这么说不知道对不对,自己需要再去搜索看看Handler详解!)
面试过程中好像还有什么问题来着,但是由于第一次面试比较紧张给忘了,记起来再补上。
后面的就是瞎聊聊了吧,大概的说一下:
最后面试官问我,要是进来公司,你能坚持多久(忘记怎么问的了,反正意思就是这个。)
我说:现在是大三,如果可以,大概这个月底左右就能过去报到,大四一年基本都可以在外面工作,明年的这个时候需要回来做毕业答辩。如果能进公司,我相信我也能给公司带来一定的贡献,也相信公司不会亏待我。这是合作共赢。(大概是这个意思)
然后他问我,你期待的待遇是怎么样的?
我说:之前我也没参加过面试,和谈薪资的事情,在北京那块是什么行情,我也不大清楚,能在北京生活这是最基本的了~然后我问,公司提供什么待遇呢?
他就说:一般来说,我们公司提供的待遇是这样的,对于刚来的,公司应该会提供住宿,实习期内月薪资应该在4000-4500,肯定不会低于4000,实习期结束后转入试用期,试用期一般在2个月左右,试用期时间的薪资会依据你的表现来给薪资,多的人会6-7K,8K都会有可能,少的也不会低于5K,转正后基本维持在7.5K+。
最后,他说我大概也了解了你的情况,公司会在一个星期内答复你是否录用,这个我要和我们经理商量后再做决定。
然后就这么结束了。。。。
我的回答:MVC指的是模型,视图和控制器。 视图是用户看到并且与之交互的界面;模型表示业务数据,并将数据提供给视图;控制器接受用户输入的并调用模型和视图去完成用户的需求。
问题二、 安卓大概分为几个层 ?
我的回答: 这个我记不大清,但是我知道那个架构图,好像是五个层。(安卓应该分为4层)——Linux内核层,系统运行库层,应用框架层,应用层 ,其中系统运行库层可分为两部分(libraries 和 android runtime )。
问题三、 我们开发应用程序一般是在哪个层上开发?
我的回答:我只记得是那个框架图上的第一层,叫啥我记不大清了。面试官告诉我说:对,是最上面一个层,叫application层,也就是应用层。
问题四、了解Activity生命周期吗?谈谈你对Activity生命周期的理解。
我的回答: 恩,Activity在创建的时候就会执行onCreate()方法,然后执行onStart()方法,再执行onResume()方法,由于Activity是创建在栈中,遵循先进后出的原则,当有另外一个Activity覆盖或锁屏,就会执行onPause()方法,当由被覆盖状态回到前台或解锁,就会执行onResume()方法。当跳转到新的Activity或home键退到后台的时候,就会执行onPause->onStop()方法,进入停滞状态。在这个状态下会发生两种可能,一是回到当前Activity,那么系统会调用onRestart()方法—>onResum()方法;另一种就是系统内存不足,系统杀死这个Activity,即会执行onDestory()方法,退回到这个Activity的时候就会调用onCreate->onStart()->onResume()方法,同时还会执行一个onInstanceState()方法,这个方法用来存储之前的信息。当用户退出Activity的时候就会执行onPause()->onStop()->onDestory()方法。至此,一个完整的Activity生命周期就结束了。
问题五、谈谈在Android中有消息传递机制。
我的回答:我之前做过的两个项目中传递消息和数据的只用过两个,一个Intent(意图),用来发送一些数据,另一个是用Handler,发送消息。Intent可以发送的数据必须是已经序列化的数据,或者自己实现Serializable接口或者Parcelable的数据。(这么回答我自己都觉得好像是偏了。。。。。)
问题六、那你谈谈Handler,Looper ,Message , MessageQueen
我的回答:之前谈过Handler用来传递消息,里面的用法需要特别注意的是如果在主线程中创建Handler实例,可以很方便的使用Handler进行消息传递,但是如果在子线程中创建实例的话,在创建实例之前需要先Looper.repare()一下,就是需要先“准备”一下,然后再去创建实例。在创建完实例之后还要Looper.loop一下才能去传递消息。MessageQueen中存储Message是以一个执行时间长短的链表的形式去存储的,在Looper类中去一条条的取Message,这就是我了解的Handler,Looper, Message,MessageQueen之间的关系。(其实我这么说不知道对不对,自己需要再去搜索看看Handler详解!)
面试过程中好像还有什么问题来着,但是由于第一次面试比较紧张给忘了,记起来再补上。
后面的就是瞎聊聊了吧,大概的说一下:
最后面试官问我,要是进来公司,你能坚持多久(忘记怎么问的了,反正意思就是这个。)
我说:现在是大三,如果可以,大概这个月底左右就能过去报到,大四一年基本都可以在外面工作,明年的这个时候需要回来做毕业答辩。如果能进公司,我相信我也能给公司带来一定的贡献,也相信公司不会亏待我。这是合作共赢。(大概是这个意思)
然后他问我,你期待的待遇是怎么样的?
我说:之前我也没参加过面试,和谈薪资的事情,在北京那块是什么行情,我也不大清楚,能在北京生活这是最基本的了~然后我问,公司提供什么待遇呢?
他就说:一般来说,我们公司提供的待遇是这样的,对于刚来的,公司应该会提供住宿,实习期内月薪资应该在4000-4500,肯定不会低于4000,实习期结束后转入试用期,试用期一般在2个月左右,试用期时间的薪资会依据你的表现来给薪资,多的人会6-7K,8K都会有可能,少的也不会低于5K,转正后基本维持在7.5K+。
最后,他说我大概也了解了你的情况,公司会在一个星期内答复你是否录用,这个我要和我们经理商量后再做决定。
然后就这么结束了。。。。